본문 바로가기

20./22. Linux

[Linux/부팅] 리눅스 부팅 과정

리눅스 부팅 과정

 

1. 전원스위치 ON

  • 시스템 전원공급
  • 메인보드의 ROM-BIOS에 있는 BIOS프로그램 자동실행
    • BIOS프로그램은 전원공급과 함께 메모리의 특정번지에 자동 로드
    • CPU는 전원공급과 함께 특정번지의 BIOS프로그램을 자동실행



2. BIOS프로그램들의 실행내용

  • 자체진단기능(POST)
    • CMOS검사, CPU, MEMORY, 그래픽카드등 하드웨어의 이상유무를 검사하고 초기화
  • 부팅매체검색과 부트로더 실행
    • POST과정이 이상없이 진행완료되면 검색된 부팅매체에서 부트로더를 불러옴
    • 부팅매체로 선택되었다면 부팅파티션에 있는 0번섹터(MBR)에 있는 부트로더을 읽음
  • 부트로더가 메모리에 적재되면 BIOS는 종료, 시스템제어권은 부트로더(GRUB)



3. 부트로더의 실행

  • 부트로더 실행과 함께 /boot/grub/grub.conf파일을 읽어서 부팅 커널를 결정
  • 부트로더은 커널(kernel)이미지를 불러옴, 시스템 제어권을 커널로 넘김



4. 커널의 로딩

  • 커널은 swapper프로세스(PID 0번)를 호출함
  • swapper는 커널이 사용할 각 장치드라이브들을 초기화, init프로세스(PID 1번)를 실행
  • init프로세스가 실행되면서 /etc/inittab파일을 읽어들여서 그 내용들을 차례대로 실행



5. init프로세스의 실행

  • 이후의 과정들은 모두 init프로세스의 실행내용 (/etc/inittab파일의 실행내용들)
  • 로그인프롬프트가 나오기 까지의 부팅완료화면까지 init프로세스에 의해서 실행되는 내용들임