Linux開機流程以及執行級別

2021-12-30 00:01:22 字數 4180 閱讀 8324

1、boot loader: 領導裝載程式,常用的有(grub, spfdisk)

2、grub: 是乙個多作業系統啟動管理器,開機時領導不同系統,windows linux等

1、載入bios(basic input output system)的硬體資訊,並進行自我測試

2、讀取並執行第乙個開機裝置內mbr(主引導記錄扇區)的boot loader即grub spfdisk 等程式!

3、 grub(boot loader)就是乙個多作業系統啟動管理器,執行之後就是選擇系統(boot loader --grup的功能之後在講)

4、依據 boot loader 的設定載入kernel(也就是在第3步這裡選擇的系統的核心),載入進來的kernel在儲存器中解壓並執行,偵測硬體資訊載入驅動程式

5、硬體驅動成功之後,kernel會主動呼叫第乙個使用者級的程式,init, init 會取得執行級別(runlevel) 的資訊(run level 資訊儲存在 /etc/inittab檔案中)

6、init 執行 /etc/rc.d/rc.sysinit 檔案 來準備軟體執行的環境(如 網路 ,時區等資訊)具體資訊可以 vim /etc/rc.d/rc.sysinit 去檢視

7、init 執行 run-level 的各個服務即啟動和這個run-level 對應的服務

8、 執行 /etc/rc.d/rc.local 檔案 (這是使用者自訂開機啟動程式,把需要開機自動執行的程式寫在這個指令碼裡)

9、 init 執行終端機**程式 mingtty 來啟動 login 程式,最後等待使用者登入

1、bios它是一組固化到計算機內主機板上乙個rom(read only memory) 晶元上的程式,它儲存著計算機最重要的基本輸入輸出的程式、系統設定資訊、開機後自檢程式和系統自啟動程式,他裡面的程式是被廠家燒錄進去的,所以只能讀不能改

2、cmos是微機主機板上的一塊可讀寫的ram晶元,主要用來儲存當前系統的硬體配置和操作人員對某些引數的設定.

3、透過bios 程式去載入cmos 的資訊,並且藉由cmos內的設定值取得主機各硬體配置資訊,如cup ,介面裝置的溝通頻率開機裝置的順序,各個介面裝置的i/o位址等.

4、獲取這些資訊之後,bios 還會進行開機自我測試,然後開始執行硬體偵測的初始化,並設定pnp裝置,之後再定義出開機的裝置順序,接下來就會開始進行開機裝置的資料讀取(mbr相關任務開始) (mbr master boot record 主引導區)

5、由於系統軟體大多都被放在硬碟上,所以bios 會制定開機的裝置好讓我們可以讀取磁碟中的作業系統核心檔案。

6、由於不同作業系統的檔案系統格式不同,因此我們必須要以乙個開機管理程式來處理核心檔案載入的問題,因此這個開機管理程式就被稱為 boot loader !

7、這個boot loader 就安裝在第乙個扇區(sector)內,也就是我們說的mbr( master boot record 住引導記錄區)

8、每種作業系統的 boot loader 都不同,這樣的話bios怎麼讀取 mbr中的內的boot loader那?

9、其實 bios是通過硬體的int13中斷功能來讀取 mbr 中的內容,也就是說只要bios在硬體偵測的時候如果能夠偵測到你的磁碟(不管是sata 還是ide介面)那就有辦法透過int 13 這條通道來讀取該磁碟的第乙個扇區你的mbr中的內容,這樣的話 boot loader 也就能夠被執行了!

1、boot loader 的最主要功能就是要認識作業系統的檔案格式,並載入選定的系統核心到住住儲存器中去執行。

2、由於每一種作業系統的檔案格式不同,所以每種作業系統都有自己的boot loader

3、這樣的話,當在一台機器上裝多個作業系統怎麼辦因為mbr只有乙個,而每種作業系統都有自己的boot loader ,其實每個filesystem 或主分割槽都會留boot sector(引導扇區),來安裝自己的boot loader 所以可以安裝多系統的問題也就解決了

4、boot loader 的主要功能:

(1)、提供選單: 使用者可以選擇自己的開機專案,這也就是多重引導的重要功能。

(2)、載入核心檔案: 直接指向可開機的程式區段,開始作業系統。

(3)、轉交其他的boot loader : 將開機管理功能轉交給其他的boot loader 負責。

** 由於具有選單功能因此我們可以選擇不同的核心來開機

** 由於具有控制權轉交的功能,因此我們可以載入其他boot sector 內的 boot loader !

5、當boot loader 的管理開始讀取核心檔案後,接下來linux 就會將核心解壓縮到主儲存器中,並且利用核心的功能,開始測試與驅動各個周邊的裝置 如儲存裝置, cpu, 網絡卡,音效卡等。此時linux 核心會以自己的功能重新偵測硬體資訊,而不一定會使用bios偵測到的資訊,也就是說此時開始 載入進來的linux 核心 接管了 bios的工作!

6、到此記憶體中已經載入了 kernel 並使用kernel 的功能來偵測硬體以及嘗試掛在根目錄取得額外的驅動程式,但是現在的核心不認識磁碟,沒辦法掛在根目錄,所以也就沒法讀取 /lib.modules/內的驅動

7、核心不認識磁碟,那如何掛在跟目錄,如何載入驅動,那就得借助 虛擬檔案系統(也叫臨時檔案系統 initrd)來解決

8、虛擬檔案系統的特色是,他能夠通過 boot loader 載入到記憶體中, 然後這個檔案會被解壓並在記憶體中**成為乙個根目錄,且此**目錄能夠提供一支可執行的程式,透過這個程式來載入開機過程中所需要的模組,而通常這些模組就是 usb raid scsi 等檔案系統與磁碟介面的驅動程式,等這些程式載入完畢後 會幫助核心重新呼叫 /sbin/init 來開始後續的正常開機流程。

9、到此kernel 載入了需要的驅動程式,因為有了驅動可以找到磁碟,所以就掛載了 根目錄檔案系統,並釋放這個虛擬檔案系統。

10、核心主動載入第乙個使用者級程式 /sbin/init

1、在核心載入完畢,進行硬體資訊這測與驅動程式載入之後,此時你的主機硬體應該已經準備就緒了,此時核心會主動的呼叫第乙個使用者級程式,那就是 /sbin/init (init 被稱為所有進行的祖程序,也是第乙個啟動的使用者級程序)

2、 /sbin/ init 最主要的功能就是準備軟體執行的環境,包括系統的主機名,網路設定,語系設定,系統檔案格式及其他服務的啟動, 而所有的動作都會透過 init 的配置檔案及 /etc/inittab 來規劃。

3、 /etc/inittab 中配置了系統的執行級別 , 這個檔案的最下面 有 id : n : initdefault 這就是設定的系統執行級別

4、為何要設定系統的執行級別,這個有什麼不同: linux藉由 設定的 run level 來規劃,系統使用不同的服務來啟動,讓linux 的使用環境不同,按照有無網路與有無 xwindow可分為 7 個等級

5、 run level 執行級別

(0)、run level 0: 關機

(1) 、run level 1 : single mode 即單人維護模式,一般忘記 root的密碼,系統有問題什麼的使用這個模式

(2)、run level 2 : without nfs 即無nfs系統

(3)、run level 3: 完整含有網路功能的純文字模式

(4)、run level 4: 系統保留

(5)、run level 5: xwinods 與3 是類似的只是純文字變為視窗模式

(6)、run level 6: 重啟 reboot

6、啟動時執行一次的檔案, /etc/rc.d/rc.sysinit 即系統的資料設定完成!

7、啟動系統 服務與 啟動配置檔案 /etc/rc,d/rc n(你的系統級別,按照不同的級別啟動不同的服務) /etc/sysconfig

8、載入核心讓整個系統準備接受指令來工作,在經過 /etc/rc.d/rc.sysinit 的系統模組與相關硬體資訊的初始化,你的系統應該已經順利工作了!

1、事實上不同的執行級別 只是載入的服務不同,,這裡已 run level 3 和 run level 5 為列: 只是他們的 /etc/rc.3d 和 /etc/rc.5d 內的sxxname 和 kxxname 不同而已

2、先對比 /etc/rc.3d 和 /etc/rc.5d 內k 和 s開頭的檔案

3、在新的 run level 內多的 k 都被關閉掉

4、在新的 run level 內多的s 都被開啟,而都存在的就不用管了。

ok 這樣執行級別就轉化過來了!

Linux開機流程以及執行級別

1 boot loader 領導裝載程式,常用的有 grub,spfdisk 2 grub 是乙個多作業系統啟動管理器,開機時領導不同系統,windows linux等 1 載入bios basic input output system 的硬體資訊,並進行自我測試 2 讀取並執行第乙個開機裝置內m...

Linux 開機 重啟 執行級別

shutdown命令 shutdown h now 立即關機 shutdown h 2 1分鐘後關機 shutdown r now 立即重啟 shutdown r 1 1分鐘後重啟 sleep 10 halt 10秒鐘後關機 halt 關機reboot 重啟sync 把記憶體的資料同步到磁碟特別注意...

開機啟動 Linux開機自啟和執行級別

主要用來啟動一些系統服務,根據runlevel執行rcx.d,而在rcx.d中都會在最後呼叫rc.local 一般情況下,大多數的linux作業系統使用 etc init.d 或 etc rc.d init.d 下的指令碼來配置應用程式的自動啟動。例如,在某些linux系統中,corn程式通過 et...