linux啟動基本流程

2021-09-07 11:13:41 字數 1103 閱讀 1752

linux啟動序列

1、cpu初始化

cpu自身初始化。從某個固定位置(0xfffffff0)取指令並執行,該指令為跳轉指令。跳轉到bios**的首部。

2、裝載bios

bios被固化在主機板上的乙個rom中,它首先進行自檢(post),隨後載入核心引導程式。

post階段進行系統硬體的檢測。包含記憶體檢測,系統匯流排檢測等。

3、讀取mbr

post之後。bios會讀取啟動裝置的第乙個扇區(mbr),即512位元組的資訊。mbr儲存了核心引導程式的開始部分。bios將其載入到記憶體而且執行。

mbr中的主引導程式。包括了446位元組的程式**和64位元組的分割槽表。

4、載入系統核心

執行mbr中的主引導程式程式中。會掃瞄分割槽表。尋找活動分割槽,活動分割槽的引導記錄存在次引導程式,這次引導程式被載入到記憶體並執行,它負責載入linux核心映象,並將控制權交給核心。

核心映象以壓縮的形式儲存,並不能執行,它載入到記憶體後首先進行自解壓。

5、核心初始化

核心啟動第乙個程式。init,init程序是系統全部程序的起源,程序編號始終為1. init程序產生getty程序,getty程序產生login程序,登陸成功後。login程序產生shell程序。我們使用shell,產生其它程序。init的工作依據檔案/etc/inittab檔案來完畢。

6、執行/etc/rc.d/rc.sysinit 指令碼

/etc/rc.d/rc.sysinit 是init執行的第乙個指令碼。它的作用是初始化linux系統,包含環境變數。網路配置,檢查檔案系統等等。

7、執行run-level指令碼

在/etc/inittab 中已經確定了系統的run-level, 執行對應的命令指令碼/etc/rc.d/rcx.d 。

8、啟動其他模組

比方記憶體管理、硬碟管理等等。

9、執行 /etc/rc.d/rc.local指令碼

/etc/rc.d/rc.local 為系統初始化的最後乙個指令碼。使用者能夠在這裡加入系統啟動時服務,比方httpd。

10、執行 /bin/login

此程式提示使用者輸入username和password,正確後然將控制權交給shell程序。

11、shell 啟動

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的...