부트로더

Sijin·2025년 8월 15일

부트로더

  • OS를 실행하기 위해 먼저 메모리에 올라와 실행되는 소프트웨어
  • 하드웨어와 OS(커널)사이에서 OS를 안전하게 실행시키기 위한 소프트웨어

주요 역할

  • 초기 하드웨어 설정
    • CPU, 메모리, 저장장치 등 시스템 자원 준비
  • OS/커널 로딩
    • OS 커널 이미지 로딩 및 실행
  • 운영체제 선택
    • multi-boot 환경에서 여러 OS 중 하나 선택
  • 진단 및 복구 지원
    • 시스템 복구, 펌웨어 업데이트 등
  • 보안 및 신뢰성 확보
    • secure boot을 적용해 부팅 과정 중 무결성, 서명 검증 수행

동작 흐름

  • BL0, BL1은 SoC 벤더에서 담당한다
  • BL2 이후는 end user에서 담당한다

1. BL0 (Boot ROM)

  • 전원을 켜면 내장된 iROM 또는 Boot ROM 코드가 가장 먼저 실행된다
  • 부팅 가능한 미디어를 탐색 (SD카드, 플래시 등)
  • 1차 부트로더(BL1)를 SRAM에 올림
  • ROM에 내장된 공개키 등으로 BL1 이미지의 서명과 무결성 검증

2. BL1 - preloader

  • DRAM 등 하드웨어를 초기화
  • BL2 이미지를 부팅 미디어에서 읽어옴
  • BL2의 서명을 검증하고, 검증 성공 시 BL2로 제어권을 넘김
  • 일반적으로 SRAM이 u-boot같은 전체 부트로더를 로드하기에 충분히 크지 않아서 필요한 단계
  • SPL(Secondary Program Loader)라고도 불림

3. BL2 (U-boot, GRUB 등)

  • 더 광범위한 하드웨어 초기화
  • 커널을 DRAM에 올려 OS를 로딩
  • 커널로 제어권을 넘김

4. Linux Kernel

  • 커널 실행

secure boot

  • secure boot 부트로더는 부트 이미지를 서명 및 해시값으로 검증함

서명, 검증

  • SoC 벤더의 private key로 firmware, 부트로더, 커널, 드라이버 등 핵심 이미지에 출시 이전에 서명
  • public key는 Boot ROM이나 firmware 등에 저장

0개의 댓글