簡單綜合了一下網上看到的文章
啟動過程
系統自檢
載入啟動扇區(x86系統下由bios完成)
mbr載入系統核心
核心載入,載入驅動,掛載檔案系統等
啟動第乙個使用者級程式init的方式,完成引導程序。init始終是第乙個程序(其pid始終為1)。核心會在過去曾使用過init的幾個地方查詢它,它的正確位置(對linux系統來說)是/sbin/init。 init程序建立使用者環境。
執行啟動指令碼
在debian系統下,/etc/init.d/rcs.d/目錄下的啟動啟動指令碼先執行,然後,init程序檢查/etc/inittab檔案裡的執行級別設定(各個版本的linux的設定是不一樣的),然後根據預設的執行級別執行相應的指令碼。比如,執行級別是2, 就執行/etc/rc2.d目錄下鏈結的指令碼。
在redhat系統下, /etc/rc.d/rc.sysinit先執行,然後是相應的執行級別指令碼
ps:/etc/rc.d/rc?.d/ 下的指令碼是指向
/etc/rc.d/init.d/ 的鏈結,這樣,乙個指令碼不需要執行時只要刪除相應的鏈結就可以了。
7.一般地,/etc/rc.d/rc.local會執行。因為,比如,redhat 9,"/etc/rc.d/rc3.d/s99.local是乙個指向
/etc/rc.d/rc.local的鏈結. 可以通過rc.local指定一些系統準備好以後的命令, 比如執行一些應用程式,設定
網路連線
其他一些問題
:-自啟動服務是在哪個階段啟動的?
- - 自啟動服務由/etc/init.d目錄掌控。並且,這些服務可以通過命令設定:
/etc/init.d/apache start
/etc/init.d/apache stop
/etc/init.d/apache restart
sysv-rc-conf這個工具也可以控制自啟動服務的執行
自啟動服務可以通過命令update-rc.d(debian), service(redhat)命令來設定
:-檔案系統如何掛載
- - 雖然linux 系統中的所有檔案組成一棵完整的目錄樹,但檔案本身駐留於不同的儲存裝置,如磁碟,cd-rom等.為了訪問某個檔案系統,需要將乙個儲存裝置上的檔案系統放到主目錄結構中,這就是裝置檔案載入.我們可以使用mount命令手工載入乙個檔案系統,也可以通過在配置檔案/etc/fstab中設定載入資訊項來自動完成某些載入工作.如前所述,
初始化指令碼/etc/rc.d/rc.sysinit會完成檔案系統的檢查與載入, 它實際使用命令: mount -a 來載入所期望載入的檔案系統,而正是/etc/fstab定義了在系統啟動時要載入那些檔案系統.(http://blog.csdn.net/stevensincn/archive/2004/10/15/138026.aspx)
一說:系統在/bin/或者/sbin目錄下找到init程式,然後根據它的配置檔案/etc/fstab進行
:-執行級
- - 執行級0,1,6在所有的系統中是一致定義的(至少在我見過的系統下),0級是掛起系統,1級是單使用者模式
6級是重啟系統。
執行級s 或者 s 是特指系統進入1級狀態執行的指令碼。
執行級7-9也是有效的執行級別(在inittab中並沒有出現),具體應用不清楚。(翻譯自unix man page)
鏈結 查清楚乙個東西其實挺不容易,問題中又有問題
Linux啟動過程
1 開啟 pc電源 pc加電後,乙個特殊的硬體電路會觸發 cpu 的 reset 腳的邏輯值,然後一些 cpu 暫存器,如 cs eip 等被給定乙個值,接著 cpu 跳轉到乙個固定位址開始執行 bios 2 bios 自檢,按設定的裝置啟動 bios 對硬體進行一系列徹底的檢查,如 cpu 型別 ...
Linux 啟動過程
fae 將porting 好的linux 提供,幾乎都在寫應用 空閒時間整理一下 b1202 系統啟動的過程 通過 boot vm 進行啟動 vmlinuz init 程序會讀取 etc inittab etc inittab 先 etc rc.d rc.sysinit 再 etc rc.d rc3...
Linux啟動過程
1.加電時由硬體將bios載入到記憶體末尾.這時是實模式,定址空間為1m.2.由硬體將cs段暫存器強制設定為0xffff,ip指令暫存器設定為0x0000.這樣cs ip指向了oxffff0的位址位置.這個位置就是bios程式的入口位址.3.執行bios程式.在記憶體起始位址0x00000設定1k大...