본문으로 이동
  • 현재 모든 문서는 작성 중입니다. 보시는 데 불편함이 있더라도 양해 부탁드립니다.

운영체제 기본/x86-64 Linux의 BIOS 부팅

~ldmsys
관리자 (토론 | 기여)님의 2026년 10월 31일 (토) 06:49 판 (출처·문체 정리: 커널 원문은 git.kernel.org, em dash는 콜론으로 변경)

운영체제 기본 목차

Linux 커널이 제어를 넘겨받은 뒤, 사용자 공간의 첫 프로그램을 실행하기까지의 과정을 따라간다. 기준은 Linux v6.12, x86-64, bzImage의 64비트 부트 프로토콜이다. 다른 부팅 방식과 갈라지는 지점은 해당 장에서 구분한다.

전체 흐름은 진입 환경 준비 → 압축 해제된 커널의 초기화 → PID 1 생성 → init 실행이다. 아래 장을 순서대로 읽으며 각 단계가 무엇을 넘겨받고 무엇을 준비해 다음 단계로 넘기는지 살펴본다.

읽는 순서

  1. 진입 규약과 압축 해제: 로더가 준비할 CPU 상태와 부트 정보, 두 startup_64의 차이.
  2. 커널 초기화: 초기 주소 공간과 C 실행 환경에서 start_kernel까지.
  3. PID 1 생성: 부트 태스크에서 별도 태스크를 만들고 나머지 초기화를 이어가는 과정.
  4. init 실행과 사용자 모드 진입: /init과 init=의 선택, exec, 실제 사용자 모드 전환.

함수 호출, 주소로의 분기, 태스크 생성, 프로그램 교체는 서로 다른 사건이다. 흐름도의 화살표를 읽을 때 이 차이를 구별하면 부팅 경로를 이해하기 쉽다.