當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于嵌入式Linux系統(tǒng)界面的研究

1概述

1.1什么是嵌入式系統(tǒng)

嵌入式系統(tǒng)一般指非PC系統(tǒng),有計(jì)算機(jī)功能但又不稱之為計(jì)算機(jī)的設(shè)備或器材。他是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁減的,適用于對(duì)功能、可靠性、成本、體積、功耗等綜合性嚴(yá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)用于一些專業(yè)性極強(qiáng)的工業(yè)控制系統(tǒng)中,一般沒有操作系統(tǒng)的支持,通過匯編語(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)行于各種不同類型的微處理器上,兼容性好;操作系統(tǒng)內(nèi)核精小、效率高,并且具有高度的模塊化和擴(kuò)展性;具備文件和目錄管理、設(shè)備支持、多任務(wù)、網(wǎng)絡(luò)支持、圖形窗口以及用戶界面等功能;具有大量的應(yīng)用程序接口(API),開發(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ù)的真正未來。

1.3嵌入式操作系統(tǒng)的特點(diǎn)

與其他類型的操作系統(tǒng)相比,嵌入式操作系統(tǒng)具有以下一些特點(diǎn)。

(1)體積小

嵌入式系統(tǒng)有別于一般的計(jì)算機(jī)處理系統(tǒng),他不具備像硬盤那樣大容量的存儲(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)度性、死鎖解除等問題。

(3)特殊的開發(fā)調(diào)試環(huán)境

提供完整的集成開發(fā)環(huán)境是每一個(gè)嵌入式系統(tǒng)開發(fā)人員所期待的。一個(gè)完整的嵌入式系統(tǒng)的集成開發(fā)環(huán)境一般需要提供的工具是編譯/連接器、內(nèi)核調(diào)試/跟蹤器和集成圖形界面開發(fā)平臺(tá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ǔ)器不是軟磁盤、硬盤、Zip盤、CDROM,DVD這些眾所周知的常規(guī)存儲(chǔ)器,他使用Rom,CompactFlash,MSystems的DiskOnChip,Sony的MemoryStick,IBM的MicroDrive等體積極小與主板上的BIOS大小相近,存儲(chǔ)容量不太大的存儲(chǔ)器。他的內(nèi)存可以使用普通的內(nèi)存,也可以使用專用的RAM。與其他嵌入式操作系統(tǒng)相比,Linux的源代碼是開放的,不存在黑箱技術(shù)。Linux作為一種可裁剪的軟件平臺(tái)系統(tǒng),是發(fā)展未來嵌入式設(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)用,甚至影響了人們的工作和生活。由于開發(fā)用戶界面的工作量極大,加上不同用戶對(duì)界面的要求也不盡相同,因此,用戶界面已成為計(jì)算機(jī)軟件研制中最困難的部分之一。

GUI在嵌入式系統(tǒng)或者實(shí)時(shí)系統(tǒng)中的地位將越來越重要,這些系統(tǒng)對(duì)GUI的基本要求包括:

①輕型、占用資源少。

②高性能。

③高可靠性。

④可配置。

3.2MiniGUI圖形用戶系統(tǒng)

3.2.1MiniGUI特色

MiniGUI由原清華大學(xué)教師魏永明先生開發(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ù)定義的控件類(按鈕、單行和多行編輯框、列表框、進(jìn)度條、工具欄等)。

(3)消息傳遞機(jī)制。

(4)多字符集和多字體支持。

(5)BMP,GIF,JPEG,PCX等常見圖像文件的支持。

(6)Windows的資源文件支持,如位圖、圖標(biāo)、光標(biāo)、插入符、定時(shí)器、加速鍵等。

(7)小巧

包含全部功能的庫(kù)文件大小為300kB左右。

(8)可配置

可根據(jù)項(xiàng)目需求進(jìn)行定制配置和編譯。

(9)高穩(wěn)定性和高性能。

(10)可移植性好。

(11)圖形抽象層

圖形抽象層對(duì)頂層API基本沒有影響,但大大方便了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)和鍵盤的驅(qū)動(dòng);中間層是MiniGUI的核心層,包括窗口系統(tǒng)必不可少的各個(gè)模塊;最頂層是API,即編程接口。GAL和IAL為MiniGUI提供了底層的Linux控制臺(tái)或者XWindow上的圖形接口以及輸入接口,而Pthread用于提供內(nèi)核級(jí)線程支持的C函數(shù)庫(kù)。???[!--empirenews.page--]

利用GAL和IAL,大大提高了MiniGUI的可移植性,并且使程序的開發(fā)和調(diào)試變得更加容易。可以在XWindow上開發(fā)和調(diào)試自己的MiniGUI程序,通過重新編譯就可以讓MiniGUI應(yīng)用程序運(yùn)行在特殊的嵌入式硬件平臺(tái)上。

MiniGUI本身運(yùn)行在多線程模式下,他的許多模塊都以單獨(dú)的線程運(yùn)行,同時(shí),MiniGUI還利用線程來支持多窗口。從本質(zhì)上講,每個(gè)線程有一個(gè)消息隊(duì)列,消息隊(duì)列是實(shí)現(xiàn)線程數(shù)據(jù)交換和同步的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)。一個(gè)線程向消息隊(duì)列中發(fā)送消息,而另一個(gè)線程從這個(gè)消息隊(duì)列中獲取消息,同一個(gè)線程中創(chuàng)建的窗口可共享同一個(gè)消息隊(duì)列。

多線程有一定的好處,但不方便的是不同的線程共享同一個(gè)地址空間,因此,客戶線程可能會(huì)破壞系統(tǒng)服務(wù)器線程的數(shù)據(jù),但有一個(gè)重要的優(yōu)勢(shì)是,由于共享地址空間,線程之間就沒有額外的數(shù)據(jù)復(fù)制開銷。由于MiniGUI是面向嵌入式或?qū)崟r(shí)控制系統(tǒng)的,因此,這種應(yīng)用環(huán)境下的應(yīng)用程序往往具有單一的功能,從而使得采用多線程而非多進(jìn)程模式實(shí)現(xiàn)圖形界面有了一定的實(shí)際意義,也更加符合MiniGUI之“Mini”的特色。

在多線程環(huán)境中,與多進(jìn)程間的通訊機(jī)制類似,線程之間也有交互和同步的需求。比如,用來管理窗口的線程維持全局的窗口列表,而其他線程不能直接修改這些全局的數(shù)據(jù)結(jié)構(gòu),而必須依據(jù)“先來先服務(wù)”的原則,依次處理每個(gè)線程的請(qǐng)求,這就是一般性的C/S模式。MiniGUI利用線程之間的同步操作實(shí)現(xiàn)了客戶線程和服務(wù)器線程之間的微C/S機(jī)制,之所以這樣命名,是因?yàn)榭蛻艉头?wù)器是同一進(jìn)程中的不同線程。

4MiniGUI在雷達(dá)顯示界面上的應(yīng)用

我們自主裁剪了Linux系統(tǒng),并在此基礎(chǔ)上安裝了基于SVGALib圖形引擎的MiniGUI輕量級(jí)圖形用戶界面支持系統(tǒng),基于MiniGUI編寫了圖形用戶界面雷達(dá)終端顯示應(yīng)用程序。

5結(jié)語(yǔ)

嵌入式Linux系統(tǒng)是源代碼開放的一種可裁剪的軟件平臺(tái)系統(tǒng),不存在黑箱技術(shù)。他的小巧、穩(wěn)定、多任務(wù)、可配置、高性能、高可靠性、硬件的良好支持和價(jià)格的優(yōu)勢(shì),尤其網(wǎng)絡(luò)功能的強(qiáng)大,使他迅速成長(zhǎng)發(fā)展,受到廣大開發(fā)人員的青睞。

MiniGUI是國(guó)人自行開發(fā)研制的適合嵌入式系統(tǒng)的輕量級(jí)圖形用戶界面支持系統(tǒng),他采用WIN32體系架構(gòu),提供了完備的多窗口機(jī)制、對(duì)話框和預(yù)定義的控件類,消息傳遞機(jī)制等,大大地簡(jiǎn)化了開發(fā)人員的界面設(shè)計(jì)。

但是,國(guó)產(chǎn)的嵌入式操作系統(tǒng)在技術(shù)含量、兼容性、市場(chǎng)運(yùn)作模式等方面也還有很多工作要做,我們應(yīng)該在跟蹤國(guó)外嵌入式操作系統(tǒng)的最新技術(shù)的同時(shí),堅(jiān)持自主產(chǎn)權(quán),力爭(zhēng)找到自己的突破點(diǎn),探索出一條自己的發(fā)展道路。Linux正提供了一個(gè)這樣的平臺(tái)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉