1.BIOS****和引導(dǎo)裝入程序
為桌面計(jì)算機(jī)擁電后,一種叫作BIOS的軟件系統(tǒng)會(huì)立即接管對系統(tǒng)處理器的控制.
[BIOS是Basic Input/Output Software (基本輸入輸出軟件)的縮寫,但直際上. BIOS在計(jì)算機(jī)系統(tǒng)中發(fā)揮的作用已經(jīng)遠(yuǎn)遠(yuǎn)超過了最初設(shè)計(jì)該軟件時(shí)的目標(biāo),而且越來越復(fù)雜。
通常. BIOS系統(tǒng)都是保存在閃存(Flash)里面的。
BIOS是一組復(fù)雜的系統(tǒng)配置軟件例程,它記錄了計(jì)算機(jī)硬件體系結(jié)構(gòu)的底層細(xì)節(jié)信息。
在系統(tǒng)加電時(shí)候,BIOS會(huì)立即接管對系統(tǒng)處理器的控制,它最主要任務(wù)就是初始化系統(tǒng)硬件,特別是內(nèi)存子系統(tǒng),然后將操作系統(tǒng)從硬盤emmcFlash中讀出并加載。
初始化系統(tǒng)的幾個(gè)重要任務(wù)如下:
(1)初始化關(guān)鍵硬件組件,例如SDRAM控制器,I/O控制器等
(2)初始化系統(tǒng)內(nèi)存,并準(zhǔn)備將系統(tǒng)系統(tǒng)控制權(quán)移交給相應(yīng)的操作系統(tǒng)。
(3)分配系統(tǒng)資源,例如內(nèi)存以及外設(shè)控制器的中斷電路。
(4)提供相應(yīng)的機(jī)制,用于定位和加載操作系統(tǒng)映像。
(5)加載操作系統(tǒng),并將系統(tǒng)控制權(quán)移交給操作系統(tǒng),將必要的啟動(dòng)信息,例如系統(tǒng)全部內(nèi)存塊的數(shù)量、尺寸,串行通信端口的速度以及其它底層硬件配置數(shù)據(jù)傳遞給操作系統(tǒng)。
BIOS的首要任務(wù)就是啟動(dòng)內(nèi)存子系統(tǒng)。內(nèi)存初始化之后,就可以作為一種資源進(jìn)行使用,很多BIOS完成內(nèi)存初始化后第一個(gè)動(dòng)作就是將自身復(fù)制到DRAM中,以便獲得更快的執(zhí)行速度。
一、BIOS
2.大致工作流程
①系統(tǒng)啟動(dòng)之后,加載BIOS,并通過BIOS去加載CMOS的信息,并且借由CMOS內(nèi)的設(shè)置值取得主機(jī)的各項(xiàng)硬件配置,例如CPU與接口設(shè)備的溝通頻率、啟動(dòng)設(shè)備的查找順序、硬盤的大小與類型、系統(tǒng)時(shí)間、各周邊總線是否啟動(dòng)PnP、各接口設(shè)備的I/O地址。以及與CPU溝通的IRQ中斷等的信息
②取得上面這些信息后,BIOS開始自我檢測。然后開始執(zhí)行硬件檢測的初始化,并設(shè)置PnP設(shè)備,之后再定義出可啟動(dòng)的設(shè)備順序,接下來就會(huì)開始進(jìn)行啟動(dòng)設(shè)備的數(shù)據(jù)讀取了
③BIOS會(huì)指定啟動(dòng)的設(shè)備好讓我們可以讀取此盤中的操作系統(tǒng)內(nèi)核文件,由于不用的操作系統(tǒng)它的文件系統(tǒng)格式不同,
此時(shí)就需要一個(gè)啟動(dòng)引導(dǎo)程序(boot loader)來處理內(nèi)核文件加載問題,boot loader就在啟動(dòng)設(shè)備的第一個(gè)扇區(qū),也就是MBR。
二、bootloader
1.概念與特點(diǎn)
Boot loader是一段硬件引導(dǎo)程序,主要是為了內(nèi)核的運(yùn)行做準(zhǔn)備的,其運(yùn)行在操作系統(tǒng)內(nèi)核之前。主要作用是:初始化硬件設(shè)備,建立一個(gè)內(nèi)存空間。
將系統(tǒng)的硬件環(huán)境和軟件環(huán)境調(diào)整到一個(gè)合適的狀態(tài),也即是為調(diào)用內(nèi)核準(zhǔn)備好環(huán)境。而且不同的目標(biāo)版也需要不同的Boot loader支持。
固態(tài)存儲(chǔ)設(shè)備的典型空間分配結(jié)構(gòu):
[Boot loader]—[Bootparameters]—[Kernel]—[Root filesystem]
Boot loader具有兩種操作模式,即啟動(dòng)模式和下載模式。
下載模式:是指通過串口或者網(wǎng)絡(luò),從主機(jī)上下載文件(比如:內(nèi)核鏡像和根文件系統(tǒng)鏡像等),這些下載的文件保存在目標(biāo)機(jī)的RAM中,通過Boot loader,這些文件會(huì)由RAM中寫道FLASH中。
啟動(dòng)模式:即Boot loader從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備將操作系統(tǒng)加載到RAM中運(yùn)行。
Boot loader有兩個(gè)運(yùn)行過程,成為stage1和stage2。
stage1的主要步驟是:硬件初始化、為stage2準(zhǔn)備RAM空間、將stage2復(fù)制到RAM空間、設(shè)置堆棧、跳到stage2的C入口點(diǎn)。
stage2的主要步驟是:初始化stage2要使用的硬件設(shè)備、檢查系統(tǒng)存儲(chǔ)、從FLASH中讀取內(nèi)核鏡像和根文件系統(tǒng)鏡像到RAM中、設(shè)置內(nèi)核參數(shù)、調(diào)用內(nèi)核。
boot loader可以存在MBR中,也可以存在文件系統(tǒng)的boot srctor中。總之,boot loader最后的功能都是用來加載內(nèi)核文件
2.MBR與boot loader的關(guān)系
在安裝Windows的時(shí)候,Windows系統(tǒng)會(huì)默認(rèn)在MBR內(nèi)會(huì)安裝一份boot loader,并且在自己文件系統(tǒng)的boot sector內(nèi)也會(huì)安裝有boot loader。
在安裝Linux的時(shí)候,你可以選擇將boot loader安裝在MBR,也可以選擇不安裝在MBR中
3.啟動(dòng)扇區(qū):boot sector
每一個(gè)文件系統(tǒng)中都含有一個(gè)bootsector,并且這個(gè)啟動(dòng)扇區(qū)內(nèi)也包含有boot loader。因此MBR中提供有選項(xiàng)功能,你可以選擇啟動(dòng)哪一個(gè)文件系統(tǒng)的boot sector內(nèi)的boot loader來加載不同的操作系統(tǒng)
4.內(nèi)核文件加載結(jié)構(gòu)圖
過程詳解
MBR內(nèi)提供了選項(xiàng)功能,你可以選擇不同的選項(xiàng)來加載文件系統(tǒng)例如:
你可以選擇加載Windows系統(tǒng)的boot sector內(nèi)的啟動(dòng)引導(dǎo)程序,來最終進(jìn)入Windows系統(tǒng)。
也可以選擇Linux系統(tǒng)的bootsrctor內(nèi)的啟動(dòng)引導(dǎo)程序,來最終進(jìn)入Linux系統(tǒng)
三、內(nèi)核加載
boot loader讀取內(nèi)核文件后,接下來Linux就會(huì)將內(nèi)核加壓縮到內(nèi)存中,并且利用內(nèi)核的功能,開始測試與驅(qū)動(dòng)個(gè)各周邊的設(shè)備,抱愧存儲(chǔ)設(shè)備、CPU、網(wǎng)卡、聲卡等
此時(shí)Linux內(nèi)核會(huì)以自己的功能重新檢測一次硬件,而不一定會(huì)使用BIOS檢測到的硬件信息。
-
CMOS
+關(guān)注
關(guān)注
58文章
5735瀏覽量
236091 -
嵌入式
+關(guān)注
關(guān)注
5092文章
19177瀏覽量
307672 -
BIOS
+關(guān)注
關(guān)注
5文章
470瀏覽量
45933 -
Boot
+關(guān)注
關(guān)注
0文章
150瀏覽量
35944 -
SDRAM控制器
+關(guān)注
關(guān)注
0文章
28瀏覽量
8188
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論