펌웨어란?
펌웨어는 하드웨어가 의도한 대로 작동하도록 하드웨어에 직접 내장된 소프트웨어의 일종이다. 펌웨어는 제조업체에서 프로그래밍하며 공장에서 바로 디지털 장치에 설치된다. 모든 컴퓨팅 장치에는 펌웨어가 있다.
펌웨어 마이크로코드는 다양한 형태로 제공되며 키보드와 같은 간단한 디지털 장치부터 커넥티드 차량과 같은 복잡한 장치에 이르기까지 다양하다.
디바이스의 전원이 켜지면 펌웨어는 디바이스의 프로세서에 실행 명령을 보낸다. 장치가 키보드처럼 단순한 경우, 펌웨어를 대체할 소프트웨어가 없기 때문에 펌웨어가 계속 실행된다. 그러나 PC, 노트북, 태블릿과 같이 더 복잡한 디바이스에서는 여러 펌웨어 세트가 운영 체제를 로드하는 공통의 목표를 달성하기 위해 상호 작용한다.
미국 국토안보부(DHS)와 상무부에 따르면, 펌웨어는 이제 해커들의 우선적인 공격 대상이며 컴퓨터 시스템과 IT 인프라에 대한 중요한 위협 벡터다. 이에 따라 많은 제조업체가 디바이스의 보안과 성능을 개선하기 위해 펌웨어를 더 자주 업데이트하고 있다.
테코피디아가 설명하는 펌웨어
펌웨어가 없으면 가장 기본적인 디지털 기기가 작동하지 않는다. 그렇기 때문에 펌웨어는 장치의 금속에 최대한 가깝게 유지하면서 실수로 지워지지 않도록 읽기 전용 메모리(ROM) 칩에 저장되는 경우가 많다.
장치 유형에 관계없이 펌웨어는 기계어로 알려진 기본 또는 낮은 수준의 이진 언어로만 작동할 수 있다. 펌웨어의 코드는 쉽고 다양한 활용을 위해 고급 언어로 작성할 수 있지만, 디바이스에 새겨지기 전에 낮은 수준 언어로 번역해야 한다.
펌웨어는 저장되는 위치와 기능의 복잡성에 따라 세 가지 수준으로 나뉜다:
1. 낮은 수준의 펌웨어: 이 수준의 펌웨어는 일회성 프로그래밍 가능(OTP) 메모리라고도 하는 ROM, PROM과 같은 비휘발성 메모리 칩과 프로그래밍 가능 논리 어레이(PLA) 구조에 저장된다. 로우레벨 펌웨어는 재작성이나 업데이트가 불가능한 읽기 전용 칩에 저장되는 경우가 많기 때문에 하드웨어의 본질적인 부분으로 간주된다.
2. 상위 레벨 펌웨어: 이 펌웨어는 플래시 메모리 칩과 함께 사용되어 업데이트를 허용한다. 로우 레벨 펌웨어보다 더 복잡한 지침이 있는 경우가 많으므로 하드웨어보다는 소프트웨어에 가깝다.
3. 서브시스템: 하위 시스템은 더 큰 시스템의 반독립적인 부분인 장치 또는 유닛이다. 이 펌웨어 레벨은 플래시 칩, CPU, LCD 장치에 마이크로코드가 내장되어 있고 상위 레벨 펌웨어와 유사하기 때문에 자체 장치와 유사한 경우가 많다.
펌웨어 업데이트 방법
사물 인터넷(IoT)으로 인해 에지 디바이스 펌웨어를 효율적으로 업데이트할 수 있는 방법이 필요해졌다. 업데이트는 네트워크를 통해 배포하거나 무선으로 배포할 수 있다. 무선(OTA) 기술을 사용하면 연결된 차량에 무선으로 펌웨어 업데이트를 배포할 수 있으므로 자동차 기술자가 차량에 업데이트를 직접 설치할 필요가 없다.
펌웨어를 업데이트하려면 디바이스 소유자와 IT 관리자가 해야한다:
1.디바이스 제조업체에 문의하여 펌웨어 업데이트가 제공되는지 확인
2. 펌웨어 업데이트가 중단되지 않도록 충분한 시간을 확보
3. 해당 장치를 백업한다. 이렇게 하면 장치의 현재 펌웨어도 백업된다.
4. 펌웨어 업데이트를 다운로드하여 설치한다.
펌웨어의 역사
원래 펌웨어는 엄격하게 ROM 칩에 기록되었다. 따라서 제조 비용이 저렴하고 삭제되거나 변조되는 것을 방지할 수 있었다.
프로그래머블 읽기 전용 메모리(PROM) 칩도 사용되어 더 다양한 펌웨어를 저장할 수 있었다. 하지만 펌웨어를 저장하는 데 ROM과 PROM을 사용하면 디바이스의 펌웨어가 오래되면 업데이트할 수 없고 교체만 가능하다.
펌웨어는 장치에 작동 방법을 지시하는 것이고 드라이버는 운영 체제와 하드웨어 사이의 메신저 역할을 하는 소프트웨어라는 점에서 펌웨어는 드라이버와 다르다.
기술이 더욱 빠르게 발전함에 따라 펌웨어는 하드웨어가 낡아지기 전에 더 빨리 구식이 되기 시작했다. 그 후 제조업체들은 펌웨어 업데이트가 가능한 EPROM(Erasable Programmable Read-Only Memory) 칩을 사용하기로 전환했다. 하지만 EPROM 칩은 제조 비용이 비싸고 프로그래밍 및 업데이트에 시간이 오래 걸리기 때문에 결국 펌웨어는 저렴하고 쓰기와 다시 쓰기가 쉬운 플래시 메모리 칩으로 발전했다.
BIOS, 모뎀, 비디오 카드는 일반적으로 기술이 빠르게 발전함에 따라 쉽게 업데이트할 수 있도록 만들어졌다. 하지만 하드 드라이브나 USB 플래시 드라이브와 같은 저장 장치의 펌웨어는 종종 간과되는 경우가 많다. 그 이유는 저장 장치의 기능이 제한적이고 단순하여 자주 업데이트할 필요가 없기 때문다.