linux兩種啟動過程分析

純屬個人學(xué)習(xí)總結(jié)所得,如果有不對的地方請留言指出,不勝感激。

經(jīng)過兩天的學(xué)習(xí),了解了linux啟動的兩種模式,在這里總結(jié)一下。

第一種為傳統(tǒng)的System V initialization,起源于Unix,大部分的linux系統(tǒng)都是以這個方式啟動(例如:centos,redhat)。

第二種為近幾年提出的Upstart方式,其特點是基于事件機制,所有的服務(wù)和任務(wù)都是由事件驅(qū)動,部分linux系統(tǒng)是以此啟動(例如:ubuntu,fedora,debian)

首先,介紹第一種,也是最為常見的linux啟動過程:

1、硬件讀取BIOS加載硬件信息以及進行開機自檢。

2、根據(jù)設(shè)置讀取并第一個可啟動的設(shè)備內(nèi)所存儲的MBR的boot loader(即grub)

3、不同的boot loader的設(shè)置不同,加載不同的kernel,之后kernel會進行硬件檢測和驅(qū)動程序的加載。

4、調(diào)用init進程。實質(zhì)上就是運行/etc/inittab文件,從中獲取run level的信息。

5、執(zhí)行/etc/rc.d/rc.sysinit文件(系統(tǒng)初始化進程)配置初始化系統(tǒng)。? (如果可以讀懂shell腳本的可以vim出來看看,文件內(nèi)有詳細的啟動過程和主要工作)

6、根據(jù)run level的不同執(zhí)行不同的/etc/rc.d/rc(0~6)文件和/etc/sysconfig。

其中/etc/rc.d/rc(0~6)文件中包含兩大類文件:K開頭的和S開頭的分別表示start和stop,所有文件都是鏈接到/etc/init.d/文件夾下的,這些都是啟動系統(tǒng)的必要服務(wù)

而/etc/sysconfig文件中為配置文件

7、最后執(zhí)行/etc/rc.d/rc.local文件(此文件為用戶自定義文件,自己寫的開機腳本可以放在此處)

8、執(zhí)行模擬程序mingetty啟動login進程,等待登錄。

接下來說一下第二種啟動方式:

首先,Upstart啟動方式和傳統(tǒng)方式的不同點在于,所有的服務(wù)和任務(wù)都是由事件驅(qū)動的。因此,Ubuntu的init進程不會直接去調(diào)用相對應(yīng)的文件,而是去/etc/init下面尋找對應(yīng)的配置文件,通過對配置文件的調(diào)用,來調(diào)用相對應(yīng)的文件。

其次相比較傳統(tǒng)的啟動方式,/etc目錄下的文件發(fā)生了變化。但是,在第三種啟動方式之前的步驟是一樣的,這里就不再說了,直接從第四步開始。

4、調(diào)用init進程,實質(zhì)上運行/etc/init/rc-sysinit.conf文件,設(shè)置默認的run level。

5、由于run level的改變觸發(fā)/etc/init/rc.conf文件。

打開/etc/init/rc.conf文件,最后一行就寫著:/etc/init.d/rc $RUNLEVEL。也就是說,直接觸發(fā)了/etc/init.d/rc文件。

打開rc文件我們可以看見根據(jù)這個文件系統(tǒng)會觸發(fā)相對應(yīng)的/etc/rc.(0~6)文件

由此觸發(fā)已經(jīng)配置好的系統(tǒng)腳本(這些腳本都是鏈接到/etc/init.d/目錄下,也就是說最終還是要調(diào)用該目錄下的腳本)。

同樣的,腳本的名字和第一種啟動方式的命名規(guī)則一樣,只不過沒有了K開頭的文件,用S表示調(diào)用開始

6、同樣最后觸發(fā)/etc/rc.local文件(此文件為用戶自定義文件,自己寫的開機腳本可以放在此處)

到此為止,系統(tǒng)啟動完畢,等待用戶登錄。

兩種啟動方式,總的來說都是在調(diào)用/etc/init.d下面的腳本文件,不過不同的方式調(diào)用的方法不一樣而已。本文只是簡單的記錄了我對調(diào)用init進

程之后,文件讀寫調(diào)用的一些理解,關(guān)于硬件讀取BIOS到內(nèi)核的調(diào)用并沒有詳細的記錄,有興趣的讀者可以自己下來看看。

最后,如果各位讀者發(fā)現(xiàn)不對的地方,請留言指出,萬分感激?。?!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,261評論 2 33
  • 經(jīng)過對Linux系統(tǒng)有了一定了解和熟悉后,想對其更深層次的東西做進一步探究。這當中就包括系統(tǒng)的啟動流程、文件系統(tǒng)的...
    大福技術(shù)閱讀 1,854評論 0 13
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 100,716評論 9 468
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,586評論 19 139
  • 生活是如此狼狽 深夜里 我還沒能 入睡 總是渴望著 晚一點 沉醉 卻不知 陪伴我的 只剩下了誰 孤苦伶仃 獨自在外...
    白樹先生閱讀 213評論 0 2

友情鏈接更多精彩內(nèi)容