當前位置:
首頁 > 最新 > Linux啟動過程簡單分析圖

Linux啟動過程簡單分析圖

內核引導階段

1、bootsect階段

2、setup階段

3、head.S階段

4、main.c階段

init階段(1)

1。確定用戶登錄模式

在「/etc/inittab」中列出了如下所示的登錄模式,主要有單人維護模式、多用戶無網路模式、文字界面多用戶模式、X-Windows多用戶模式等。其中的單人維護模式(runlevel為1)是類似於Windows中的「安全模式」,在這種情況下,系統不載入複雜的模式從而使系統能夠正常啟動。在這些模式中最為常見的是3或5,其中本系統中默認的為5,也就是X-Windows多用戶模式。

#Default runlevel. Therunlevels usedby RHS are:

# 0 - halt (Do NOT set initdefault tothis)

# 1 - Single user mode

# 2 - Multiuser, without NFS (The same as 3,if you do not have networking)

# 3 - Full multiuser mode (文本界面啟動模式)

# 4 - unused

# 5 - X11 (圖形界面啟動模式)

# 6 - reboot (Do NOT set initdefault tothis)

#

id:5:initdefault:

init階段(2)

2。執行腳本/etc/rc.d/rc.sysinit

在確定了登錄模式之後,就要開始將Linux的主機信息讀入Linux系統,其內容就是文件「/etc/rc.d/rc.sysinit」中的。查看此文件可以看出,在這裡確定了默認路徑、主機名稱、「/etc/sysconfig/network」中所記錄的網路信息等。

#System initialization.

si::sysinit:/etc/rc.d/rc.sysinit

init階段(3)

3.啟動內核的外掛模塊及各運行級的腳本

在此,主要是讀取模塊載入配置文件(/etc/modules.conf),以確認需要載入哪些模塊。接下來會根據不同的運行級(runlevel),通過帶參數(運行級)運行「/etc/rc.d/rc」腳本,載入不同的模塊,啟動系統服務。init進程會等待(wait)「/etc/rc.d/rc」腳本的返回。

l0:0:wait:/etc/rc.d/rc 0

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

init階段(4)

4. 進入用戶登錄界面

系統還需要配置一些異常關機的處理部分。最後通過「/sbin/mingetty」打開幾個虛擬終端(tty1~tty6),用於用戶登錄。如果運行級為5(圖形界面啟動),則運行xdm程序,給用戶提供xdm圖形界面的登錄方式。如果在本地打開一個虛擬終端,當這個終端超時沒有人登錄或者太久沒有人擊鍵時,該終端會退出執行,腳本中的「respawn」即告訴init進程重新打開該終端,否則在經過一段時間之後,我們會發現這個終端消失了,無法利用ALT+Fn切換。

init階段(5)

#Trap CTRL-ALT-DELETE

ca::ctrlaltdel:/sbin/shutdown-t3 -r now

#When our UPS tells us power has failed, assume we have a few minutes

pf::powerfail:/sbin/shutdown-f -h +2 "Power Failure; System Shutting Down"

#If power was restored before the shutdown kicked in, cancel it.

pr:12345:powerokwait:/sbin/shutdown-c "Power Restored; Shutdown Cancelled"

#Run gettysin standard runlevels

1:2345:respawn:/sbin/mingettytty1

2:2345:respawn:/sbin/mingettytty2

3:2345:respawn:/sbin/mingettytty3

4:2345:respawn:/sbin/mingettytty4

5:2345:respawn:/sbin/mingettytty5

6:2345:respawn:/sbin/mingettytty6

#Run xdmin runlevel5

x:5:respawn:/etc/X11/prefdm-nodaemon

程序流程如下:


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嵌入式ARM 的精彩文章:

這是一篇描述 linux 內核首選編碼樣式的文檔
漲姿勢!一個簡單的溫度感測器原來是這樣工作的

TAG:嵌入式ARM |