基于嵌入式Linux系統界面的研究

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