博客專欄

EEPW首頁 > 博客 > Linux中bootloader介紹

Linux中bootloader介紹

發(fā)布人:嵌入式Linux 時間:2023-01-10 來源:工程師 發(fā)布文章

一個嵌入式Linux系統(tǒng)從軟件的角度通常分為以下四個層次:

  • 引導加載程序。包括固化在firmware中的boot代碼(可選),和Bootloader兩大部分。

  • Linux內核。

  • 文件系統(tǒng)。

  • 應用程序。

Bootloader概念

在嵌入式操作系統(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í)行內核

常見的Bootloader
  • 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)系工作人員刪除。



關鍵詞: bootloader

相關推薦

技術專區(qū)

關閉