基于嵌入式Linux系統(tǒng)界面的研究
1概述
本文引用地址:http://www.ex-cimer.com/article/149090.htm嵌入式系統(tǒng)一般指非PC系統(tǒng),有計(jì)算機(jī)功能但又不稱之為計(jì)算機(jī)的設(shè)備或器材。他是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁減的,適用于對(duì)功能、可靠性、成本、體積、功耗等綜合性嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。
1.2嵌入式操作系統(tǒng)的發(fā)展
嵌入式技術(shù)的發(fā)展,大致經(jīng)歷了4個(gè)階段:
第一階段是以單芯片為核心的可編程控制器形式的系統(tǒng),同時(shí)具有與監(jiān)測(cè)、伺服、指示設(shè)備相配合的功能。這種系統(tǒng)大部分應(yīng)用于一些專(zhuān)業(yè)性極強(qiáng)的工業(yè)控制系統(tǒng)中,一般沒(méi)有操作系統(tǒng)的支持,通過(guò)匯編語(yǔ)言編程對(duì)系統(tǒng)進(jìn)行直接控制,運(yùn)行結(jié)束后清除內(nèi)存。
第二階段是以嵌入式CPU為基礎(chǔ)、以簡(jiǎn)單操作系統(tǒng)為核心的嵌入式系統(tǒng)。這一階段的操作系統(tǒng)具有一定的兼容性和擴(kuò)展性,但用戶界面不夠友好。
第三階段是以嵌入式操作系統(tǒng)為標(biāo)志的嵌入式系統(tǒng)。這一階段系統(tǒng)的主要特點(diǎn)是:嵌入式操作系統(tǒng)能運(yùn)行于各種不同類(lèi)型的微處理器上,兼容性好;操作系統(tǒng)內(nèi)核精小、效率高,并且具有高度的模塊化和擴(kuò)展性;具備文件和目錄管理、設(shè)備支持、多任務(wù)、網(wǎng)絡(luò)支持、圖形窗口以及用戶界面等功能;具有大量的應(yīng)用程序接口(API),開(kāi)發(fā)應(yīng)用程序簡(jiǎn)單;嵌入式應(yīng)用軟件豐富。
第四階段是以基于Internet為標(biāo)志的嵌入式系統(tǒng),這是一個(gè)正在迅速發(fā)展的階段。目前大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,但隨著Internet的發(fā)展以及Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等結(jié)合日益密切,嵌入式設(shè)備與Internet的結(jié)合將代表著嵌入式技術(shù)的真正未來(lái)。
1.3嵌入式操作系統(tǒng)的特點(diǎn)
與其他類(lèi)型的操作系統(tǒng)相比,嵌入式操作系統(tǒng)具有以下一些特點(diǎn)。
(1)體積小
嵌入式系統(tǒng)有別于一般的計(jì)算機(jī)處理系統(tǒng),他不具備像硬盤(pán)那樣大容量的存儲(chǔ)介質(zhì),而大多使用閃存(FlashMemory)作為存儲(chǔ)介質(zhì)。這就要求嵌入式操作系統(tǒng)只能運(yùn)行在有限的內(nèi)存中,不能使用虛擬內(nèi)存,中斷的使用也受到限制。因此,嵌入式操作系統(tǒng)必須結(jié)構(gòu)緊湊,體積微小。
(2)實(shí)時(shí)性
大多數(shù)嵌入式系統(tǒng)都是實(shí)時(shí)系統(tǒng),而且多是強(qiáng)實(shí)時(shí)多任務(wù)系統(tǒng),要求相應(yīng)的嵌入式操作系統(tǒng)也必須是實(shí)時(shí)操作系統(tǒng)(RTOS)。實(shí)時(shí)操作系統(tǒng)作為操作系統(tǒng)的一個(gè)重要分支已成為研究的一個(gè)熱點(diǎn),主要探討實(shí)時(shí)多任務(wù)調(diào)度算法和可調(diào)度性、死鎖解除等問(wèn)題。
(3)特殊的開(kāi)發(fā)調(diào)試環(huán)境
提供完整的集成開(kāi)發(fā)環(huán)境是每一個(gè)嵌入式系統(tǒng)開(kāi)發(fā)人員所期待的。一個(gè)完整的嵌入式系統(tǒng)的集成開(kāi)發(fā)環(huán)境一般需要提供的工具是編譯/連接器、內(nèi)核調(diào)試/跟蹤器和集成圖形界面開(kāi)發(fā)平臺(tái)。其中的集成圖形界面開(kāi)發(fā)平臺(tái)包括編輯器、調(diào)試器、軟件仿真器和監(jiān)視器等。
2嵌入式Linux
嵌入式Linux是按照嵌入式操作系統(tǒng)的要求而設(shè)計(jì)的一種小型操作系統(tǒng)。由一個(gè)Kernel(內(nèi)核)及一些根據(jù)需要進(jìn)行定制的系統(tǒng)模塊組成。其Kernel很小,一般只有幾百kB左右。即使加上其他必須的模塊和應(yīng)用程序,所需的存儲(chǔ)空間也很小。他有多任務(wù)、多進(jìn)程的系統(tǒng)特征,有些還具有實(shí)時(shí)性。一個(gè)小型的嵌入式Linux系統(tǒng)只需要引導(dǎo)程序、Linux微內(nèi)核、初始化進(jìn)程3個(gè)基本元素。運(yùn)行嵌入式Linux的CPU可以是x86,Alpha,Sparc,MIPS,PPC等。與這些芯片搭配的主板都很小,與一張PCI卡大小相當(dāng),有的甚至更小。嵌入式Linux所需的存儲(chǔ)器不是軟磁盤(pán)、硬盤(pán)、Zip盤(pán)、CDROM,DVD這些眾所周知的常規(guī)存儲(chǔ)器,他使用Rom,CompactFlash,MSystems的DiskOnChip,Sony的MemoryStick,IBM的MicroDrive等體積極小與主板上的BIOS大小相近,存儲(chǔ)容量不太大的存儲(chǔ)器。他的內(nèi)存可以使用普通的內(nèi)存,也可以使用專(zhuān)用的RAM。與其他嵌入式操作系統(tǒng)相比,Linux的源代碼是開(kāi)放的,不存在黑箱技術(shù)。Linux作為一種可裁剪的軟件平臺(tái)系統(tǒng),是發(fā)展未來(lái)嵌入式設(shè)備產(chǎn)品的最佳資源。
3圖形用戶界面系統(tǒng)MiniGUI
3.1圖形用戶界面簡(jiǎn)介
計(jì)算機(jī)用戶界面是指計(jì)算機(jī)與其使用者之間的對(duì)話接口,是計(jì)算機(jī)系統(tǒng)的重要組成部分。計(jì)算機(jī)的發(fā)展史不僅是計(jì)算機(jī)本身處理速度和存儲(chǔ)容量飛速提高的歷史,也是計(jì)算用戶界面不斷改進(jìn)的歷史。用戶界面的重要性在于他極大地影響了最終用戶的使用,影響了計(jì)算機(jī)的推廣應(yīng)用,甚至影響了人們的工作和生活。由于開(kāi)發(fā)用戶界面的工作量極大,加上不同用戶對(duì)界面的要求也不盡相同,因此,用戶界面已成為計(jì)算機(jī)軟件研制中最困難的部分之一。
GUI在嵌入式系統(tǒng)或者實(shí)時(shí)系統(tǒng)中的地位將越來(lái)越重要,這些系統(tǒng)對(duì)GUI的基本要求包括:
①輕型、占用資源少。
②高性能。
③高可靠性。
④可配置。
3.2MiniGUI圖形用戶系統(tǒng)
3.2.1MiniGUI特色
MiniGUI由原清華大學(xué)教師魏永明先生開(kāi)發(fā),是中國(guó)人做得較好的自由軟件之一。MiniGUI是一種面向嵌入式系統(tǒng)或者實(shí)時(shí)系統(tǒng)的圖形用戶界面支持系統(tǒng)。他主要運(yùn)行于Linux控制臺(tái),實(shí)際可以運(yùn)行在任何一種具有POSIX線程支持的POSIX兼容系統(tǒng)上。MiniGUI同時(shí)也是國(guó)內(nèi)最早出現(xiàn)的幾個(gè)自由軟件項(xiàng)目之一。
MiniGUI的主要特色有:
(1)遵循LGPL條款的純自由軟件。
(2)提供了完備的多窗口機(jī)制。包括多個(gè)單獨(dú)線程中運(yùn)行的多窗口;單個(gè)線程中主窗口的附屬;對(duì)話框和預(yù)定義的控件類(lèi)(按鈕、單行和多行編輯框、列表框、進(jìn)度條、工具欄等)。
(3)消息傳遞機(jī)制。
(4)多字符集和多字體支持。
(5)BMP,GIF,JPEG,PCX等常見(jiàn)圖像文件的支持。
(6)Windows的資源文件支持,如位圖、圖標(biāo)、光標(biāo)、插入符、定時(shí)器、加速鍵等。
(7)小巧
包含全部功能的庫(kù)文件大小為300kB左右。
(8)可配置
可根據(jù)項(xiàng)目需求進(jìn)行定制配置和編譯。
(9)高穩(wěn)定性和高性能。
(10)可移植性好。
(11)圖形抽象層
圖形抽象層對(duì)頂層API基本沒(méi)有影響,但大大方便了MiniGUI應(yīng)用程序的移植、調(diào)試等工作。目前包含2個(gè)圖形引擎,SVGALib和LibGGI,利用LibGGI時(shí),可在XWindow上運(yùn)行MiniGUI應(yīng)用程序,并可非常方便地進(jìn)行調(diào)試。與圖形抽象層相關(guān)的還有輸入事件的抽象層。
3.2.2MiniGUI的體系結(jié)構(gòu)
從整體結(jié)構(gòu)上看,MiniGUI是分層設(shè)計(jì)的,層次結(jié)構(gòu)如圖1所示。在最底層,GAL和IAL提供底層圖形接口以及鼠標(biāo)和鍵盤(pán)的驅(qū)動(dòng);中間層是MiniGUI的核心層,包括窗口系統(tǒng)必不可少的各個(gè)模塊;最頂層是API,即編程接口。GAL和IAL為MiniGUI提供了底層的Linux控制臺(tái)或者XWindow上的圖形接口以及輸入接口,而Pthread用于提供內(nèi)核級(jí)線程支持的C函數(shù)庫(kù)。おお
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論