이렇듯, 컴퓨터 시스템의 형태와 용도는 여러 가지이지만, 이들의 기본적인 구조는 모두 ‘하드웨어(hardware)’와 ‘소프트웨어(software)’가 합쳐진 형태로 구성된다는 점은 같다. 하드웨어란 컴퓨터 시스템의 구성물 중에서 손으로 만질 수 있는 모든 것, 이를테면 PC에서 본체 및 모니터, 키보드 등을 의미한다. 그리고 소프트웨어란 물리적으로는 존재하지 않고 논리적으로만 존재하는 것, 즉 PC에서는 ‘윈도우’ 등의 운영체제나 ‘워드’와 같은 응용 프로그램 등을 의미하는 것이다.
하드웨어와 소프트웨어의 특성을 모두 갖춘 ‘펌웨어’
소프트웨어를 통해 전달된 정보를 받아들인 하드웨어는 내부의 논리 회로를 거쳐 사용자가 원하는 형태의 결과물로 표현한다. 여기서 말하는 결과물이란 계산 결과의 출력이나 특정 기기의 동작 등을 의미한다. 그런데 컴퓨터 시스템의 활용 범위가 넓어지고, 소프트웨어에서 전달되는 정보 역시 방대해지다 보니 하드웨어 내 제한된 종류의 논리 회로만으로는 이러한 다양한 상황에 모두 대응하기가 어렵게 되었다.
물론, 새로운 소프트웨어가 등장할 때마다 그에 해당하는 기능을 갖춘 논리 회로를 추가한 하드웨어를 새로 만들 수도 있겠지만, 이렇게 하면 비용이나 시간 면에서 큰 낭비가 아닐 수 없다. 그래서 컴퓨터 개발자들은 하드웨어 내부의 제어 부분에 저장공간을 만들어, 그곳에 논리 회로의 기능을 보강하거나 대신할 수 있는 프로그램을 넣을 수 있게 하였다. 이것이 바로 ‘펌웨어(Firmware)’이다.
따라서, 같은 종류의 하드웨어라고 해도 내부의 펌웨어가 달라지면 기능이나 성능, 혹은 사용하는 소프트웨어의 종류가 달라질 수 있다. 펌웨어는 프로그램의 형태를 갖추고 있으므로 기능적으로는 소프트웨어에 가깝지만 하드웨어 내부에 위치하며, 사용자가 쉽게 그 내용을 바꿀 수 없으므로 하드웨어적인 특성도 함께 가지고 있다고 할 수 있다.
흔히 볼 수 있는 펌웨어의 형태
펌웨어는 다른 소프트웨어보다 우선적으로 하드웨어의 기본적인 동작을 제어할 수 있는 기능을 갖고 있다. 예를 들어 PC의 전원을 켜면 운영체제(윈도우 등)의 기동이 시작되기 직전, 검은색 바탕 화면에 PC 제조사의 이름 및 CPU, 메모리 및 하드디스크 용량 등의 하드웨어 정보 목록이 표시되는 것을 볼 수 있다. 이를 바이오스(BIOS: Basic Input / Output System)라고 하는데, PC의 기본적인 입출력 기능을 담당하는 펌웨어의 일종이다. 만약 PC에 장착된 하드디스크가 손상되어 운영체제의 부팅이 실패한다 해도 바이오스는 정상적으로 작동하며, 운영체제 구동에 필요한 데이터를 찾을 수 없다는 오류 메시지를 표시한다. |