Linux - (17) : Booting

­이승환·2021년 9월 2일
0

리눅스 정리

목록 보기
17/21

리눅스 부팅과정


부팅과정은 총 5단계로 분류할 수 있다.

  • 0단계 : 시스템 전원공급
  • 1단계 : BIOS(Basic Input/Output System)
  • 2단계 : Boot Loader
  • 3단계 : Kernel
  • 4단계 : Init

시스템 전원 공급

  1. 메인보드 rom-bios에 있는 BIOS실행
  2. BIOS 프로그램은 전원공급과 함께 메모리의 특정번지로 로드
  3. cpu가 해당 프로그램을 실행

BIOS 실행

  1. POST 로 하드웨어 진단
  2. CMOS 검사, CPU, MEM, 그래픽카드, 키보드 마우스 등 장치 이상 유무 확인
  3. 부트로더 실행
  4. 부트로더가 메모리에 적재되면, BIOS 는 종료되고 시스템 제어권은 GRUB이 가진다

부트로더는 특정 저장장치의 0번섹터(MBR)에 부트로더를 읽음, 리눅스의 경우 GRUB이 대표적임

Boot Load

  • 부트로더는 커널을 메모리에 올리기 위한 일을 하는 녀석으로 커널이미지의 위치를 알고 있어서 스스로 커널이미지를 찾아서 메모리에 올려놓음!
  • Grand Unified BootLoader
  • 환경설정파일 : /boot/grub/grub.conf
  • 실행파일 : /sbin/grub

Kernel & Init Process

  • 커널이 메모리상에서 실행되면 /var/log/dmesg 파일에 로그를 남김
  • 루트 파일 시스템(/) 를 읽기 적용으로 마운트하며, 실패시 커널패닉 메시지를 출력한다
  • 커널은 swapper 프로세스(PID 0 번)을 호출함
  • swapper 프로세스는 각 장치 드라이브들을 초기화 하고, init 프로세스(PID 1번) 을 실행하게 됨
  • /sbin/init 프로세스가 실행하면서 /etc/inittab 파일을 읽어들여서 차례대로 실행함
  • /etc/rc.d/rc.sysinit
  • /etc/rc.d/rc*
  • /etc/rc.local 실행

Q1. cmos 와 bios 의 차이는 무엇일까?
Q2. bios는 그럼 운영체제일까?
Q3. 실행시 개인적으로 실행해야할 프로그램이 있으면 어디에 추가할까?

profile
Mechanical & Computer Science

0개의 댓글