Linux系統初始化流程(簡述)

來源:互聯網
上載者:User

標籤: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系統初始化流程(簡述)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.