簡單明瞭!嵌入式Linux啓動過程詳解

init階段(1) 安全

 

1.肯定用戶登陸模式網絡

在「/etc/inittab」中列出了以下所示的登陸模式,主要有單人維護模式、多用戶無網絡模式、文字界面多用戶模式、X-Windows多用戶模式等。其中的單人維護模式(runlevel爲1)是相似於Windows中的「安全模式」,在這種狀況下,系統不加載複雜的模式從而使系統可以正常啓動。在這些模式中最爲常見的是3或5,其中本系統中默認的爲5,也就是X-Windows多用戶模式。學習

#Default runlevel. Therunlevels usedby RHS are:this

#   0 - halt (Do NOT set initdefault tothis)spa

#   1 - Single user moderest

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

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

#   4 - unusedit

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

#   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 

程序流程圖以下:

相關文章
相關標籤/搜索