포스트

임베디드 스터디 - OS 부팅 절차

임베디드 스터디 - OS 부팅 절차

OS 부팅 절차

  • 데스크탑이나 랩탑에서 PC를 실행할 때 다음 과정을 거치게 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
전원 ON
    ↓
BIOS/UEFI
  └─ POST (하드웨어 자가진단)
    ↓
MBR 로드
(UEFI는 GPT + EFI 파티션의 .efi 파일 직접 로드)
    ↓
GRUB Stage 1 (446바이트) → core.img → GRUB 전체
    ↓
커널 엔트리 포인트 (스타트업 코드)
  - .bss 초기화, 페이지 테이블 설정
    ↓
start_kernel()
    ↓
systemd (PID 1)
    ↓
바탕화면

BIOS (Basic Input/Output System)

  • 하드웨어와 OS 사이의 가장 기초적인 인터페이스 역할을 수행함. 최근 메인보드에서는 LEGACY라는 형태로 불리기도 함
  • 부팅할 장치를 고를 때 무조건 MBR(Master Boot Record)의 부트코드를 실행함
    • MBR 512바이트 안에 부트코드(446바이트), 파티션 테이블(64바이트)가 존재함
  • MBR에서 GRUB와 같은 부트로더를 실행시키기 위해 다음 절차로 동작함
1
2
3
4
5
6
7
8
9
MBR 부트 코드 (446바이트)
    ↓ 디스크에서 읽어서 실행
GRUB core.img (중간 단계, 수 KB)
  - 파일시스템 드라이버 포함
  - /boot 파티션을 읽을 수 있게 됨
    ↓
GRUB 전체 로드 (/boot/grub/)
  - OS 선택 메뉴
  - 커널 이미지 로드

UEFI (Unified Extensible Firmware Interface)

  • BIOS의 한계를 극복하기 위해 Intel 주도로 설계된 현대적 펌웨어 표준으로, 2000년대 중반부터 BIOS를 대체하기 시작함. 요즘 출시되는 메인보드는 사실상 전부 UEFI.
    • BIOS와 달리 GPT(GUID Partition Table) 디스크 구조를 갖는다.
    • GPT 디스크 내 EFI 파티션에서 .efi 파일을 직접 실행한다.
    • EFI를 사용하면서 UEFI는 듀얼부팅, GUI 지원 등이 가능해졌다.

POST (Power-On Self-Test)

  • 하드웨어 자가진단 동작. 전원 인가 직후 BIOS/UEFI가 하드웨어를 자가진단한다.
    • CPU 정상동작 점검
    • RAM 읽기/쓰기 동작 점검
    • 그래픽카드 존재 확인
    • 키보드, 마우스 연결 확인 등

GRUB 실행

  • GRUB를 실행하고 다음 과정을 거쳐 데스크탑에 Linux와 같은 OS가 실행되기 시작한다.
  • Linux에서 모든 프로세스는 systemd의 자식 프로세스이다. ``` GRUB ↓ 커널 엔트리 포인트로 점프 (첫 번째 제어권 이동) 커널 스타트업 코드 시작
    • .bss 초기화
    • 페이지 테이블 설정 ↓ (두 번째 제어권 이동) start_kernel() 진입 ↓ systemd (PID 1)
    • 네트워크 서비스 시작
    • 디스플레이 매니저 시작
    • 로그인 화면 표시 ↓ 바탕화면 등장 ```
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.