운영체제 기본/x86-64 Linux의 BIOS 부팅: 두 판 사이의 차이
외관
BIOS GRUB 부팅 경로 보강과 각론 형식 통일 |
BIOS GRUB 부팅 경로 보강과 각론 형식 통일 |
||
| 9번째 줄: | 9번째 줄: | ||
# [[운영체제 기본/x86-64 Linux의 부팅/커널 초기화|커널 초기화]]: 초기 주소 공간과 스택, 예외 처리에서 start_kernel의 공통 초기화까지. | # [[운영체제 기본/x86-64 Linux의 부팅/커널 초기화|커널 초기화]]: 초기 주소 공간과 스택, 예외 처리에서 start_kernel의 공통 초기화까지. | ||
# [[운영체제 기본/x86-64 Linux의 부팅/PID 1 생성|PID 1 생성]]: 부트 태스크와 PID 1의 분리, 나머지 초기화와 동기화. | # [[운영체제 기본/x86-64 Linux의 부팅/PID 1 생성|PID 1 생성]]: 부트 태스크와 PID 1의 분리, 나머지 초기화와 동기화. | ||
# [[운영체제 기본/x86-64 Linux의 부팅/init | # [[운영체제 기본/x86-64 Linux의 부팅/루트 파일시스템과 init 선택|루트 파일시스템과 init 선택]]: rootfs와 initramfs, rdinit=·init= 및 기본 init 후보의 선택. | ||
선택한 실행 파일의 적재와 사용자 모드 진입은 [[운영체제 기본/Linux의 ELF 로딩|Linux의 ELF 로딩]]에서 이어진다. | |||
2026년 10월 31일 (토) 08:43 판
BIOS 환경의 GRUB 2.12가 Linux v6.12의 x86-64 커널을 적재하고, 커널이 첫 사용자 프로그램인 init을 실행하기까지의 과정을 따라간다. GRUB의 일반 linux 명령이 사용하는 32비트 부트 프로토콜을 기준으로 한다.
읽는 순서
- GRUB에서 커널로: 커널·initramfs 적재, boot_params와 CPU 상태의 인계.
- 진입 규약과 압축 해제: startup_32에서 64비트 모드로 전환하고 커널 본체를 배치하는 과정.
- GDT와 LDT 초기화: 부트로더의 GDT에서 커널의 CPU별 GDT·TSS로 넘어가는 과정과 LDT의 초기 상태.
- 커널 초기화: 초기 주소 공간과 스택, 예외 처리에서 start_kernel의 공통 초기화까지.
- PID 1 생성: 부트 태스크와 PID 1의 분리, 나머지 초기화와 동기화.
- 루트 파일시스템과 init 선택: rootfs와 initramfs, rdinit=·init= 및 기본 init 후보의 선택.
선택한 실행 파일의 적재와 사용자 모드 진입은 Linux의 ELF 로딩에서 이어진다.