부트로더(boot loader)란 컴퓨터 시스템이 전원이 켜지거나 리셋된 후, 운영체제(Operating System, OS)를 메모리에 로드하고 실행을 시작하도록 하는 소프트웨어 구성 요소를 말한다. 일반적으로 하드웨어 초기화가 완료된 직후, 펌웨어(예: BIOS, UEFI)에서 호출되며, 운영체제 커널을 찾고, 필요한 초기 설정을 수행한 뒤 제어권을 넘겨준다.
주요 기능
- 시스템 초기화 지원
- 하드웨어 초기화가 완료된 뒤, 메모리, CPU, 주변장치 등에 대한 기본 설정을 검증하거나 추가 구성한다.
- 운영체제 이미지 탐색 및 로드
- 저장 매체(하드디스크, SSD, 플래시, 네트워크 등)에 저장된 OS 커널 이미지와 부트 파라미터를 찾아 메모리로 복사한다.
- 제어권 전달
- 커널 로드가 끝나면 CPU 제어를 커널의 진입점(entry point)으로 넘겨 OS 부팅을 시작한다.
- 멀티부팅 관리
- 여러 운영체제가 설치된 경우, 사용자가 선택한 OS를 로드하도록 메뉴를 제공한다(예: GRUB, rEFInd).
구분
| 구분 | 설명 | 대표적인 구현 |
|---|---|---|
| 1단계 부트로더 | 펌웨어 직후 가장 먼저 실행되며, 보통 매우 제한된 크기와 기능을 가짐 | BIOS의 MBR 부트스트랩, UEFI의 부트 매니저 |
| 2단계 부트로더 | 1단계 부트로더가 로드한 후 실행되며, 파일 시스템을 인식하고 OS 커널을 찾음 | GRUB, LILO, systemd‑boot, Windows Boot Manager |
| 네트워크 부트로더 | 네트워크를 통해 커널을 다운로드하여 부팅(주로 무인 시스템) | PXE 부트, iPXE |
역사적 배경
- 초기 개인용 컴퓨터에서는 MBR(Master Boot Record) 의 512바이트 영역에 간단한 부트 로더가 저장되어 있었으며, 이를 통해 DOS 등 단일 운영체제만을 부팅했다.
- 1990년대 이후 멀티부팅 요구와 파일 시스템 다양화로 다단계 부트 로더가 등장했고, GNU 프로젝트의 GRUB(Grand Unified Bootloader)가 널리 채택되었다.
- 2000년대 초반부터는 UEFI(Unified Extensible Firmware Interface) 표준이 보편화되면서, 기존 BIOS 기반의 부트 로더와 별도로 UEFI 부트 매니저가 시스템 시작 과정을 관리한다.
보안 측면
- 부트 로더는 시스템 초기 단계에서 실행되므로, 악성 코드가 삽입될 경우 전반적인 시스템 보안에 심각한 위협이 된다. 이를 방지하기 위해 Secure Boot(UEFI 기반)와 Trusted Platform Module(TPM) 연계 방식이 도입되어, 서명된 부트 로더만 실행하도록 검증한다.
- 일부 운영체제는 자체적인 무결성 검증 메커니즘(예: Linux의 dm‑verity, Windows의 Kernel Mode Code Signing)을 부트 로더 단계에서 적용한다.
주요 구현 예
- GRUB 2: GNU 프로젝트에서 개발, 리눅스와 다양한 유닉스 계열 OS를 지원한다.
- systemd‑boot: systemd 프로젝트에 포함된 간결한 UEFI 전용 부트 로더.
- Windows Boot Manager (bootmgr): Windows 운영체제 전용 부트 로더이며, BCD(Boot Configuration Data) 파일을 통해 부팅 옵션을 관리한다.
- U-Boot: 임베디드 시스템용 오픈소스 부트 로더로, 다양한 CPU 아키텍처와 보드에서 사용된다.
관련 용어
- 펌웨어(Firmware): 하드웨어와 직접 상호작용하는 소프트웨어 계층으로, 부트 로더보다 낮은 단계에서 동작한다.
- 커널(Kernel): 운영체제의 핵심 구성 요소로, 부트 로더에 의해 메모리로 로드된 후 실행된다.
- 멀티부팅(Multiboot): 하나의 시스템에 여러 운영체제를 설치하고 부팅 시 선택할 수 있게 하는 기능.
참고
- 부트 로더는 하드웨어와 운영체제 사이의 중개 역할을 수행하기 때문에, 시스템 설계·구성·보안에 있어 핵심적인 요소로 평가받는다. 최신 시스템에서는 UEFI와 Secure Boot의 도입으로 부트 로더의 신뢰성 및 관리가 강화되고 있다.