rhel6系統的啓動流程

在linux學習過程當中, 咱們絕大數時間都用來去學習命令的使用或則是服務的搭建, 由於這些操做性的東西會讓咱們有一種成就感, 而不多有同窗去學習底層的一些東西, 好比說操做系統, 其實任何一門技術當你學到必定高度的時候,你就會發現,很難再往上爬, 其中一個很大的緣由就是基礎知識的掌握不牢固。 寫這段話,告誡本身與他人, 你可能會用你的一輩子去學習一門技術,長路漫漫, 何不從一開始就把基礎打好。 linux

廢話就很少說了, 下面介紹rhel6系統的啓動流程.
c#


下面是centos6系統的啓動流程圖:centos

wKioL1fQ3GXxXUdSAADwlAKeNLE608.png


下面具體分析每一個步驟的過程:ide

1>.POST 加電自檢學習

加電自檢是BIOS 功能的一個主要部分 。負責完成對CPU 、主板、內存 、硬盤子系統、顯示子系統、 串並行接口、鍵盤、CD-ROM 光驅等硬件狀況的檢測 spa


2>.選擇啓動項操作系統

經過BIOS, 選擇系統引導的設備, 好比光盤、USB、磁盤。接口


3>.(MBR分區的磁盤引導爲例)MBR引導:進程

0磁盤0扇區的前446bytes, 存放的是bootloader引導程序。圖片

446bytes顯然過小了, 要想利用這446bytes作一個啓動項顯然有點困難, 爲了解決這個問題, Linux將Boot Loader的程序運行與配置項加載分紅三個階段來運行:

stage1: 運行Boot Loader主程序, 這個程序必須被安裝在啓動區, 即MBR中。由於MBR空間有限, 所以在MBR當中僅安裝Boot Loader的最小主程序, 並無安裝Boot Loader的相關配置文件。

stage1.5: 在MBR隨後的扇區中存放,主要用於與stage2所在分區的文件系統進行交互。

stage2: 經過Boot Loader加載全部配置文件及相關的壞境參數信息, 這些配置文件及相關的壞境參數都存放於磁盤分區上的/boot目錄下。


4>. 通過bootloader引導程序只是將核心內核文件vmlinuz-2.6.32-642.el6.x86_64加載起來, 把系統控制權移交給內核。


5>. 加載/usr/modules下模塊驅動和掛載真正的/文件系統

想要加載/文件系統, 首先要加載/分區的驅動程序,而/分區的驅動程序卻在/lib/modules/中,而/lib/modules這個目錄卻在/下, 顯然沒法去加載/lib/modules中的模塊程序, 這時就須要ramdisk這個虛擬的/文件系統, 這個虛擬的/文件系統是在你安裝操做系統內的時候, 系統會自動檢測出你的磁盤驅動,建立一個虛擬的/文件系統中去。內核啓動後, 首先會將虛擬的根文件系統加載起來, 經過虛擬根文件系統,去加載/lib/modules中的模塊程序。將這些模塊程序加載起來後, 真正的/系統就能夠掛載起來了, 這時虛擬的/文件系統ramdisk退出系統了。


6>.啓動init進程讀取/etc/inittab文件和/etc/init/*.conf文件

a>. 使用/etc/rc.d/rc.sysinit初始化腳本

b>. 執行/etc/rc.d/rc腳本, 會自動加載/etc/rc#.d/下的全部腳本, #號爲默認級別。#號爲默認級別。

c>.執行/etc/rc.d/rc.local腳本

d>.執行/bin/login程序,進入登陸狀態。


rhel5的啓動其實和rhel6差很少。 原理上都是這個樣子的,可是仍是有稍許的不一樣,好比在rhel5中,只去執行/etc/inittab的命令就OK了,而在rhel6中,將/etc/inittab分佈在/etc/inittab和/etc/init.d/目錄下。

rhel7的啓動和rhel五、6能夠說是發生了很大的變化,可是整個啓動的思想仍是能夠參考rhel6的啓動過程。

相關文章
相關標籤/搜索