Computer >> 컴퓨터 >  >> 소프트웨어 >> 소프트웨어

펌웨어 vs 소프트웨어: 핵심 차이점 완벽 정리

기술적으로 펌웨어(Firmware)는 소프트웨어(Software)의 하위 집합입니다. '소프트웨어'라는 용어는 모든 유용한 코드를 포괄하기 때문입니다. 하지만 실제로 소프트웨어라는 말은 훨씬 다른 종류의 프로그램을 가리키는 데 사용됩니다.

일반적으로 펌웨어는 하드웨어와 직접 상호작용하는 저수준(low-level) 코드를 의미합니다. 이 계층 위에서 작동하는 모든 프로그램이 바로 소프트웨어입니다. 헷갈리신다면 아래에서 좀 더 자세히 살펴보겠습니다.

다양한 종류의 소프트웨어

'소프트웨어'라는 용어의 문제점은 그 범위가 너무 넓다는 것입니다. 컴퓨터나 그 밖의 전자 기기를 제어할 수 있는 명령어 집합이라면 무엇이든 소프트웨어로 간주될 수 있습니다.

모든 프로그램이 어셈블리 언어로 작성되어 하드웨어와 직접 통신하던 초기 컴퓨팅 시절에는 이것이 큰 문제가 되지 않았습니다. 그러나 오늘날 컴퓨팅 기기는 여러 겹의 코드 계층 위에서 작동하며, 사용자는 최상위 계층의 프로그램만 접하게 됩니다.

애플리케이션 소프트웨어(Application Software)라 불리는 이 범주에는 웹 브라우저나 워드 프로세서처럼 PC에서 사용하는 모든 앱과 유틸리티가 포함됩니다. 그 아래에는 화면에 시각 정보를 렌더링하고 입력을 처리하는 등의 저수준 작업을 담당하는 운영체제(OS)가 자리하고 있습니다.

대부분은 여기서 끝이라고 생각하지만, 운영체제조차 하드웨어와 직접 통신하는 경우는 드뭅니다. OS 아래에는 시스템 소프트웨어가 하드웨어 기능에 손쉽게 접근할 수 있도록 돕는 또 다른 계층이 존재합니다. 바로 펌웨어입니다.

펌웨어: 소프트웨어의 기반이 되는 계층

펌웨어 vs 소프트웨어: 핵심 차이점 완벽 정리

대부분의 고급 프로그래밍 언어에서 화면에 이미지를 표시하는 것은 간단한 명령 하나면 충분합니다. 그러나 컴퓨터 어딘가에는 이 명령을 실제 프로세서 명령어로 변환하는 코드가 반드시 존재합니다.

펌웨어는 하드웨어와 소프트웨어 사이의 연결고리 역할을 하며, 개발자가 CPU 전용 명령어 대신 단순화된 프로그래밍 인터페이스를 통해 기기의 기능을 활용할 수 있도록 해줍니다. 컴퓨터의 경우 이 펌웨어가 바로 잘 알려진 BIOS(Basic Input Output System)로, 운영체제 없이도 접근할 수 있습니다.

TV 리모컨이나 공유기 같은 단순한 전자 기기에서는 펌웨어가 운영체제 역할까지 겸합니다. 이런 기기들은 PC처럼 서드파티 애플리케이션을 설치하는 용도가 아니며, 필요한 모든 작업을 펌웨어에 의존해 수행합니다.

펌웨어는 어떻게 기기에 설치될까?

펌웨어 vs 소프트웨어: 핵심 차이점 완벽 정리

펌웨어 없이는 어떤 전자 기기도 사용할 수 없습니다. 그렇기 때문에 모든 전자 부품에는 제조사가 미리 펌웨어를 탑재한 상태로 출시됩니다.

컴퓨터 역시 마찬가지입니다. 이 프로그램은 하드 드라이브가 아닌 메인보드의 전용 플래시 칩에 저장됩니다. 덕분에 운영체제가 설치되지 않은 상태에서도 컴퓨터를 부팅하고 하드웨어 설정을 구성할 수 있습니다.

대부분의 기기에서 펌웨어 업데이트는 쉽지 않을뿐더러 꼭 필요한 작업도 아닙니다. 기기의 근본적인 제어 코드인 만큼, 잘못 건드리면 하드웨어 자체를 사용 불능 상태로 만들 수 있습니다. 컴퓨터는 예외적인 경우로, 사용자가 칩을 플래싱(flashing)하는 방식으로 BIOS 업그레이드를 설치할 수 있습니다.

펌웨어 vs 소프트웨어: 한눈에 비교

구분펌웨어소프트웨어
역할하드웨어 구성 요소를 직접 제어하는 필수 코드펌웨어를 활용해 복잡한 작업을 수행하는 선택적 프로그램
저장 위치기기의 전용 칩에 저장하드 디스크 메모리에 설치
설치제조사가 사전 설치사용자가 직접 설치 및 구성
계층 구조운영체제와 기타 소프트웨어를 지원하는 가장 낮은 코드 계층하위의 펌웨어에 의존해 하드웨어 추상화를 제공받는 상위 코드
단순 기기에서의 역할단순 전자 기기에서 유일한 제어 프로그램펌웨어 없이는 작동 불가
호환성하드웨어 종속적. 프로세서 아키텍처마다 다르며 교환 불가하드웨어 독립적. OS는 프로세서 계열과 무관하게 동일하게 작동하나, 애플리케이션은 보통 OS 종속적
업데이트거의 업데이트되지 않으며 삭제 불가업그레이드와 제거가 비교적 쉬움

펌웨어는 소프트웨어와 어떻게 다를까?

하드웨어와 소프트웨어는 흔히 전자 기기의 두 가지 구성 요소로 불리지만, 이것만으로 전체 그림이 완성되는 것은 아닙니다. 운영체제와 애플리케이션은 하드웨어와 직접 통신할 수 없으며, 그 간극을 메워줄 특수한 코드 계층이 필요합니다.

바로 이 연결 요소가 펌웨어입니다. 펌웨어는 하드웨어를 직접 제어하는 아키텍처별 명령어로 구성되어 있으며, 단순한 전자 기기에서는 기본 운영체제 역할까지 수행합니다. 다른 기기에서는 펌웨어가 소프트웨어에 추상화된 인터페이스를 제공하여, 운영체제가 하부 아키텍처와 관계없이 하드웨어를 사용할 수 있도록 도와줍니다.

필수 불가결한 성격 때문에 펌웨어는 디스크에 기록되는 소프트웨어와 별개로 메인보드의 플래시 칩에 미리 탑재된 상태로 출고됩니다. 일반 소프트웨어 패키지의 간단한 설치 방식과 달리, 특수한 과정(일명 '플래싱')을 거쳐야만 업데이트할 수 있습니다.

모든 전자 기기와 주변 장치에는 각자의 펌웨어가 내장되어 있습니다. 디지털 카메라, 스마트폰, SSD, 심지어 USB 드라이브까지 — 제어가 필요한 하드웨어가 있는 곳이라면, 그것을 관리하는 펌웨어가 반드시 함께 존재합니다.