李慧穎
摘要 隨著計(jì)算機(jī)技術(shù)不斷的發(fā)展,嵌入式系統(tǒng)技術(shù)也在不斷的發(fā)展。就目前來(lái)看,32位微處理器嵌入式系統(tǒng)以其獨(dú)特的優(yōu)勢(shì)已經(jīng)成為高端嵌入式系統(tǒng)研發(fā)的主流。但是這類(lèi)嵌入式系統(tǒng)的硬件條件相對(duì)復(fù)雜。在這種情況下,為了更好的支持其運(yùn)行,研究開(kāi)發(fā)了許多嵌入式操作系統(tǒng),以此來(lái)支持和簡(jiǎn)化這類(lèi)操作系統(tǒng)。嵌入式Linux操作系統(tǒng)的出現(xiàn),憑借其獨(dú)特的優(yōu)勢(shì)滿足了嵌入式系統(tǒng)需求,并被廣泛的應(yīng)用到不同領(lǐng)域。
關(guān)鍵詞 嵌入式Linux;操作系統(tǒng);研究
中圖分類(lèi)號(hào)TP39 文獻(xiàn)標(biāo)識(shí)碼A 文章編號(hào) 1674-6708(2012)67-0194-01
基于嵌入式Linux操作系統(tǒng)作為近年來(lái)新的系統(tǒng)方案,其不僅能實(shí)現(xiàn)全功能桌面計(jì)算,也能支持多數(shù)嵌入式系統(tǒng)中的芯片,同時(shí)其不需要任何費(fèi)用,這就使得其越來(lái)越受歡迎。就目前來(lái)看,基于嵌入式Linux操作系統(tǒng)開(kāi)發(fā)和設(shè)計(jì)方案已經(jīng)成為嵌入式解決最佳方案。為了使Linux操作系統(tǒng)更好的發(fā)揮其作用,嵌入式Linux操作系統(tǒng)在設(shè)計(jì)的時(shí)候,需要對(duì)bootloader、操作系統(tǒng)內(nèi)存管理、進(jìn)程管理等進(jìn)行分析。如何更好的對(duì)嵌入式Linux操作系統(tǒng)進(jìn)行研究,已經(jīng)成為相關(guān)部門(mén)值得思索的事情。
1 對(duì)bootloader進(jìn)行分析
Bootloader指的是硬件中的ROM或Flash中運(yùn)行駐留運(yùn)行的程序,其主要作用是輔助主要程序系統(tǒng)完成相應(yīng)任務(wù)。在對(duì)嵌入式Linux進(jìn)行設(shè)計(jì)的時(shí)候,是需要以硬件目標(biāo)板的特征為依據(jù)對(duì)bootloader程序進(jìn)行開(kāi)發(fā)的。開(kāi)發(fā)后使用bootloader進(jìn)行初始化處理,處理的時(shí)候最好在處理器中配置一些寄存器,以方便使用控制命令打開(kāi)MMU,保證初始化成果。初始化處理后還需要準(zhǔn)備初始化硬件設(shè)備,不僅要準(zhǔn)備初始化內(nèi)存、flash ROM,還要準(zhǔn)備中斷控制器。一般主機(jī)下的下載系統(tǒng)映像到硬件板上接口設(shè)備, bootloader通過(guò)用網(wǎng)卡驅(qū)動(dòng)程序來(lái)對(duì)其硬件設(shè)備進(jìn)行驅(qū)動(dòng)的,以實(shí)現(xiàn)與客戶端程序通訊并下載重要內(nèi)容;下載的硬件系統(tǒng)一般是由bootloader提供的,系統(tǒng)映像通過(guò)bootloader來(lái)實(shí)現(xiàn)與Shell界面制定內(nèi)核映像和文件系統(tǒng)映像下載位置,并對(duì)目標(biāo)板上內(nèi)存地址主要內(nèi)容進(jìn)行檢測(cè)。當(dāng)目標(biāo)端的bootloader程序能接收到映像服務(wù)程序時(shí),其就可以以串口的方式進(jìn)行發(fā)送,也可以用以太網(wǎng)的形式進(jìn)行發(fā)送。發(fā)送完系統(tǒng)映像之后,如果硬件系統(tǒng)允許,bootloader命令就可以將成功的映像寫(xiě)進(jìn)Flash ROM中,以方便對(duì)Flash進(jìn)行推動(dòng)。此外,bootloader也可以對(duì)已經(jīng)下載的系統(tǒng)進(jìn)行啟動(dòng),其不僅可以對(duì)RAM中或是Flash中系統(tǒng)進(jìn)行啟動(dòng),也可以對(duì)具體地址進(jìn)行啟動(dòng)。
2 對(duì)內(nèi)存管理進(jìn)行分析
內(nèi)存管理一般是指操作系統(tǒng)的內(nèi)存管理功能,這種內(nèi)存管理功能不僅能為操作系統(tǒng)提供一致頁(yè)面、申請(qǐng)?zhí)峁┮罁?jù),也能為地址映射功能或是釋放操作提供給依據(jù)。畢竟每一個(gè)嵌入式應(yīng)用程序的完成是通過(guò)操作系統(tǒng)來(lái)完成的。嵌入式系統(tǒng)在保護(hù)自身內(nèi)存空間的時(shí)候,是需要嵌入式系統(tǒng)程序員來(lái)對(duì)編程進(jìn)行操作的,以保證不越界及自身安全。一些嵌入式處理器可以提供MMU,并具有內(nèi)存地址映射和尋址功能,方便對(duì)內(nèi)存進(jìn)行管理。也有些嵌入式系統(tǒng)不存在MMU,但其以虛擬地址的方式對(duì)其物理地址進(jìn)行轉(zhuǎn)換,應(yīng)用程序只要用虛擬地址尋找相應(yīng)數(shù)據(jù),就能實(shí)現(xiàn)內(nèi)存管理。但是值得注意的是,使用這種虛擬內(nèi)存方式,就必須有MMU。這種虛擬方式的最大優(yōu)勢(shì)就是能在不同結(jié)構(gòu)體系下使用三級(jí)或是兩級(jí)頁(yè)式管理。來(lái)實(shí)現(xiàn)地址轉(zhuǎn)換。但是在實(shí)時(shí)性要求較高情況下,其不能更好的發(fā)揮其虛擬內(nèi)存的作用。在這種情況下,可以對(duì)Linux內(nèi)存管理部分進(jìn)行設(shè)計(jì)和修改,以實(shí)現(xiàn)物理地址轉(zhuǎn)換。
3 對(duì)任務(wù)調(diào)度進(jìn)行分析
任務(wù)調(diào)度管理是能實(shí)現(xiàn)多種任務(wù)調(diào)度的。在對(duì)嵌入式Linux系統(tǒng)進(jìn)行設(shè)計(jì)的時(shí)候,只需要用自身調(diào)度方法就能實(shí)現(xiàn)任務(wù)調(diào)度。其在實(shí)際操作過(guò)程中,主要是以進(jìn)程或線程方式來(lái)實(shí)現(xiàn)的,正常情況下,操作系統(tǒng)的調(diào)度方式是不能被改變的。然而任務(wù)作為操作系統(tǒng)的核心,就不得不對(duì)供給方式進(jìn)行適度的調(diào)節(jié)。一般Linux使用的調(diào)度法是不能搶占的分時(shí)度算法,而嵌入式Linux不僅具有一般Linux的功能,同時(shí)也可以將任務(wù)進(jìn)行分類(lèi)型描述,并分別使用不同任務(wù)進(jìn)行調(diào)度。為了保證任務(wù)調(diào)度順利進(jìn)行,可以以增加策略標(biāo)志的形式來(lái)分任務(wù)類(lèi)型和調(diào)度算法,來(lái)實(shí)現(xiàn)新的Linux任務(wù)調(diào)度算法。但這種調(diào)度方法是需要考慮其中斷處理和進(jìn)倉(cāng)搶占方法的。對(duì)于外部中斷來(lái)說(shuō),其對(duì)系統(tǒng)實(shí)時(shí)性能是有一定影響的。一旦操作系統(tǒng)中的一小部分需要在關(guān)閉中斷情況下運(yùn)行,勢(shì)必會(huì)延遲中斷。為了保證運(yùn)行質(zhì)量,可以采用雙內(nèi)核模式進(jìn)行調(diào)度,以避免延遲中斷;Linux作為一般操作系統(tǒng),其在實(shí)際應(yīng)用過(guò)程中,其吞吐量是比較重要的,尤其是在單處理模式下,其搶占調(diào)度法是需要多種操作來(lái)完成臨界區(qū)保護(hù)的,在操作過(guò)程中很可能產(chǎn)生額外開(kāi)銷(xiāo),甚至嚴(yán)重影響吞吐量。在這種情況下,可以以任務(wù)優(yōu)先級(jí)為依據(jù),用實(shí)時(shí)任務(wù)搶占優(yōu)先級(jí)任務(wù),以獲得實(shí)時(shí)性能,避免進(jìn)程搶占。
4 結(jié)論
操作系統(tǒng)作為嵌入式系統(tǒng)核心,操作系統(tǒng)安全與否將直接影響網(wǎng)絡(luò)通信及軟件的安全。為了保證嵌入式系統(tǒng)安全運(yùn)行,有必要對(duì)操作系統(tǒng)進(jìn)行相應(yīng)研究,特別是對(duì)近幾年來(lái)應(yīng)用比較廣的嵌入式Linux操作系統(tǒng)進(jìn)行研究。Linux內(nèi)核具有高效穩(wěn)定、易于制定、網(wǎng)路通信和文件管理機(jī)制完善等優(yōu)勢(shì),但是其在實(shí)際應(yīng)用過(guò)程中,也會(huì)出現(xiàn)一些問(wèn)題。為了更好的發(fā)揮嵌入式操作系統(tǒng)優(yōu)勢(shì),還需要從實(shí)際出發(fā)對(duì)系統(tǒng)進(jìn)行改善。
參考文獻(xiàn)
[1]鞠劍平,冉全.黎曦嵌入式Linux在S3C2440上的移植[J].科技資訊,2010(18).
[2]林繼民,吳怡.林蕭基于Linux嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)的構(gòu)建及應(yīng)用[J].現(xiàn)代電子技術(shù),2010(18).
[3]劉航,劉全,凌俊銀.一種基于嵌入式Linux操作系統(tǒng)通信管理機(jī)的設(shè)計(jì)與實(shí)現(xiàn)[J].電力系統(tǒng)保護(hù)與控制,2009,37(1).
[4]權(quán)義寧,胡予濮.改進(jìn)的操作系統(tǒng)訪問(wèn)控制模型[J].西安電子科技大學(xué)學(xué)報(bào),2006(4).