Firmware vs. OS

전통적인 펌웨어와 OS는 다르지만, RTOS부터는 경계가 불명확한 듯하다.
2025.03.11
·
5 min read

무슨 차이일까? 배우신 분들께는 너무도 당연하게 차이를 설명할 수 있는 문제겠지만, 일단 내가 검색했을 때는 둘을 딱 놓고 비교한 글은 찾기 어려워서 직접 쓰게 되었다. 내가 보려고.

Firmware

  • 논리회로로 이뤄진 디바이스를 구동하기 위한 소프트웨어

  • 하드웨어 장치에 '포함된' 소프트웨어

    • ROM(Read-Only Memory)/Flash에 박혀서 하드웨어의 동작을 제어한다.

    • 그래서 자유로운 업데이트는 어렵다.

OS, Operating System

  • 상용 컴퓨터에서, 사용자의 하드웨어 및 시스템 리소스를 제어하는 소프트웨어

  • 보조기억장치에 '별도로 설치'하곤 한다.

    • 그래서 자유롭게 업데이트할 수 있다.


Firmware vs. OS

  • 목적의 관점에서

    • OS는 그 위에서 동작하는 소프트웨어의 운영을 지원한다.

      • 상용 PC의 경우 이 밑에 BIOS/UEFI라고 하는 일종의 펌웨어가 있다.

        • 더 밑으로 가면 각 부품에도 펌웨어가 있을 것이다.

      • 더 추상화된 것.

    • Firmware는 논리회로로 구성된 장치의 영혼 그 자체이다.

      • Firmware 밑에는 마이크로컨트롤러밖에 없다.

  • Capability의 관점에서

    • OS가 설치되어 있다면, 그 장치는 범용적 목적으로 쉽게 운영될 수 있다.

      • 당초 펌웨어를 가진 여러 디바이스를 쉽게 제어할 수 있는 인터페이스를 제공하는 것이 역할 아닌가?

    • Firmware가 설치되어 있다는 것은, 오직 그 하드웨어 디바이스의 동작만을 보장한다.

      • 그걸 어떻게 동작시키느냐(시스템 구성)는 디바이스 사용자가 알아서 할 일.

      • 어딘가에 Plug-in 하든, 버튼을 눌러서 동작시키든... 등등.

  • 변동성(?) 가변성(?)의 관점에서

    • OS는 보조기억장치에 주로 설치되므로, 쉽게 업데이트할 수 있다.

      • 얘가 맛이 가더라도 펌웨어가 멀쩡히 살아 있다면 논리적 방법으로 복구가 될 것이다.

    • Firmware는 ROM/Flash 계열에 이식되므로, 특별히 업데이트 상황을 상정하진 않는다.

      • 얘가 맛이 가면 ROM 자체를 재이식하거나 가능한 경우 장비를 이용해 재프로그래밍해야 한다.

      • 현대에는 OTA 같은 게 나와서 상황이 달라졌지만...

  • SW & HW 구분의 관점에서

    • OS는 엄연히 소프트웨어 레벨로 본다.

    • Firmware는 하드웨어와 한 몸이라고 본다.

모호해진 경계

RTOS

  • Firmware 들어갈 곳에 RTOS를 설치할 수 있다.

    • RTOS는 마이크로컨트롤러를 훨씬 쉽게 프로그래밍할 수 있도록 도와 준다.

  • 그럼 얘는 Firmware인가? OS인가?

    • 확실히 Firmware이고, 확실히 OS이다.

Bare Metal Firmware

  • 이제 전통적인 Firmware는 Bare Metal Firmware라 부르는 분위기다.

    • 오직 하나의 HW Device를 위한 코드만 포함된 펌웨어

으악 머리야.