歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 解說Linux啟動流程

解說Linux啟動流程

日期:2017/2/28 15:46:55   编辑:Linux教程

一:概述

關於linux的系統啟動流程我們可以從下面圖片中的流程一步一步展開,其實linux系統的啟動過程中,我們可以比喻為一個接力賽,計算機的不同模塊負責這個接力賽中接力棒的交接(為了更好的理解,暫且這樣比喻吧可能有點不是太恰當,呵呵650) this.width=650;">)

650) this.width=650;" border=0>

二:剖析啟動過程(整個過程將圍繞上面的圖片流程詳細展開

  1. 當我們打開計算機電源的時候,隨後會聽到滴的一聲,linux系統開始了一段緊張有序的接力大賽,開始鳴槍(POST-power on self test)自檢開始),這個過程中主要是檢測我們的計算機硬件設備比如:CPU,內存,主板,顯卡,CMOS等設備是否有故障存在,如果有硬件故障的話將按兩種情況理:對於嚴重故障(致命性故障)則停機,此時由於各種初始化操作還沒完成,不能給出任何提示或信號;對於非嚴重故障則給出提示或聲音報警信號,等待用戶處理),如果沒有故障,POST完整自己的接力任務,將尾部工作交接給BIOS處理
  2. BIOS接過接力棒後,首先會在一個Boot Sequence程序中搜索可以讓系統啟動的引導設備(比如我們有時在BIOS中設置為從硬盤啟動,或者從CD-ROM啟動等等)

這時如果BIOS找不到可以引導的設備及相關程序後,便會啟動失敗,如果順利 的找到了相關設備及程序,那麼BIOS將繼續交接給啟動設備中的 MBR(Master Boot Record)主引導記錄


3. MBR程序找到其前446個字節的Boot Loader

4. Boot Loader 找到gub程序

在這個過程的主要是靠Grub的引導開始,將貫穿到系統初始化開始前

  1. grub引導又分為兩個階段 stage1:主要是Boot loader
  2. stage 1.5:過渡
  3. stage2:主要是/boot/grub (這三個階段在內部實現接力)

650) this.width=650;" border=0>

從上面/boot目錄中可以發現linux的內核(VMlinuz),grub,inird程序都在該目錄下) 650) this.width=650;" border=0>

  1. 在/boot/grub/下面我們看到了熟悉的stage1,stage2及grub工具的配置文件 grub.conf,呵呵,
  2. 那麼grub.conf 是什麼東東呢?呵呵,下面我們看下一該配置文件

650) this.width=650;" border=0>

  1. 從grub的配置文件中我們看到了我們熟悉的開機圖片
  2. 在啟動菜單中
  3. root(hd0,0)告訴grub在什麼地方引導內核及initrd程序
  4. 然後說明kernel及initrd的位置

從上面的grub.conf 的引導配置文件中得知,下面grub該找內核及initrd程序了,從啟動菜單中得知相關位置信息後,開始步入引導kernel了,這就是kernel的初始化過程,MBR開始交接給kernel

Copyright © Linux教程網 All Rights Reserved