新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Linux系統下的Bootloader詳解

        Linux系統下的Bootloader詳解

        作者: 時間:2016-11-26 來源:網絡 收藏
        對于計算機系統來說,從開機上電到操作系統啟動需要一個引導過程。嵌入式Linux系統同樣離不開引導程序,這個引導程序就叫作Bootloader。在這里我們就為大家詳細介紹Bootloader,Bootloader是在操作系統運行之前執行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間的映射表,從而建立適當的系統軟硬件環境,為最終調用操作系統內核做好準備。
        對于嵌入式系統,Bootloader是基于特定硬件平臺來實現的。因此,幾乎不可能為所有的嵌入式系統建立一個通用的Bootloader,不同的處理器架構都有不同的Bootloader。Bootloader不但依賴于CPU的體系結構,而且依賴于嵌入式系統板級設備的配置。對于2塊不同的嵌入式板而言,即使它們使用同一種處理器,要想讓運行在一塊板子上的Bootloader程序也能運行在另一塊板子上,一般也都需要修改Bootloader的源程序。
        反過來,大部分Bootloader仍然具有很多共性,某些Bootloader也能夠支持多種體系結構的嵌入式系統。例如,U-Boot就同時支持PowerPC、ARM、MIPS和X86等體系結構,支持的板子有上百種。通常,它們都能夠自動從存儲介質上啟動,都能夠引導操作系統啟動,并且大部分都可以支持串口和以太網接口。
        本章將對各種Bootloader總結分類,分析它們的共同特點。以U-Boot為例,詳細討論Bootloader的設計與實現。
        Bootloader的啟動
        Linux系統是通過Bootloader引導啟動的。一上電,就要執行Bootloader來初始化系統。可以通過第4章的Linux啟動過程框圖回顧一下。
        系統加電或復位后,所有CPU都會從某個地址開始執行,這是由處理器設計決定的。比如,X86的復位向量在高地址端,ARM處理器在復位時從地址0x00000000取第一條指令。嵌入式系統的開發板都要把板上ROM或Flash映射到這個地址。因此,必須把Bootloader程序存儲在相應的Flash位置。系統加電后,CPU將首先執行它。
        主機和目標機之間一般有串口可以連接,Bootloader軟件通常會通過串口來輸入輸出。例如:輸出出錯或者執行結果信息到串口終端,從串口終端讀取用戶控制命令等。
        Bootloader啟動過程通常是多階段的,這樣既能提供復雜的功能,又有很好的可移植性。例如:從Flash啟動的Bootloader多數是兩階段的啟動過程。從后面U-Boot的內容可以詳細分析這個特性。
        大多數Bootloader都包含2種不同的操作模式:本地加載模式和遠程下載模式。這2種操作模式的區別僅對于開發人員才有意義,也就是不同啟動方式的使用。從最終用戶的角度看,Bootloader的作用就是用來加載操作系統,而并不存在所謂的本地加載模式與遠程下載模式的區別。


        關鍵詞: Linux系統Bootloade

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 洛阳市| 大理市| 临安市| 汨罗市| 德惠市| 庆元县| 望谟县| 逊克县| 黄冈市| 大方县| 鹤庆县| 开远市| 西乌| 英超| 卢龙县| 鸡泽县| 广灵县| 南投市| 黄大仙区| 罗山县| 黄山市| 铁岭县| 巴马| 鹤山市| 苍山县| 大城县| 新兴县| 明水县| 施甸县| 揭东县| 扎赉特旗| 突泉县| 洪江市| 沂源县| 汉阴县| 灵寿县| 资中县| 陕西省| 宁武县| 五台县| 福安市|