centos6啟動流程

centos6啟動流程

centos6啟動流程圖:

centos6啟動流程

1、POST加電自檢

加載BIOS的硬件信息,獲取第一個啟動設備。自檢主要是檢測一下硬件設備是否存在并且能正常運行。

例如BIOS會檢測CPU、內存以及I/O設備是否能夠正常運行,如果是個人計算機的話可能還會檢測一下顯示器。只要一通電,CPU就會自動去加載ROM芯片上的BIOS程序,是這樣來實現的。而檢測完成之后進行硬件設備的初始化。

2、MBR引導加載

當第一步自檢硬件沒有問題時候,這里以BIOS為例,BIOS將會直接去找硬盤的第一個扇區,找到前446字節,將MBR加載到內存中,MBR將告訴程序下一階段去哪里找系統grub引導。

這個階段屬于grub的第一階段。前面的BIOS通過讀取并執行啟動設備的MBR中的bootloader,而bootloader要實現的功能就是提供一個菜單給用戶,讓用戶去選擇要啟動的系統或不同的內核版本,因為一塊硬盤上可能不止一個操作系統。然后把用戶選擇的內核版本加載到RAM中的特定空間,接著在RAM中解壓、展開,而后把系統控制權移交給內核。

(推薦教程:centos教程

3、加載系統內核kernel,執行系統初始化信息

在Bootloader開始讀取操作系統內核文件時,接下來會將內核文件解壓縮后裝在到內存當中,然后根據內核提供的功能開始加載各個設備。這里的各個操作都是由內核來完成的,而我們的內核文件通常都存放在/boot目錄當中,并且是一個vmlinux開頭的文件。如下圖所示:

[root@centos6?~]#?cd?/boot [root@centos6?boot]#?pwd /boot [root@centos6?boot]#?ls config-2.6.32-696.el6.x86_64???????????lost+found efi????????????????????????????????????symvers-2.6.32-696.el6.x86_64.gz grub???????????????????????????????????System.map-2.6.32-696.el6.x86_64 initramfs-2.6.32-696.el6.x86_64.img????vmlinuz-2.6.32-696.el6.x86_64 initrd-2.6.32-696.el6.x86_64kdump.img

但是,此時內核程序還沒有加載到磁盤,如何讀取內核文件呢?如果要先加載磁盤,就要有磁盤驅動程序,而驅動程序又在硬盤上,這樣就陷入了一個無限循環。所以我們要采用一種叫做虛擬文件系統的東西來解決這個問題。同樣的,這個文件系統也放在了/boot下,是一個initrd開頭的文件,如上圖所示。

Boot Loader可以加載kernel和initrd,然后把initrd解壓成根目錄,然后內核就可以在這個虛擬的根文件系統上加載驅動程序,之后釋放根文件系統,最后開始正常的啟動過程。

4、啟動init

對于CentOS6來說,init配置文件為:/etc/inittab, /etc/init/*.conf,也就是upstart將配置文件拆分成多個,在/etc/init/目錄下以conf結尾的都是upstart風格的配置文件,而/etc/inittab僅用于設置默認運行級別。運行級別是為了系統運行或維護等目的而設定,分為0-6,共七個級別:

?????0:關機(shutdown); ?????1:單用戶模式(single?user):不需要通過認證,登錄進去之后為root用戶身份; ?????2:多用戶模式(multi?user):會啟動網絡功能,但不會啟動NFS; ?????3:多用戶模式(multi?user):為完全功能模式,提供文本界面; ?????4:預留級別,目前無特別使用目的; ?????5:多用戶模式(multi?user):為完全功能模式,提供圖形化界面; ?????6:重啟(reboot),reboot;

通常我們使用默認級別3或5,不同級別的頁面是可以切換的,切換方式為:init[0-6],使用runlevel命令來查看當前運行的級別。

5、用戶登錄

相關視頻教程推薦:centos教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享