centos啓動流程

CentOS系統的啓動流程:

  1、 POST:Power on system test

     加電自檢:ROM:CMOS;BIOS;ROM+RAM

    自檢的功能需要一個軟件程序來實現,即BIOS(Basic Input Output System)基本輸入輸出系統;

     它被裝載在一個硬件芯片CMOS之上,加電過程即給CMOS通電,然後啓動其上的BIOS程序,BIOS程序會根據CMOS上的一些配置信息去讀取硬件設備信息

 並檢測其是否存在並能正常運行,之後進行硬件設備的初始化。

  2、 Bootsequence:(BIOS) 按次序尋找各引導設備,第一個有引導程序的設備即爲本次啓動要用到的設備。

  3、 Bootloader:(MBR) 引導加載器,程序;

    功能:提供一個菜單,允許用戶選擇要啓動系統或不同的內核版本;把用戶選定的內核裝載到內存中的特定空間中,解壓、展開,並把系統控制權移交給內核;

   4、 Kernel:加載系統內核kernel,執行系統初始化信息

    自身初始化:

      探測可識別到的所有硬件設備

      加載硬件驅動程序;(有可能會藉助於ramdisk加載驅動)

       以只讀方式掛在根文件系統

      運行用戶空間的第一個應用程序:/sbin/init

    在此處需要藉助一個虛擬文件系統:ramdisk:位於/boot目錄下,以initrd開頭的文件。

    Linux內核的特性之一:使用緩衝和緩存來加速對磁盤上的文件訪問;

      ramdisk --> ramfs:

      CentOS 5: initrd 工具程序:mkinitrd

      CentOS 6,7: initramfs 工具程序:dracut, mkinitrd

      在虛擬根文件系統上加載合適的驅動程序,加載硬盤等設備,之後釋放虛擬的根文件系統,並以只讀方式掛載磁盤上真正的根文件系統,之後就開始正常的啓動過程。

  5、 啓動用戶空間的第一個執行程序:/sbin/init

     init程序的類型:
Centos5:SysV init 配置文件:/etc/inittab
       CentOS 6:Upstart 配置文件:/etc/inittab;/etc/init/*.conf
       CentOS 7:Systemd 配置文件:/usr/lib/systemd/system/, /etc/systemd/system/

系統初始化流程:
POST----》BootSequence(BIOS)--》Bootloader(MBR)--》kernel(ramdisk)-->rootfs(只讀)--->switchroot--》/sbin/init --->(/etc/inittab,/etc/init/*.conf)--->設定默認運行級別---》系統初始化腳本---》關閉或啓動對應級別下的服務---》啓動終端。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章