Slackware的啟動(init)過程(轉)
導言
在一次IBM於阿姆斯特丹舉辦的Linux研討會上,一位老師提出以下說法:“啟動是Linux最難的部分。但是,一旦核心已經載入,並由init接管之後,你就暢行無阻了。從那個時刻起,所有發生的事情你都可以在指令碼和文件(man page)裡面讀到。”
他當然是對的。在啟動Linux機器的過程中沒有什麼秘密。你能在ASCII檔案中讀到所有東西。但是,在跟蹤這些指令碼的過程中也很容易迷路。Slackware與別的發行版不同之處在於它堅持用BSD風格的啟動過程,而不是像它們那樣用Sys V的啟動過程。
在Sys V的啟動系統中,所有起動/停止的指令碼都放在 /etc/rc.d目錄中。在每一個執行級(runlevel)都有一個目錄(即 /etc/rc.1, /etc/rc.2 等等),其中全是該執行級所需執行指令碼的連結。當進入一個執行級時,有一個大的指令碼來處理這些連結以起動(或停止)該執行級的服務。
Sys V啟動過程用在Redhat、Suse中,我將把解釋它的事留給用這類系統的人。沒有實際使用它的機器,我恐怕很快會在細節上暈頭轉向。
Slackware的使用者(Slackers)多數認為Sys V啟動過程既複雜又難於維護。老實說,Redhat和Suse使用者的想法正好相反。不過,先跟著我,然後你自己作出判斷。
在本文件中,我將試著證明IBM的老師是正確的。我將循著Slackware(8.1)的啟動過程,用指令碼和man page作為指導。會引用很多,而較少(我自己的)文字。
又及:你可能注意到,英語不是我的母語。我會盡量經常地用拼寫檢查程式,但它在語法方面的用處不大。無論在內容或語法方面的錯誤,請不吝賜教。此外,我非常喜歡大家對我寫的東西提出看法。
執行級(runlevel)
我們會很多次談到執行級,所以現在是個好機會來解釋一下執行級。執行級是決定某機器的服務等級的*nix方式。在每個執行級中,人們可以定義哪些服務要啟用、哪些不用。原則上,可以有很多執行級。實際上,只有5個:
- 單使用者執行級,只有最少的服務在執行。這個執行級經常用於系統維護。
- 多使用者執行級,所有提供的服務都在執行。這些服務可能是諸如HTTP伺服器、電子郵件伺服器、SQL伺服器之類。正是系統管理員(你)所需要的。
- 多使用者執行級,和前面一樣,但這次有個圖形介面的登陸管理器。
多使用者執行級之一就是機器正常的執行狀態。你可以決定另外的執行級。例如,用於遠端維護的有網路支援的單使用者執行級。
上述執行級之外,還有兩個特殊的執行級:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-941360/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Android】【init】解析init程式啟動過程Android
- Linux的啟動過程及init程式Linux
- 安裝、完善slackware的全部過程(轉)
- Android 啟動過程簡析(一)之 init 程式Android
- Boot, Init和Shutdown 過程的描述(轉)boot
- slackware啟動指令碼詳解(轉)指令碼
- Linux的啟動過程(轉)Linux
- Slackware啟動指令碼與System V啟動指令碼的區別何在?(轉)指令碼
- FreeBSD系統啟動過程(轉)
- Linux啟動過程綜述(轉)Linux
- Angular的啟動過程Angular
- main的啟動過程AI
- Nginx的啟動過程Nginx
- Oracle的啟動過程Oracle
- Linux初始化系統V的Init過程(轉)Linux
- Windows 啟動過程Windows
- app的啟動過程(三)APP
- App 啟動過程(含 Activity 啟動過程) | 安卓 offer 收割基APP安卓
- OpenHarmony的init程式、init配置與啟動項配置
- 系統啟動, init
- 一個microsoft的.exe程式檔案的啟動過程 (轉)ROS
- 根Activity元件的啟動過程元件
- Android Service的啟動過程Android
- Android Activity的啟動過程Android
- Oracle啟動的三個過程Oracle
- iOS App 的完整啟動過程iOSAPP
- oracle的內部啟動過程Oracle
- Service啟動過程分析
- Activity啟動過程分析
- linux啟動過程Linux
- 【LINUX】啟動過程Linux
- iOS App啟動過程iOSAPP
- Windows啟動過程(MBR引導過程分析)Windows
- 啟動SQL SERVER時自動執行儲存過程(轉)SQLServer儲存過程
- Python繼承過程的__init__方法Python繼承
- SlackWare10.1從(硬碟)安裝到配置(包括升級)全過程(轉)硬碟
- 一張圖弄清Activity的啟動過程
- 走近原始碼:Redis的啟動過程原始碼Redis