姓名:張一塵? ? ? ? ? ? 學號:19020100319? ? ?學院:電子工程學院
轉(zhuǎn)自:https://blog.csdn.net/shiniji_hh1126/article/details/6906944
【嵌牛導讀】嵌入式Linux系統(tǒng)四個軟件層次
【嵌牛鼻子】嵌入式? Linux系統(tǒng)
【嵌牛提問】什么是嵌入式Linux系統(tǒng)的四個軟件層次诺凡?
【嵌牛正文】
在專用的嵌入式板子運行GNU/Linux系統(tǒng)已經(jīng)變得越來越流行锅论。一個嵌入式Linux系統(tǒng)從軟件的角度看通常可以分為四個層次:
1铸史、 引導加載程序庐橙。包括固化在固件(firmware)中的boot代碼(可選)假勿,和BootLoader兩大部分。
2态鳖、 Linux內(nèi)核转培。特定于嵌入式板子的定制內(nèi)核以及內(nèi)核的啟動參數(shù)。
3浆竭、 文件系統(tǒng)浸须。包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備之上文件系統(tǒng)惨寿。通常用ramdisk來作為rootfs。
4删窒、 用戶應(yīng)用程序裂垦。特定于用戶的應(yīng)用程序。有時在用戶應(yīng)用程序和內(nèi)核層之間可能還會包括一個嵌入式圖形用戶界面肌索。常用的嵌入式GUI有:MicroWindows和MiniGUI,QT蕉拢、GTK。
引導加載程序是系統(tǒng)加電后運行的第一段軟件代碼诚亚。PC機中的引導加載程序由BIOS(其本質(zhì)就是一段固件程序)和位于硬盤MBR中的OS BootLoader(比如晕换,LILO和GRUB等)一起組成。BIOS在完成硬件檢測和資源分配后站宗,將硬盤MBR中的BootLoader讀到系統(tǒng)的RAM中届巩,然后將控制權(quán)交給OS BootLoader。BootLoader的主要運行任務(wù)就是將內(nèi)核映象從硬盤上讀到 RAM 中份乒,然后跳轉(zhuǎn)到內(nèi)核的入口點去運行恕汇,也即開始啟動操作系統(tǒng)。
而在嵌入式系統(tǒng)中或辖,通常并沒有像BIOS那樣的固件程序(注瘾英,有的嵌入式CPU也會內(nèi)嵌一段短小的啟動程序),因此整個系統(tǒng)的加載啟動任務(wù)就完全由BootLoader來完成颂暇。比如在一個基于ARM7TDMI core的嵌入式系統(tǒng)中缺谴,系統(tǒng)在上電或復位時通常都從地址0x00000000處開始執(zhí)行,而在這個地址處安排的通常就是系統(tǒng)的BootLoader程序耳鸯。
簡單地說湿蛔,BootLoader就是在操作系統(tǒng)內(nèi)核運行之前運行的一段小程序。通過這段小程序县爬,我們可以初始化硬件設(shè)備阳啥、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài)财喳,以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境察迟。
通常,BootLoader是嚴重地依賴于硬件而實現(xiàn)的耳高,特別是在嵌入式世界扎瓶。因此,在嵌入式世界里建立一個通用的BootLoader幾乎是不可能的泌枪。盡管如此概荷,我們?nèi)匀豢梢詫ootLoader歸納出一些通用的概念來,以指導用戶特定的BootLoader設(shè)計與實現(xiàn)碌燕。
————————————————
版權(quán)聲明:本文為CSDN博主「Mr. 小蘿卜」的原創(chuàng)文章误证,遵循CC 4.0 BY-SA版權(quán)協(xié)議继薛,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/shiniji_hh1126/article/details/6906944
作者:530fb4ce4300
鏈接:http://www.reibang.com/p/2e07f19449b5
來源:簡書
著作權(quán)歸作者所有雷厂。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處叠殷。