Fedora12 Linux啟動過程

2021-05-22 22:08:13 字數 3305 閱讀 9552

1.

載入bios

。bios

(basic input output system

),是固化到計算機內主機板上乙個

rom晶元上的程式。儲存

cpu相關資訊、裝置啟動順序資訊、硬碟資訊、記憶體資訊等等。

開啟計算機電源第一項工作即載入

bios

,進行post

(power on self test

自檢),對硬體進行檢測;第二步進行本地裝置的列舉和初始化。

2.讀取

mbr。

mbr(

master boot record

),位於硬碟第

0磁軌第一扇區,大小

512位元組,存放預啟動資訊、分割槽表資訊。

要引導乙個作業系統,

bios

執行時會按照

cmos

的設定定義的順序,搜尋處於活動狀態可以引導的裝置。通常

linux

都從硬碟上引導,而

mbr中包含主引導引導程式。當

mbr被載入到

ram以後,

bios

將控制權交給

mbr。

檢視mbr

內容,可以使用以下語句:

# dd if=/dev/sda of=mbr.bin bs=512 count=1

# od -ax mbr.bin | tail -n 10

001000=0d512 byte

,512b

為乙個扇區的大小。

aa55

是mbr

結束標誌。 1.

執行boot loader

grub

引導程式不能由僅有

512b

的mbr

完整表示,因此

mbr引導程式開始載入第二階段的引導程式,然後讀取

/boot/grub/menu.lst

組織檔案裡的資料,

menu.lst

中列出了所有可用的作業系統和啟動引數,

grub

按照配置資訊來啟動不同的作業系統。 2.

載入核心

linux

不能直接載入核心,需要首先載入

initrd

檔案。

initrd

(initial ram disk

),初始

ram磁碟,是在系統引導過程中掛載的乙個臨時根

檔案系統

。檔案中包含各種可執行程式和驅動程式,與核心繫結並作為核心引導過程的一部分進行載入,然後再將

initrd

解除安裝釋放記憶體。 根據

grub

設定的核心映像所在路徑,系統讀取核心映像,並進行解壓縮操作。系統將解壓後的核心放置在記憶體之中,並呼叫

start_kernel()

函式來啟動一系列的初始化函式並初始化各種裝置,完成

linux

核心環境的建立。至此,

linux

核心已經建立起來了,基於

linux

的程式應該可以正常執行了。在

start_kernal()

的最後呼叫

init()

函式,進入下一步設定執行等級。 3.

使用者層init

依據inittab

檔案來設定執行等級

init

程序是系統中所有程序的父程序,

init

程序繁衍出完成通常操作所需的子程序,這些操作包括

:設定機器名、檢查和安裝磁碟及檔案系統、啟動系統日誌、配置網路介面並啟動網路和郵件服務,啟動列印服務等。

linux

中init

程序的主要任務是按照

inittab

檔案所提供的資訊建立程序,由於進行系統初始化的那些程序都由

init

建立,所以

init

程序也稱為系統初始化程序。

核心被載入後,第乙個執行的程式便是

/sbin/init

,該檔案會讀取

/etc/inittab

檔案,並依據此檔案來進行初始化工作。 其實

/etc/inittab

檔案最主要的作用就是設定

linux

的執行等級,其設定形式是「:

id:5:initdefault:」

,這就表明

linux

需要執行在等級5上。

linux

的執行等級設定如下: 0

:關機

1:單使用者模式 2

:無網路支援的多使用者模式 3

:有網路支援的多使用者模式 4

:保留,未使用 5

:有網路支援有

x-window

支援的多使用者模式 6

:重新引導系統,即重啟 4.

init

程序執行

rc.sysinit

在設定了執行等級後,

linux

系統執行的第乙個使用者層檔案就是

/etc/rc.d/rc.sysinit

指令碼程式,它做的工作非常多,包括設定

path

、設定網路配置(

/etc/sysconfig/network

)、啟動

swap

分割槽、設定

/proc

等等。

5.執行不同執行級別的指令碼程式

根據執行級別的不同,系統會執行

rc0.d

到rc6.d

中的相應的指令碼程式,來完成相應的初始化工作和啟動相應的服務。 6.

執行etc/rc.d/rc.local程式

讓使用者在初始化完成之後,登入之前個性化設定啟動的東西。 7.

建立終端,

mingetty

啟動作業系統的登入。 8.

登入shell

,建立使用者與作業系統的互動。 注

1:簡化步驟:

機器上電

->bios

啟動->mbr

引導->grub

引導->initrd-> linux

核心->

各種服務

->

系統login 注

2:用cat /etc/inittab

檢視inittab

中的內容時,顯示如下圖:

不像網上廣泛出現的後面有

si::sysinit:/etc/rc.d/rc.sysinit

等內容,我的理解為

fedora12

版本沒有將後面的程序加入到

inittab

中。 shelley

Fedora12 Linux命令列下網路配置

虛擬機器的網絡卡使用nat的連線方式 沒辦法,單位乙個埠只允許1個ip,連hub都沒法用 pwd vi etc sysconfig network scripts ifcfg eth0 bootproto的值改為dhcp,並儲存 ifdown eth0 ifup eth0 重啟網絡卡 ifconfi...

Fedora12 Linux命令列提示符設定

提示符通過變數ps1來設定,可以用以下命令來顯示當前設定 echo ps1 提示符的系統範圍 對系統裡所有使用者有效 的設定在檔案 etc bashrc裡,可能包含以下的行 ps u h w 要定製提示符,我們可以編輯檔案 etc bashrc root使用者 然後在兩個引號之內輸入任何你想要的文字...

Fedora 啟動順序

fedora 系統加電或復位後,處理器將記憶體中的所有資料清零,並對記憶體進行校驗。如果沒有錯誤,則cs code segment 暫存器中全部置1,而ip instruction pointer 暫存器中全部置0。cs ip 位址單元中儲存的指令是一條跳轉指令,這條指令跳轉到bios 的首部。cp...