姓名:張一塵? ? ? ? ? ? 學(xué)號(hào):19020100319? ? ?學(xué)院:電子工程學(xué)院
轉(zhuǎn)自:https://blog.csdn.net/shiniji_hh1126/article/details/6906944
【嵌牛導(dǎo)讀】嵌入式Linux系統(tǒng)四個(gè)軟件層次
【嵌牛鼻子】嵌入式? Linux系統(tǒng)
【嵌牛提問(wèn)】什么是嵌入式Linux系統(tǒng)的四個(gè)軟件層次?
【嵌牛正文】
在專(zhuān)用的嵌入式板子運(yùn)行GNU/Linux系統(tǒng)已經(jīng)變得越來(lái)越流行。一個(gè)嵌入式Linux系統(tǒng)從軟件的角度看通常可以分為四個(gè)層次:
1、 引導(dǎo)加載程序。包括固化在固件(firmware)中的boot代碼(可選),和BootLoader兩大部分。
2、 Linux內(nèi)核。特定于嵌入式板子的定制內(nèi)核以及內(nèi)核的啟動(dòng)參數(shù)。
3、 文件系統(tǒng)。包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備之上文件系統(tǒng)。通常用ramdisk來(lái)作為rootfs。
4、 用戶(hù)應(yīng)用程序。特定于用戶(hù)的應(yīng)用程序。有時(shí)在用戶(hù)應(yīng)用程序和內(nèi)核層之間可能還會(huì)包括一個(gè)嵌入式圖形用戶(hù)界面。常用的嵌入式GUI有:MicroWindows和MiniGUI,QT、GTK。
引導(dǎo)加載程序是系統(tǒng)加電后運(yùn)行的第一段軟件代碼。PC機(jī)中的引導(dǎo)加載程序由BIOS(其本質(zhì)就是一段固件程序)和位于硬盤(pán)MBR中的OS BootLoader(比如,LILO和GRUB等)一起組成。BIOS在完成硬件檢測(cè)和資源分配后,將硬盤(pán)MBR中的BootLoader讀到系統(tǒng)的RAM中,然后將控制權(quán)交給OS BootLoader。BootLoader的主要運(yùn)行任務(wù)就是將內(nèi)核映象從硬盤(pán)上讀到 RAM 中,然后跳轉(zhuǎn)到內(nèi)核的入口點(diǎn)去運(yùn)行,也即開(kāi)始啟動(dòng)操作系統(tǒng)。
而在嵌入式系統(tǒng)中,通常并沒(méi)有像BIOS那樣的固件程序(注,有的嵌入式CPU也會(huì)內(nèi)嵌一段短小的啟動(dòng)程序),因此整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)就完全由BootLoader來(lái)完成。比如在一個(gè)基于ARM7TDMI core的嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時(shí)通常都從地址0x00000000處開(kāi)始執(zhí)行,而在這個(gè)地址處安排的通常就是系統(tǒng)的BootLoader程序。
簡(jiǎn)單地說(shuō),BootLoader就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。通過(guò)這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。
通常,BootLoader是嚴(yán)重地依賴(lài)于硬件而實(shí)現(xiàn)的,特別是在嵌入式世界。因此,在嵌入式世界里建立一個(gè)通用的BootLoader幾乎是不可能的。盡管如此,我們?nèi)匀豢梢詫?duì)BootLoader歸納出一些通用的概念來(lái),以指導(dǎo)用戶(hù)特定的BootLoader設(shè)計(jì)與實(shí)現(xiàn)。
————————————————
版權(quán)聲明:本文為CSDN博主「Mr. 小蘿卜」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/shiniji_hh1126/article/details/6906944
作者:530fb4ce4300
鏈接:http://www.lxweimin.com/p/2e07f19449b5
來(lái)源:簡(jiǎn)書(shū)
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。