Linux系統啓動流程:
POST-->BIOS(Boot Sequce)--》MBR(bootloader)-->Kernel(CentOS5:initrd,CentOS6:initramfs)-->/sbin/init(CentOS5:/etc/inittab, CentOS6:/etc/inittab, /etc/init/*.conf)
啓動詳解:
1.POST自檢:第一步就是CPU加電然後尋址,而CPU尋址所需的代碼指令
問題POST自檢完成!將工作移交給BIOS去處理
2.BIOS:(Boot Sequence)加載可選擇的啓動設備->固件廠商製造
3.MBR:硬盤的主引導記錄,存在於0磁道第0扇區,共512字節。其中Bootloader佔據
4.Bootloader(內核加載器)位於第0磁道第0扇區的446字節是最前邊
第一步
grub將內核文件Vmlinz 和 grub自己加載到了/boot上,
同時也在/boot上存放了所有模塊的驅動程序xxx.img文件
grub目錄中存放着grub.conf自身配置文件,device.map磁盤映射圖(映射分區/boot和/根分區)
第二步 上邊我們已經提到grub目錄中存放着device.map磁盤映射分區,接下來我們去查看
映射的根分區/(內核真正掛載的分區)中的各種模塊所在的路徑
接下來查看路徑下的各個模塊.ko文件
Kernerl
Linux屬於單核系統:Kernel+各種外圍模塊組成
通過grub加載內核後,內核開始自我解壓並工作
通過虛擬根文件系統initrfs 調用init工作
/etc/rc.d 目錄中存放着123456運行級別的目錄
以rc3.d爲例,目錄中存放着進程, 進程運行級別 ,進程狀態(K爲開啓、S爲關閉)——>
init就是控制進程是K還是S得總管 (當系統在1 2 3 4 5 6 之間切換時由父進程fork而來的
子進程就會在K與S之間切換狀態)