linux啟動流程

2022-08-11 16:39:16 字數 1058 閱讀 5073

今天很天真的寫了個openvpn的開機啟動指令碼,以為新增到/etc/rc.local就萬事大吉了,結果肯定是失敗的,因此這裡記錄一下我學習linux啟動流程的過程!

在個人計算機架構下,你想要啟動整部系統首先就得讓系統去載入bios(basic input output system),並透過bios程式去載入cmos資訊,並且藉由cmos內的配置值取得主機的各項硬體配置。

在取得這些資訊後,bios還會進行啟動自我測試(power-on self test,post)。然後開始執行硬體偵測的初始化,並配置pnp裝置,之後再定義出可啟動的裝置順序,接下來就會開始進行啟動裝置的資料都去了。

由於我們的系統軟體大多放置在硬碟中,所以bios會指定啟動的裝置好讓我們可以讀取磁碟中的作業系統核心檔案。我們需要乙個啟動管理程式來處理檔案載入的問題,因此這個啟動管理程式就被成為boot loader.

loader的主要功能是認識作業系統的檔案格式並據以載入核心到主記憶體中去執行。

boot loader主要功能:

吐嘈一下windows:windows的loader不具備控制權轉交功能,因此安裝雙系統時只能先裝windows再裝linux了,微軟是不是有些霸道和蛋疼!

boot loader的管理而開始讀取核心檔案後,接下來,linux就會將核心解壓到主記憶體當中,並且利用核心的功能,開始測試與驅動各個周邊裝置,包括儲存裝置、cpu、網路卡、音效卡等等。此時linux核心會以自己的功能重新偵測一次硬體,也就是說核心此時開始接管bios後的工作。

在核心載入完畢、進行硬體偵測與驅動程式載入後,此時你的主機硬體應該是已經準備就緒了,此時核心會主動呼叫第一支程式,就是/sbin/init。檢視init的pid為1./sbin/init最主要的功能是準備軟體執行環境,包括系統的主機名稱,網路配置,語系處理、檔案系統格式及其他服務的啟動。而所有的動作都會透過init的配置檔,亦即是/etc/inittab來規劃,而inittab內還有乙個很重要的配置專案,那就是預設的runlevel(啟動執行等級)。

run level等級:

linux啟動流程

linux系統主要通過以下步驟啟動 讀取mbr的資訊,啟動boot manager windows使用ntldr作為boot manager,如果您的系統中安裝多個版本的windows,您就需要在ntldr中選擇您要進入的系統。linux通常使用功能強大,配置靈活的grub作為boot manage...

linux啟動流程

bios basic input output system mbr main boot record kernel kernel自解壓 核心初始化 核心啟動 start kernel 自身為0 程序,建立1 程序執行,直接執行在物理記憶體空間上,沒有虛位址。1 程序裝入並執行程式 sbin ini...

Linux啟動流程

下面簡單介紹下啟動,詳細的後續再補。1.載入bios的硬體資訊並進行自我測試,並依據設定取得第乙個可以啟動的裝置 2.讀取並執行第乙個裝置內的mbr master boot record,硬碟的主引導記錄 的boot loader 即是grub,spfdisk等程式 3.依據boot loader的...