標籤:linux系統
1,POST [power on self test]: 接通電源後,CPU通過出廠指定的地址讀取代碼,包括主板晶片上的ROM,測試記憶體,cpu風扇,顯示裝置等。此時無論如何,硬碟裝置本身必須在硬體平台上被主板等組件識別到。硬碟裝置可以是硬碟,隨身碟,光碟片等
BOIS--Boot Sequence--主要設定啟動次序(多個磁碟都可以啟動OS)
載入磁碟裝置第0磁軌第0扇區[sector 0]----MBR
446bytes bootloader :選定啟動的OS,能自行識別分區檔案系統(kernel檔案只能放在基本磁碟分區上),調用相應的核心檔案至記憶體RAM中。
Kernel檔案在記憶體中壓縮存放,其檔案由兩段組成,第一段能解壓第二段檔案。
64bytes 分區表
2bytes 特殊標記
tips:bootloader載入核心並為核心提供根的驅動模組檔案(initrd - 被同時載入到記憶體中--核心把此檔案當磁碟用-),此模組和kernel檔案放在同一個基本磁碟分區上。
tips:安裝程式在安裝系統後能自動識別所需要的驅動模組打包做成檔案。能讓核心識別更多的硬體裝置
2, MBR存在磁碟中,bootloader由OS設定安裝,GRUB引導程式安裝在bootloader中
GRUB引導階段: /boot/grub/*
1st stage: 位於MBR中,為了引導2nd stage
1.5 stage: 位於boot基本磁碟分區中,為識別核心檔案所在的檔案系統提供檔案系統識別擴充
2nd stage: 位於boot基本磁碟分區中,GRUB的引導程式
當stage2被載入時,GRUB根據請求的情況顯示一個核心清單(/etc/grub.conf中定義)
Grub的功能
1、選擇要啟動的核心或系統;
能隱藏選擇介面
2、互動式介面
e: 編輯模式
3、基於密碼保護
啟用核心映像;
定義在相應的title下
傳遞參數(進入編輯模式)
定義在全域段中
3,kernel檔案自解壓,核心運行initrd檔案在記憶體中模擬的偽檔案系統,載入驅動模組(運行/linuxrc或者/init指令碼,sysroot下的真正根檔案系統裝置掛載到/下,初始根檔案系統掛載到initrd/下,然後釋放虛擬檔案系統,掛載真正意義上的根目錄檔案系統並啟動第一個使用者級進程 init 進程
4,核心主動調用第一個進程/sbin/init。其主要功能是準備軟體執行的環境,包括系統主機名稱,網路設定,語系處理,檔案系統格式及其他服務的啟動等。
init會讀取/etc/inittab的設定檔。inittab定義了init的處理流程,其流程是:
1、取得runlevel即預設執行等級的相關等級
2、使用/etc/rc.d/rc.sysinit進行系統初始化,其主要工作是設定好整個系統的環境。
3、確認啟動進入層級,通過/etc/rc.d/rc根據啟動的層級來決定啟動的服務選項,
4、執行使用者自訂開機啟動程式/etc/rc.d/rc.local
5、執行終端機類比程式mingetty來啟動login進程,等待使用者登入
Linux系統初始化流程(簡述)