Linux中bootloader介紹
一個嵌入式Linux系統(tǒng)從軟件的角度通常分為以下四個層次:
引導加載程序。包括固化在firmware中的boot代碼(可選),和Bootloader兩大部分。
Linux內核。
文件系統(tǒng)。
應用程序。
在嵌入式操作系統(tǒng)中,Bootloader是硬件啟動的引導程序,是運行操作系統(tǒng)的前提;在操作系統(tǒng)內核或用戶應用程序運行之前運行的一小段代碼,對軟硬件進行相應的初始化和設定,為最終運行操作系統(tǒng)準備好環(huán)境,類似于X86計算機中的BIOS固件;Bootloader不屬于操作系統(tǒng),一般采用匯編語言和C語言開發(fā),需要針對特定的硬件平臺(比如arm、powerpc、MIPS等)編寫,Bootloader不但依賴于CPU的體系結構,而且依賴于嵌入式系統(tǒng)板級設備的配置。對于2塊不同的嵌入式板而言,即使它們使用同一種處理器,要想讓運行在一塊板子上的Bootloader程序也能運行在另一塊板子上,一般也都需要修改Bootloader的源程序。
Bootloader的兩種操作模式自啟動模式:在這種模式下,Bootloader從目標機上的某個固態(tài)存儲設備上將操作系統(tǒng)(kernel)加載到RAM中運行(讀取bootcmd參數(shù)),整個過程并沒有用戶的介入。
交互模式:在這種模式下(uboot可在倒計時按任意鍵進入到這種模式),目標機上的Bootloader將通過串口或網(wǎng)絡等方式從開發(fā)主機(Host)上下載內核映像和根文件系統(tǒng)映像等到RAM中,可以被 Bootloader寫到目標機上的固態(tài)存儲媒質中,或者直接進行系統(tǒng)的引導。也可以通過串口接收用戶的命令。
Bootloader的基本功能初始化相關硬件
把bootloader自搬運到RAM中
執(zhí)行用戶的命令
訪問環(huán)境變量
通過網(wǎng)絡/串口通信
讀寫RAM/FLASH
加載并執(zhí)行內核
Redboot:Redhat公司隨eCos發(fā)布的一個BOOT方案,是一個開源項目,Linux操作系統(tǒng)引導,在線讀寫Flash。
ARMboot:ARM平臺的開源固件項目,2002年ARMboot終止了維護。
U-Boot:ARMboot并入了PPCBoot,和其他一些平臺的Loader合稱U-Boot,是目前最常用的bootloader。
Blob、Bios-lt、Bootldr、vivi等
*博客內容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。