簡要描述Linux開機啓動流程

1、概述
ide

   Linux開機啓動流程主要分如下幾個步驟:
spa

一、POST加電自檢操作系統

二、BIOS根據Boot Sequence開始進入下一步引導系統內存

三、MBR引導系統it

四、bootloader引導系統內核class

五、加載系統內核
配置

六、init開始執行初始化工做終端


2、各階段描述硬件

一、POST加電自檢程序

   CPU在通電後會自動查找位於主板上ROM裏的指令並執行。這段指令程序一般叫做BIOS,在這個步驟裏BIOS程序首先會對主機的硬件設備檢查,看各硬件是否無缺,是否知足整機運行的基本條件。

二、BIOS根據Boot Sequence開始進入下一步引導系統

   BIOS根據啓動順序,選擇接下來要查找的存儲介質。一般BIOS的指令默認是尋找第一啓動項物理存儲介質的0磁道0扇區。裏面存有MBR系統引導記錄,系統可否開機關鍵的一點就是MBR的引導程序。

三、MBR引導系統

   MBR一般位於磁盤的0磁道0扇區,MBR共有512個字節,前446個字節用於存儲bootloader程序,接下來的64字節用於存儲整個磁盤的分區表,剩下的2字節用於標誌磁盤使用狀況。

四、bootloader引導系統內核

   BIOS查找到MBR後,最開始執行的是bootloader程序。bootloader程序一般是安裝系統時自動安裝。在Linux中bootloader引導程序之前使用的是LILO(Linux Loader),由於LILO不能引導位於1024 Cylinder(柱面)之後的分區中的操做系統,隨着硬件的升級發展,最終被GRUB程序所取帶。GRUB(Grand Unified Bootloader)執行流程分三個步驟,1st stage、1.5 stage、2nd stage。

   1st stage,這一步的主程序存儲於MBR的bootloader中,主要的工做是配合MBR裏存儲的分區表識別磁盤基本分區信息。接着程序運行1.5 stage,此段程序位於/boot基本磁盤分區中,爲了配合第一步用於識別系統內核鏡像文件中的特殊文件系統格式。這兩步完成後,stage 2開始執行,此段程序位於/boot基本磁盤分區中,在GRUB目錄中,是GRUB的引導程序,配合grub.conf配置文件,這時系統會顯示一個系統選擇菜單。

五、加載系統內核

   用戶選擇菜單後,grub會執行initrd程序,initrd程序將內存的一部分分配爲一個分區並做爲硬盤來使用,而後把這塊分區掛載爲原始的根文件系統,開始建立設備,並訪問真正的磁盤根系統,加載內核至內存中。系統內核一般是一個一半可執行,一半壓縮的映像文件,加載後能夠自解壓。接着內核會從新掛載系統根目錄,把initrd建立的設備複製至自身內存空間。

六、init開始執行初始化工做

   當內核被引導並進行初始化以後,內核就能夠啓動本身的第一個用戶空間應用程序了。init會調用/etc/inittab配置文件,執行默認工做:設定默認運行級別、指定系統運行的初始腳本(/etc/rc.d/rc.sysinit)、啓動指定級別下要啓動的服務並關閉須要中止的服務、定義CtrlAltDel組合的動做、初始化終端。在這些步驟中,指定系統運行的初始腳本/etc/rc.d/rc.sysinit又有許多工做:設置主機名、打印文本歡迎信息、激活SELinux和Udev、激活swap、掛載/etc/fstab定義的本地文件系統、檢測根文件系統並對其以讀寫方式從新掛載、設置系統時鐘、裝載鍵盤映射、根據/etc/sysctl.conf設置內核參數、激活軟RAID和LVM設備、文件清理操做等。

   至此,整個系統的啓動工做基本結束。

相關文章
相關標籤/搜索