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