恰當(dāng)選擇嵌入式Linux環(huán)境下的GUI系統(tǒng)
3. MiniGUI和Micro-Windows的比較
MiniGUI和MicroWindows均為自由軟件,但這兩個系統(tǒng)的技術(shù)路線卻有所不同。MiniGUI的策略是建立在比較成熟的圖形引擎之上,比如Svgalib和LibGGI,開發(fā)的重點在于窗口系統(tǒng)、圖形接口之上。而 MicroWindows的開發(fā)重點則在底層的圖形引擎之上,所以可以對裸顯示器直接操作,而窗口系統(tǒng)和圖形接口方面的功能還稍有欠缺。比如說,MiniGUI有一套用來支持多字符集和多編碼的函數(shù)接口,可以支持各種的字符集,包括GB、BIG5、UNI-CODE等,而 MicroWindows在多字符支持上尚沒有統(tǒng)一接口。
鏈接
X Window System的分層架構(gòu)
● X Server
X Window System架構(gòu)上有一項特點是別的GUI系統(tǒng)所沒有的,這個特點就是Client/Server架構(gòu),注意這里和一般我們所熟知的某某服務(wù)器(Server端)跟PC端(Client端)相連接的情形是不同的。惟一類似的是X Window System本身也是采用網(wǎng)路架構(gòu)設(shè)計。具體而簡單一點的說明就是,X Client可以看作我們在X上執(zhí)行的軟件,X Server則是負(fù)責(zé)顯示及傳遞使用者輸入事件(包括鍵盤、鼠標(biāo)等硬件裝置的輸入)。
● Graphic Library
我們可以把一幅圖案想象成有成千上萬個細(xì)微小點所組成,這種小點的單位通常為pixel,在同一平方單位里這些小點數(shù)越高圖案就越清晰、畫質(zhì)就越好,也就是說分辨率或解析率高。事實上我們要設(shè)計的視窗當(dāng)然不可能是這樣一點一點地畫上去的,這樣太過浪費時間,基于這種觀念我們就設(shè)計出高階一點的函數(shù)來幫助我們解決這個繁瑣的步驟,例如各類視窗編程里用到的畫點、畫線、畫矩形、畫圓形、畫不規(guī)則形、上色等函數(shù)。透過這些函數(shù)是的程序設(shè)計者不用去管畫一條線要幾個點以及如何讓顯示器顯示等林林總總低階的工作,我們稱繪圖相關(guān)的一組函數(shù)庫為GUI的基本 Graphic Library。
● Toolkits
有了點、線、面的函數(shù)之后,雖然已經(jīng)去除了大半的重復(fù)無聊工作,但是就開發(fā)視窗程序來說,還是顯得非常沒有效率,怎么辦呢?只有繼續(xù)將構(gòu)成視窗的抽象元件,如按鈕、卷軸、組合框等各類控件抽離出來,重新定義一組更高階的函數(shù)庫,在配合上聯(lián)系的語法函數(shù)就成立Toolkits這類的東西,目前流行的有QT、GTK+等。
● Window Manager
有了Toolkits,我們可以很輕松地建立視窗模塊(X Client),但是每個視窗模塊只負(fù)責(zé)自己模塊內(nèi)的事務(wù),那么不同視窗間的溝通、協(xié)調(diào),例如視窗的切換、放大、縮小等,就沒有模塊管理了,于是視窗管理員(Window Manager)就應(yīng)運而生了。
● Internationalization
國際化通常是我們東方語系國家的人比較關(guān)心的議題,但是很多軟件一開始都由西方國家所主導(dǎo)開發(fā),因此這點常常受到忽略,這個問題牽扯的層面很多,上從語言的顯示、輸入、中止語言習(xí)慣,下到文字位元的處理,完整的解決是必須從頭到腳徹底配合才能達(dá)成,只處理一半都只能說是一個蹩腳的系統(tǒng)。
隨著東方國家使用GUN/Linux的人口越來越多,I18N(i-eighteen- letters-n的縮寫)也日益受到重視,目前底層libc部分已經(jīng)有完整的支持,剩下來便是GUI系統(tǒng)的問題,由于處理雙位元所耗的資源較大,西方國家主導(dǎo)的系統(tǒng)很多情況下,經(jīng)過一些取舍,I18N就被犧牲掉了,整體而言Embedded Linux GUI系統(tǒng)在I18N的程度通常都沒有PC端的好,只有在需求時才會使用。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論