技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當(dāng)前位置:主頁 > 教程 > 服務(wù)器類 >

Linux系統(tǒng)啟動過程介紹(1)

來源:技術(shù)員聯(lián)盟┆發(fā)布時間:2018-09-07 18:15┆點擊:

  對操作系統(tǒng)的啟動過程一直是比較模糊,想想大概經(jīng)歷檢查硬件,加載操作系統(tǒng),加載

  用戶環(huán)境等幾個過程,但實際上要復(fù)雜一些。畢竟我們只是了解和掌握啟動過程,而不是去

  對啟動過程進(jìn)行設(shè)計和編碼,所以下面的介紹相對比較簡單,也點到為止。如果有想深入學(xué)

  習(xí)的同學(xué),可以針對某個或某幾個部分刨根問題,編碼調(diào)試。

  下面以Debian Linux的啟動加載為例,簡單介紹一下操作系統(tǒng)的啟動。

  經(jīng)歷的過程如下:

  開機自檢(POST)---->執(zhí)行基本輸入輸出(BIOS)---->加載系統(tǒng)分區(qū)表數(shù)據(jù)(MBR開

  始的512字節(jié))---->加載引導(dǎo)程序(grub之類)---->加載Linux內(nèi)核----->系統(tǒng)環(huán)境初始化-----

  ------->用戶環(huán)境初始化

  開機自檢(POST)

  這部分沒有什么多余的東西,計算機連上電源用戶按下啟動按鈕后,計算機自己檢測CPU,

  內(nèi)存,硬盤等硬件設(shè)備是否處在可用狀態(tài)。如果可以使用,繼續(xù)下一步的工作,即將運行權(quán)

  交給BIOS,否則利用峰鳴器報警。這也是修理電腦的專家根據(jù)蜂鳴器報警聲判斷系統(tǒng)那里有

  問題的依據(jù)。

  執(zhí)行基本輸入輸出(BIOS)

  BIOS(Basic Input Output System)基本輸入輸出程序。該程序完成最基本的硬件位置

  處理,設(shè)置硬中斷等。然后將MBR最開始的程序調(diào)入到CPU上運行,運行權(quán)進(jìn)而交給MBR。

  MBR加載

  MBR(Master boot record),是啟動磁盤最開始的512字節(jié),這里包含了分區(qū)信息和一

  個引導(dǎo)程序。分區(qū)信息記載了磁盤的分區(qū)情況,引導(dǎo)程序即是我們比較熟悉的Grub,LiLo等,

  用來指引從什么位置加載內(nèi)核程序。

  引導(dǎo)程序加載Grub(GRand Unified Bootloader)

  Grub在配置的時候指定在什么分區(qū)的什么位置加載內(nèi)核,Grub2以前的版本中g(shù)rub都是

  有兩個或者多個加載過程的,會去加載stage1,stage1_5,stage2文件,這些文件都在

  /boot/grub目錄下。之所以會有這些文件,是因為在加載的早期,一次只能加載512字節(jié),太

  多文件的話,只能分批加載。

  現(xiàn)在,在Grub2中已經(jīng)找不到這個文件了,加載和引導(dǎo)的過程會另外介紹。

  內(nèi)核加載過程

  由于在Grub中記錄了內(nèi)核的具體位置,在Grub運行完畢后,就開始加載內(nèi)核,運行權(quán)限隨

  之交給內(nèi)核。

  內(nèi)核接過運行權(quán)限,開始探測系統(tǒng)的硬件,加載硬件對應(yīng)的驅(qū)動(有些以模塊運行的驅(qū)動,

  是需要掛載文件系統(tǒng)才能加載),然后掛載文件系統(tǒng),從文件系統(tǒng)中讀取數(shù)據(jù)。

  這個過程的如下:

  內(nèi)核探測硬件------>加載驅(qū)動(initrd)------>掛載根文件系統(tǒng)------>rootfs(/sbin/init)

  系統(tǒng)初始化工作

  最后運行權(quán)交給了/sbin/init程序,開始跑初始化的腳本內(nèi)容。(待續(xù))