Linux

Linux 부팅 과정에 대한 이해. <임시저장>

컴퓨터의 전원 ON


ROM-BIOS 프로그램이 실행된다. ( 메인보드에 내장된 프로그램 )

-> BIOS (Basic Input/Output System) 가 메모리에 로드 되어 실행 된다.

-> POST (Power On Self Test) 수행.

:: 컴퓨터에 장착된 H/W가 인식된다. ( 시리얼.패러럴 장치, PS/2 마우스 장치, 사운드 장치, IDE 장치 등등.. )

:: H/W의 물리적인 손상 체크와 초기화(Init)가 병행된다. (CMOS 내용 체크, CPU, Memory 등등 H/W장치 이상유무                                                                                                                                 진단 및 초기화 수행)

-> 부팅매체 검색. ( DIST, CD-ROM, Floppy etc.. )

-> MBR (Master Boot Record)를 읽어, 부트로더(GRUB)을 로드 시킴.


GRUB 실행 (MBR/PBR -> GRLDR -> GRUB -> Linux ) 

-> 부팅메뉴 선택 (/boot/grub/grub.conf파일 참조) (OS 선택)

-> kernel image load (/boot/vmlinuz-2.6.......fc8) 

-> swapper 프로세스 호출

:: 커널 이미지 압축 해제, 각 장치 드라이브들 초기화

>> 시스템 초기화, 레지스터 설정, 메모리 영역 설정, 커널, 램디스크 메모리에 로드 등.. 일련의 작업을 수행.

:: 루트 (/) 파일시스템을 -ro 로 초기화 (read only)

>>/boot/grub/menu.1st (=/boot/grub/grub.conf)에서 "root=파티션"으로 설정된 부분을 루트 파티션으로.

:: 루트 파일시스템을 read-write모드로 마운트

:: init 프로세스 (PID=1) 호출.


 init 프로세스 (PID=1) 호출.

-> /etc/inittab 파일 참조.

-> /etc/rc.d/rc.sysinit 스크립트 실행 ( 부팅레벨과 무관하게 딱 한번 실행됨. )

:: default path 설정, /etc/sysconfig/network 실행, 네트워크 설정확인 및 적용, 스왑 작동, 파일시스템 점검, 

커널 모듈 로딩, 등...

-> 해당 run-level에 맞는 /etc/rc.d/rc#.d 스크립트 실행.

->ctrlaltdel 키 작동 설정

-> 전원 관리 설정 (UPS) (pf = Power Failure ,pr =Power Restore)

-> 가상 콘솔 접속을 위한 프로토콜(mingetty) 실행.

-> 실행레벨이 5일 경우, prefdm스크립트 실행(x윈도우로 부팅) 


Login 프롬프트 출력 (Prompt = 컴퓨터가 사용자에 대해 입력을 요구하고 있음을 나타내는 모니터상의 기호·글.)

'Linux' 카테고리의 다른 글

Linux Text Editor, vi  (0) 2013.07.23