歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> linux啟動流程+(1)

linux啟動流程+(1)

日期:2017/3/3 11:21:16   编辑:Linux技術

啟動流程一覽:

1.加載BIOS的硬件信息與進行自我測試,並依據設置取得第一個可啟動的設備

2.讀取並執行第一個啟動設備內MBR的boot loader(也就是grub,spfdisk等程序)

3.依據boot loader的設置加載kernel,kernel會開始檢測硬件與加載驅動程序

4.在硬件驅動成功後,kernel會主動調用init進程,而init會取得run-level信息

5.init執行/etc/rc,d/rc.sysinit文件來准備軟件執行的操作環境

6.init執行run-level的各個服務的啟動(script)

7.init執行/etc/rc.d/rc/local文件

8.init執行終端機模擬程序mingetty來啟動login進程,最後等待用戶登陸。

BIOS與MBR:

由於我們系統軟件大多放置在硬盤,所以bios會制定起懂得設備好讓我們可以讀取磁盤中的操作系統內核文件,但由於不同的操作系統的文件系統格式不同,因此我們必須要以一個引導裝載程序來處理內盒文件加載(load)的問題,因此這個引導程序成為boot loader,而這個程序是安裝在第一個扇區也就是MBR中,而BIOS是通過硬件的INT13這條信道來讀取MBR的。

Boot loader功能:

安裝windows和linux雙系統時,每個系統都有自己的boot loader,而系統的MBR只有一個,那該如何安裝呢?

其實每個系統都會保留一塊引導扇區提供操作系統安裝boot loader,也就是每個系統都會默認安裝一套boot loader到它自己的文件系統中,在linux安裝時,可以選擇將boot loader安裝到MBR中,也可以不安裝,而在windows安裝時,默認會主動將MBR與boot sector都裝一份boot loader。

boot loader功能:1.提供菜單:用戶可以選擇不同的啟動選項,這也是多重引導的重要功能。2.加載內核文件:直接指向可啟動的程序區段來開始操作系統。3.轉交其他loader:將引導裝載功能轉交給其他loader負責。

在安裝雙系統時,要先安裝windows再安裝linux:

原因在於windows的loader默認不具有控制權轉交的功能,因此你不能使用windows的loader來加載linux的loader,因此要後安裝linux,保證linux的boot loader覆蓋windows的。

加載內核檢測硬件與initrd的功能

linux會將內核解壓縮到內存當中,並利用內核的功能,測試與驅動各個周邊設備,內核文件一般放置在/boot下,/boot/vmlinuz

虛擬文件系統:initialRAM DIsk,

一般使用的文件名是/boot/initrd,這個文件的特色在於,也能夠通過boot loader來加載到內存中,然後這個文件會被解壓縮並在內存中仿真成一個根目錄,並且能夠提供一個可執行的程序,通過該程序來加載啟動過程中所最需要的內核模塊,通過這些模塊就是USB,RAID等文件系統與磁盤接口的驅動程序。

第一個進程init:

在內核加載完畢進行完硬件檢測和驅動程序加載後,此時你的主機硬件已經准備就緒,此時內核會主動調用第一個進程,/sbin/init,最主要的功能就是准備軟件執行的環境,包括系統 的主機名、網絡設置等,而所有的操作都會通過init的配置文件,/etc/inittb來規劃,而inittab內還有一個很重要的設置選項,那就是默認的run level(啟動執行等級)。

run level 執行等級

0 halt(系統直接關機)

1 single user mode(單用戶維護模式,用在系統出問題時維護)

2 multi user without NFS

3 full multi user mode

4 unused

5 x11 加載使用x window

6 reboot 重啟

Copyright © Linux教程網 All Rights Reserved