嵌入式Linux系統(二)——嵌入式Linux四個軟件層次

姓名:張一塵? ? ? ? ? ? 學號:19020100319? ? ?學院:電子工程學院

轉自:https://blog.csdn.net/shiniji_hh1126/article/details/6906944

【嵌牛導讀】嵌入式Linux系統四個軟件層次

【嵌牛鼻子】嵌入式? Linux系統

【嵌牛提問】什么是嵌入式Linux系統的四個軟件層次?

【嵌牛正文】

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

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

  2、 Linux內核。特定于嵌入式板子的定制內核以及內核的啟動參數。

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

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

  引導加載程序是系統加電后運行的第一段軟件代碼。PC機中的引導加載程序由BIOS(其本質就是一段固件程序)和位于硬盤MBR中的OS BootLoader(比如,LILO和GRUB等)一起組成。BIOS在完成硬件檢測和資源分配后,將硬盤MBR中的BootLoader讀到系統的RAM中,然后將控制權交給OS BootLoader。BootLoader的主要運行任務就是將內核映象從硬盤上讀到 RAM 中,然后跳轉到內核的入口點去運行,也即開始啟動操作系統。

  而在嵌入式系統中,通常并沒有像BIOS那樣的固件程序(注,有的嵌入式CPU也會內嵌一段短小的啟動程序),因此整個系統的加載啟動任務就完全由BootLoader來完成。比如在一個基于ARM7TDMI core的嵌入式系統中,系統在上電或復位時通常都從地址0x00000000處開始執行,而在這個地址處安排的通常就是系統的BootLoader程序。

  簡單地說,BootLoader就是在操作系統內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,以便為最終調用操作系統內核準備好正確的環境。

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

————————————————

版權聲明:本文為CSDN博主「Mr. 小蘿卜」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/shiniji_hh1126/article/details/6906944

作者:530fb4ce4300

鏈接:http://www.lxweimin.com/p/2e07f19449b5

來源:簡書

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 什么是計算機 數字電子計算機(Electronic Digital Computer)計算機是一種能按照事先存儲的...
    valla軒閱讀 1,612評論 0 0
  • nlp5講 今天是NLP心理咨詢課的第一天,萌生學習心理學課程的意圖是因為想要用正確的思維模式去核理,并用一種智慧...
    陽光雨露_135d閱讀 2,614評論 0 1
  • 姓名:吳兆陽 學號:14020199009 轉自韋東山 嵌牛導讀:對嵌入式初學者,沒有足夠的視野選擇一個合適投入方...
    吳兆陽閱讀 2,402評論 0 4
  • 姓名:薛紹宏 學號:19020100016 學院:電子工程學院 轉自:https://blog.csdn.ne...
    Jetho閱讀 382評論 0 0
  • 姓名:顧穎 17021223250 鏈接:https://www.zhihu.com/question/19688...
    大貓_23fe閱讀 1,257評論 1 9