萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Linux系統啟動過程介紹(1)

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

   概述

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

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

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

  習的同學,可以針對某個或某幾個部分刨根問題,編碼調試。

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

  經歷的過程如下:

  開機自檢(POST)---->執行基本輸入輸出(BIOS)---->加載系統分區表數據(MBR開

  始的512字節)---->加載引導程序(grub之類)---->加載Linux內核----->系統環境初始化-----

  ------->用戶環境初始化

  開機自檢(POST)

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

  內存,硬盤等硬件設備是否處在可用狀態。如果可以使用,繼續下一步的工作,即將運行權

  交給BIOS,否則利用峰鳴器報警。這也是修理電腦的專家根據蜂鳴器報警聲判斷系統那裡有

  問題的依據。

  執行基本輸入輸出(BIOS)

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

  處理,設置硬中斷等。然後將MBR最開始的程序調入到CPU上運行,運行權進而交給MBR。

  MBR加載

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

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

  用來指引從什麼位置加載內核程序。

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

  Grub在配置的時候指定在什麼分區的什麼位置加載內核,Grub2以前的版本中grub都是

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

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

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

  現在,在Grub2中已經找不到這個文件了,加載和引導的過程會另外介紹。

  內核加載過程

  由於在Grub中記錄了內核的具體位置,在Grub運行完畢後,就開始加載內核,運行權限隨

  之交給內核。

  內核接過運行權限,開始探測系統的硬件,加載硬件對應的驅動(有些以模塊運行的驅動,

  是需要掛載文件系統才能加載),然後掛載文件系統,從文件系統中讀取數據。

  這個過程的如下:

  內核探測硬件------>加載驅動(initrd)------>掛載根文件系統------>rootfs(/sbin/init)

  系統初始化工作

  最後運行權交給了/sbin/init程序,開始跑初始化的腳本內容。(待續)

copyright © 萬盛學電腦網 all rights reserved