임베디드 스터디 - 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 라이센스를 따릅니다.