基于嵌入式Linux系統(tǒng)界面的研究
利用GAL和IAL,大大提高了MiniGUI的可移植性,并且使程序的開發(fā)和調(diào)試變得更加容易??梢栽赬Window上開發(fā)和調(diào)試自己的MiniGUI程序,通過重新編譯就可以讓MiniGUI應(yīng)用程序運行在特殊的嵌入式硬件平臺上。
MiniGUI本身運行在多線程模式下,他的許多模塊都以單獨的線程運行,同時,MiniGUI還利用線程來支持多窗口。從本質(zhì)上講,每個線程有一個消息隊列,消息隊列是實現(xiàn)線程數(shù)據(jù)交換和同步的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)。一個線程向消息隊列中發(fā)送消息,而另一個線程從這個消息隊列中獲取消息,同一個線程中創(chuàng)建的窗口可共享同一個消息隊列。
多線程有一定的好處,但不方便的是不同的線程共享同一個地址空間,因此,客戶線程可能會破壞系統(tǒng)服務(wù)器線程的數(shù)據(jù),但有一個重要的優(yōu)勢是,由于共享地址空間,線程之間就沒有額外的數(shù)據(jù)復(fù)制開銷。由于MiniGUI是面向嵌入式或?qū)崟r控制系統(tǒng)的,因此,這種應(yīng)用環(huán)境下的應(yīng)用程序往往具有單一的功能,從而使得采用多線程而非多進程模式實現(xiàn)圖形界面有了一定的實際意義,也更加符合MiniGUI之“Mini”的特色。
在多線程環(huán)境中,與多進程間的通訊機制類似,線程之間也有交互和同步的需求。比如,用來管理窗口的線程維持全局的窗口列表,而其他線程不能直接修改這些全局的數(shù)據(jù)結(jié)構(gòu),而必須依據(jù)“先來先服務(wù)”的原則,依次處理每個線程的請求,這就是一般性的C/S模式。MiniGUI利用線程之間的同步操作實現(xiàn)了客戶線程和服務(wù)器線程之間的微C/S機制,之所以這樣命名,是因為客戶和服務(wù)器是同一進程中的不同線程。
4MiniGUI在雷達顯示界面上的應(yīng)用
我們自主裁剪了Linux系統(tǒng),并在此基礎(chǔ)上安裝了基于SVGALib圖形引擎的MiniGUI輕量級圖形用戶界面支持系統(tǒng),基于MiniGUI編寫了圖形用戶界面雷達終端顯示應(yīng)用程序。
5結(jié)語
嵌入式Linux系統(tǒng)是源代碼開放的一種可裁剪的軟件平臺系統(tǒng),不存在黑箱技術(shù)。他的小巧、穩(wěn)定、多任務(wù)、可配置、高性能、高可靠性、硬件的良好支持和價格的優(yōu)勢,尤其網(wǎng)絡(luò)功能的強大,使他迅速成長發(fā)展,受到廣大開發(fā)人員的青睞。
MiniGUI是國人自行開發(fā)研制的適合嵌入式系統(tǒng)的輕量級圖形用戶界面支持系統(tǒng),他采用WIN32體系架構(gòu),提供了完備的多窗口機制、對話框和預(yù)定義的控件類,消息傳遞機制等,大大地簡化了開發(fā)人員的界面設(shè)計。
但是,國產(chǎn)的嵌入式操作系統(tǒng)在技術(shù)含量、兼容性、市場運作模式等方面也還有很多工作要做,我們應(yīng)該在跟蹤國外嵌入式操作系統(tǒng)的最新技術(shù)的同時,堅持自主產(chǎn)權(quán),力爭找到自己的突破點,探索出一條自己的發(fā)展道路。Linux正提供了一個這樣的平臺。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論