計算機的啟動很矛盾:先執行程式,計算機才能夠啟動;而計算機不啟動是無法執行程式的。
指令暫存器決定cpu下一步要執行的指令
當電源通電一瞬間,暫存器重置為預設值,而這個預設值是指向bios
1.bios
固化在rom晶元上的一段程式 計算機一通電就會執行bios
在bios階段,主要包括兩個步驟:自檢和啟動順序
告訴計算機從哪塊裝置去找作業系統
三個字:找裝置
2.主引導記錄
計算機找到了硬碟後就會去讀取硬碟的第乙個扇區
硬碟的第乙個扇區既最前面的512位元組,稱為主引導記錄
三部分:機器碼、分割槽表、記錄簽名
需要注意的是 記錄簽名為主引導記錄的最後兩個位元組 只有這兩個自己為0x55 0xaa時 才能用於啟動 否則 將控制權交給第二啟動順序的裝置
告訴計算機從硬碟的什麼地方去找作業系統
三個字:找分割槽
3.硬碟啟動
找到啟用的分割槽 載入作業系統
4.載入作業系統核心
將/boot目錄下的核心檔案載入到記憶體
5.第乙個程序
/sbin/init pid=1
其它所有程序都是他的衍生 都是它的子程序
6.rcn.d
n表示執行級別 n=0~6
0關機 1單使用者 6重啟 2-5正常
裡面的檔案大部分為軟鏈結 實際檔案為/etc/init.d下的檔案
7.載入自啟動的檔案
既根據預設的執行級別 將rcn.d裡面的指令碼依次啟動或關閉
8.登入
至此計算機應該就算啟動完成了。
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大...