當前位置

首頁 > 商務英語 > 實用英語 > bootloader是什麼意思

bootloader是什麼意思

推薦人: 來源: 閱讀: 1.1W 次

大家有沒有想過bootloader的意思?下面是本站小編給大家整理的bootloader是什麼意思,供大家參閱!

bootloader是什麼意思
  bootloader是什麼意思

Bootloader是嵌入式系統在加電後執行的第一段代碼,在它完成CPU和相關硬件的初始化之後,再將操作系統映像或固化的嵌入式應用程序裝在到內存中然後跳轉到操作系統所在的空間,啓動操作系統運行。

BootLoader是在操作系統內核運行之前運行。可以初始化硬件設備、建立內存空間映射圖,從而將系統的軟硬件環境帶到一個合適狀態,以便爲最終調用操作系統內核準備好正確的環境。

通過這段小程序,可以初始化硬件設備、建立內存空間映射圖,從而將系統的軟硬件環境帶到一個合適狀態,以便爲最終調用操作系統內核準備好正確的環境。

  BootLoader背景介紹

Bootloader是嵌入式系統在加電後執行的第一段代碼,在它完成CPU和相關硬件的初始化之後,再將操作系統映像或固化的嵌入式應用程序裝在到內存中然後跳轉到操作系統所在的空間,啓動操作系統運行。[1]

對於嵌入式系統,Bootloader是基於特定硬件平臺來實現的。因此,幾乎不可能爲所有的嵌入式系統建立一個通用的Bootloader,不同的處理器架構都有不同的Bootloader。Bootloader不但依賴於CPU的體系結構,而且依賴於嵌入式系統板級設備的配置。對於2塊不同的嵌入式板而言,即使它們使用同一種處理器,要想讓運行在一塊板子上的Bootloader程序也能運行在另一塊板子上,一般也都需要修改Bootloader的源程序。

反過來,大部分Bootloader仍然具有很多共性,某些Bootloader也能夠支持多種體系結構的嵌入式系統。例如,U-Boot就同時支持PowerPC、ARM、MIPS和X86等體系結構,支持的板子有上百種。通常,它們都能夠自動從存儲介質上啓動,都能夠引導操作系統啓動,並且大部分都可以支持串口和以太網接口。

在專用的嵌入式板子運行GNU/Linux系統已經變得越來越流行。一個嵌入式Linux系統從軟件的角度看通常可以分爲四個層次:

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

2、Linux內核。特定於嵌入式板子的定製內核以及內核的啓動參數。

3、 文件系統。包括根文件系統和建立於Flash內存設備之上文件系統。通常用ramdisk來作爲rootfs。

4、 用戶應用程序。特定於用戶的應用程序。有時在用戶應用程序和內核層之間可能還會包括一個嵌入式圖形用戶界面。常用的嵌入式GUI有:MicroWindows和MiniGUI等。

通常,BootLoader是嚴重地依賴於硬件而實現的,特別是在嵌入式世界。因此,在嵌入式世界裏建立一個通用的BootLoader幾乎是不可能的。儘管如此,我們仍然可以對bootloader歸納出一些通用的概念來,以指導用戶特定的BootLoader設計與實現。

  BootLoader啓動過程

Bootloader啓動大多數都分爲兩個階段。第一階段主要包含依賴於CPU的體系結構硬件初始化的代碼,通常都用匯編語言來實現。這個階段的任務有:

基本的硬件設備初始化(屏蔽所有的中斷、關閉處理器內部指令/數據Cache等)。

爲第二階段準備RAM空間。

如果是從某個固態存儲媒質中,則複製Bootloader的第二階段代碼到RAM。

設置堆棧。

在第一階段中爲什麼要關閉Cache?通常使用Cache以及寫緩衝是爲了提高系統性能,但由於Cache的使用可能改變訪問主存的數量、類型和時間,因此Bootloader通常是不需要的。

跳轉到第二階段的C程序入口點。

第二階段通常用C語言完成,以便實現更復雜的功能,也使程序有更好的可讀性和可移植性。這個階段的任務有:

初始化本階段要使用到的硬件設備。

檢測系統內存映射。

將內核映像和根文件系統映像從Flash讀到RAM。

爲內核設置啓動參數。

調用內核。