2012-2-13
linux 引導流程
1.固件firmware(cmos,bios)-》post加點自檢
2.自舉程式Bootloader(grub)-》載入核心
3.載入核心 -》驅動硬體
4.啟動程序init -》系統啟動的第一個程序
5.讀取執行配置檔案 /etc/inittab
master boot record->MBR主引導扇區 位置:0駐面0磁頭1扇區
插入圖檔:
bootloader中存放的是自舉程式:
windows中為:--》ntldr 以及 boot.ini檔案中的内容
linux中為: --》/etc/grub.conf
init的工作:
init啟動後讀取inittab檔案,執行預設運作級别而繼續進而引導過程。在unix系統中
,init時第一個可以存在的程序,它的PID恒為1,但他也同時必須向一個更進階的功能負責
:PID為0的核心排程器(kernel scheduler),進而獲得cpu時間
inittab 檔案剖析
在inittab中,所有的條目采取以下格式:
id:run-level:action:process
id:标示符,一般為兩位數字或者字母或者數字
run—level:指定運作級别可以指定多個
action:指定運作狀态
process:指定要運作的腳本/指令
action常用取值:
initdefault:指定系統預設啟動的運作級别
sysinit:系統啟動執行process中的運作級别
wait:執行process中指定的指令,并等起結束再運作其他指令
once:執行process中指定的指令,不等待其結果
ctrlaltdel:按下Ctrl+alt+del時執行process指定的指令
powerfail:當出現電源錯誤時執行process指定的指令,不等待其結束
powerokwait:當電源恢複是執行process指定的指令
respawn:一旦process指定的指令中止,便重新運作該命名
任何的系統級别都會起動系統的啟動腳本:
/etc/rc.d/rc.sysinit
ls /etc/rc.d/rc3.d 可以看到系統啟動對應級别下需要執行的腳本操作
/etc/rc.d/rc[0123456].d
分别存放對應于運作級别的服務程式腳本的符号連結,連結到init.d目錄中相應的腳本
比如:s12syslog
s—start
k—kill
數字
腳本名稱
啟動流程:插入圖檔: