Firmware는 하드웨어의 제어(low-level control)와 구동을 담당하는 일종의 운영체제입니다.
펌웨어는 일반적으로 ROM에 저장된 하드웨어를 제어하는 마이크로 프로그램으로 ROM이나 PROM에 저장되며, 하드웨어보다는 교환하기가 쉽지만 소프트웨어보다는 어렵습니다. ROM은 수정이 불가능한 메모리기 때문에 한 번 펌웨어가 들어가게 되면 수정이 어렵습니다. 그래서 요즘은 전원이 꺼진 후에도 저장 데이터의 내용이 지워지지 않는 EPROM이나 플래시메모리가 개발되면서 이곳에 펌웨어를 저장합니다. 기능을 업그레이드 해야 할 일이 있으면 펌웨어를 수정하여 업데이트 하면 되기 때문입니다.
프로그램이라는 관점에서는 소프트웨어와 동일하지만 하드웨어와 밀접한 관계를 가지고 있다는 점에서 일반 응용 소프트웨어와 구분됩니다. 펌웨어는 소프트웨어와 하드웨어의 특성을 모두 가지고 있습니다. 예시로 어떤 기능을 발휘하는 하드웨어를 만들 때, 그것을 제어하는 모든 회로를 하드웨어로만 만들면, 그 구조도 대단히 복잡해지고 심지어 논리적인 표현을 하기 어려운 부분도 발생하는데 이런 경우 상당 부분을 소프트웨어로 대체하되 그 소프트웨어가 저장된 기억 장치를 하드웨어의 제어 회로 중의 중심으로 구성하게 됩니다.