콘텐츠로 이동

시스템 부팅 (System Boot)

Jan 25, 2026 · Updated Jan 27, 2026

커널을 로드하여 컴퓨터를 시작하는 과정으로, 부트스트랩 프로그램이 커널을 찾아 메모리에 적재하고 실행한다. 운영체제가 생성된 후 하드웨어가 커널 위치와 로드 방법을 알아야 한다.

1 커널 위치 찾기
부트스트랩 프로그램(부트 로더)이 커널 위치 탐색
2 커널 로드
커널을 메모리에 로드하고 시작
3 하드웨어 초기화
커널이 하드웨어 초기화 수행
4 파일 시스템 마운트
루트 파일 시스템 마운트
5 시스템 실행
시스템 실행 상태 진입
1 전원 ON
컴퓨터 전원 투입
2 BIOS
비휘발성 펌웨어 - 첫 번째 부트 로더
3 부트 블록
고정 디스크 위치 - 두 번째 부트 로더
4 커널 로드
커널을 메모리에 적재
5 운영체제 실행
OS 시작 완료
특성BIOSUEFI
부팅 방식다단계 (느림)단일 완전 부트 매니저 (빠름)
64비트 지원제한적우수
대용량 디스크제한적우수한 지원
장점레거시 호환성속도, 현대적 하드웨어 지원
  • 고정 디스크 위치에 저장된 프로그램
  • 단일 디스크 블록에 맞아야 하므로 단순한 코드
  • 부트스트랩 프로그램의 나머지 부분의 디스크 주소와 길이만 알고 있음
MBR (512 bytes)
부트스트랩 코드 446 bytes
파티션 테이블 (4개) 64 bytes
부트 시그니처 (0x55AA) 2 bytes
  • BIOS 방식: 펌웨어가 MBR의 부트 코드를 메모리에 로드하고 실행
  • UEFI 방식: EFI 시스템 파티션에서 부트 로더를 직접 로드 (MBR 부트 코드 불필요)
  • 커널 프로그램을 메모리에 로드
  • 진단 실행: 메모리, CPU 상태 검사, 장치 검색
  • 시스템 초기화: CPU 레지스터, 장치 컨트롤러, 메인 메모리 내용 등
  • 운영체제 시작 및 루트 파일 시스템 마운트

Linux 및 UNIX 시스템용 오픈소스 부트스트랩 프로그램:

  • GRUB 설정 파일에서 부트 파라미터 설정
  • 유연성: 부팅 시 커널 파라미터 수정 가능, 다른 커널 선택 가능

예시 커널 파라미터 (/proc/cmdline):

BOOT_IMAGE=/boot/vmlinuz-4.4.0-59-generic
root=UUID=5f2e2232-4e47-4fe8-ae94-45ea749a5c92

공간 절약 및 부팅 시간 단축을 위해 압축됨:

1 vmlinuz 로드
압축된 커널 이미지 로드
2 압축 해제
메모리에서 커널 압축 해제
3 initramfs
임시 RAM 파일 시스템 사용
4 루트 마운트
실제 루트 파일 시스템 마운트
5 systemd 시작
첫 번째 프로세스로 시작
  • 커널 로드 직후 사용되는 임시 루트 파일 시스템
  • 실제 루트 파일 시스템 마운트에 필요한 드라이버 포함
  • 루트 파일 시스템이 마운트되면 initramfs는 해제됨
1 UEFI
펌웨어 초기화
2 Windows Boot Manager
bootmgfw.efi
3 Windows Loader
winload.efi
4 ntoskrnl.exe
NT 커널 시작
  • LK (little kernel): Android용 부트 로더
  • Android init: 첫 번째 사용자 프로세스로 시작
방식장점단점
BIOS레거시 호환성느림, 현대 하드웨어 지원 제한
UEFI빠름, 64비트/대용량 디스크 지원 우수복잡성, 보안 부트 설정 필요
  • Operating System Concepts, 10th Edition, Chapter 2, p.94-95