Firmware
펌웨어란?
펌웨어는 하드웨어의 동작을 지시하는 소프트웨어이지만, 하드웨어적으로 구성되어 하드웨어의 일부분으로도 볼 수 있는 제품을 말합니다. 펌웨어라는 용어는 “소프트웨어”와 “하드웨어”의 중간에 위치하여, 하드웨어와 소프트웨어 사이의 특성을 나타내기 위해 사용되었다고 합니다.
Q 01.소프트웨어와 하드웨어 사이의 중간에 위치한다는 것의 의미는?
펌웨어가 소프트웨어와 하드웨어 사이의 특성을 가지고 있다는 의미입니다.
일반적으로 소프트웨어는 컴퓨터의 프로그램이나 데이터로 이루어져 있고, 프로그래밍 언어를 통해 작성되며, 실행 중에 동적으로 변경되거나 업데이트될 수 있습니다. 반면에 하드웨어는 컴퓨터의 물리적인 부품들로 구성되어 있어 소프트웨어처럼 쉽게 변경되거나 업데이트되기 어렵습니다.
하지만 펌웨어는 소프트웨어처럼 프로그램으로 작성되어 실행되는데에 비해, 하드웨어에 내장되어 있어 물리적인 부품의 동작을 제어하고, 특정 기능을 수행하는 역할을 수행합니다.
이러한 이유로 펌웨어는 소프트웨어처럼 동적으로 변경될 수 있으면서도 하드웨어처럼 물리적인 부품을 제어하는 역할을 수행한다는 특징으로 소프트웨어와 하드웨어 사이의 중간 영역에 위치한다고 말할 수 있습니다.
Q 02.일반 소프트웨어와 구분되는 점과 펌웨어의 용어적 의미는?
일반적인 소프트웨어(OS, Application 등)는 RAM에서 구동되는 반면,
펌웨어는 영구적인 명령어와 데이터로 이루어져 있으므로, 제조 단계에서 ROM(혹은 PROM)과 같은 비휘발성 메모리에 저장되어 있어, 전원이 꺼져도 정보가 유지되는 특징을 가지고 있습니다. 이러한 특성으로 인해 펌웨어는 전원이 꺼져도 기기의 기본 동작, 초기화, 부팅 등을 제어할 수 있습니다.
이처럼 펌웨어는 영구적으로 기기에 내장되어 작동하며, 기기의 기본 동작을 제어하는 중요한 소프트웨어로 사용되기 때문에 “퍼머넌트 소프트웨어”라는 의미를 담고 있습니다.
또한 사용자가 특별한 프로그램이나 기계 도움없이는 수정이 불가능하다는 점 등에서 우리가 아는 소프트웨어와 확실한 차이가 있고 구분되어 집니다.
펌웨어의 특징
- 하드웨어 제어: 펌웨어는 하드웨어를 직접 제어하는 역할을 수행합니다. 하드웨어의 동작을 설정하고 초기화하는 등의 작업을 통해 시스템의 기본 동작을 제어합니다.
- 시스템 초기화: 펌웨어는 컴퓨터 시스템의 부팅 과정에서 초기화 작업을 수행합니다. 시스템이 부팅될 때 펌웨어는 시스템의 초기 상태를 설정하고 필요한 자원을 초기화하여 운영 체제가 정상적으로 실행될 수 있도록 준비합니다.
- 내장형 소프트웨어: 펌웨어는 하드웨어 장치나 제어기의 내부에 내장되어 있습니다. 이는 펌웨어가 전원이 꺼져도 정보가 유지되는 특징을 가지고 있습니다.
- 하드웨어 독립성: 펌웨어는 하드웨어와 소프트웨어 사이의 인터페이스 역할을 수행하므로, 하드웨어 독립성을 가집니다. 이는 하드웨어의 변화에 상관없이 펌웨어를 업데이트하거나 교체할 수 있음을 의미합니다.
- 업그레이드 가능성: 펌웨어는 업그레이드가 가능하다는 특징을 가지고 있습니다. 하드웨어 업그레이드나 기능 추가를 위해 펌웨어를 업데이트하거나 교체할 수 있습니다.
펌웨어 사용의 목적
이러한 특징을 바탕으로 펌웨어는 하드웨어 제어, 설정 및 구성, 기능 추가 및 업데이트, 오류 수정 및 보안 강화, 호환성 제공, 성능 최적화, 사용자 경험 향상, 제품 수명 연장, 보안 강화, 표준 준수 등 다양한 목적으로 사용될 수 있습니다.
펌웨어의 대표적 예시
- 컴퓨터 시스템: 컴퓨터 시스템의 부팅 및 초기화를 담당하는 BIOS나 UEFI 펌웨어가 있습니다. 또한, 컴퓨터 하드웨어 장치 드라이버 펌웨어는 그래픽 카드, 네트워크 카드, 사운드 카드 등의 장치를 제어하는데 사용됩니다.
- 네트워크 장비: 라우터, 스위치, 모뎀 등의 네트워크 장비들은 펌웨어를 사용하여 네트워크 연결, 패킷 라우팅, 보안 설정 등을 제어하고 관리합니다.
- 스마트 디바이스: 스마트 TV, 스마트폰, 스마트워치 등의 스마트 디바이스들은 내부에 펌웨어를 가지고 있어, 화면 해상도, 네트워크 연결, 센서 동작, 배터리 관리 등을 제어합니다.
- 자동차: 자동차의 다양한 시스템(엔진, 브레이크, 에어백 등)을 제어하는 자동차의 제어 유닛(ECU)에는 펌웨어가 사용됩니다. 이를 통해 자동차의 동작이 제어되고 모니터링이 가능합니다.
- 가전제품: TV, 냉장고, 세탁기, 에어컨 등의 가전제품들은 펌웨어를 사용하여 동작을 제어하고 설정 정보를 저장합니다. 예를 들어, 리모컨 키 입력 처리, 온도 조절, 타이머 설정 등이 펌웨어를 통해 제어됩니다.
- 의료 기기: 의료 분야에서는 펌웨어가 의료 기기의 동작을 제어하고 환자 정보를 처리하는데 사용됩니다. 예를 들어, 혈압계, 심전도기, 산소 측정기 등의 의료 기기에서 펌웨어가 사용됩니다.