嵌入式Linux圖形系統(GUI)快速參考手冊
當你在桌面PC上安裝Linux時,你通常在很少的幾個"標準"的圖形支援元件中選擇。你很可能使用X Windows系統(XFree86或者Xorg)作為顯示介面的基礎(與Linux驅動一起來控制硬體),GNOME或者KDE作為桌面環境,瀏覽器則在FireFox,Konqueror或者Opera等功能全面的幾個瀏覽器中間選擇.
但是,這種典型的桌面Linux"桌面棧"("graphics stack")是不適合於嵌入式Linux應用的.嵌入式裝置通常有著更受限制的資源,在記憶體和儲存空間上對桌面圖形軟體來說,都顯得捉襟見肘。舉個例子,嵌入式裝置通常只有2-16MB的Flash ROM,4-32MB的RAM,但這些典型的桌面圖形元件都是聲名狼藉的資源消耗大戶:
X Window System : 5MB RAM, 16MB disk
GNOME : 14MB RAM, 95MB disk
KDE : 11MB RAM, 96MB disk
Mozilla : 12MB RAM, 26MB disk
這些記憶體需求不僅需要錢來購買,也需要更大的電路板安裝,並且會已經消耗更多的電源。嵌入式系統有著和桌面圖形元件不一樣的需求,他們可能需要不同的定製的外觀風格,控制元件,裝載速度,以及不同尋常的顯示或者輸入裝置。
為了滿足日益增長的嵌入式Linux市場的需求,許多圖形支援專案和產品也層出不窮,目標環境包括---固定裝置便攜裝置 和移動裝置,應用範圍也從 手持消費產品,比如PDA和蜂窩電話(手機),到醫療儀器,工業自動化,以及商業航空座艙顯示。
===開源嵌入式Linux圖形系統軟體===
Dillo -- Dillo 是一個非常小(小於300KB),快速,開源多平臺web瀏覽器,它完全使用C語言寫的,建立於GTK+庫之上Dillo的高效率和對軟體庫非常小的依賴,使得它非常適合於嵌入式應用。Dillo可以同一個嵌入式web伺服器聯合起來,可完全避免使用 視窗管理器。
DirectFB -- DirectFB 是一個非常小的程式庫,它提供給開發者以 圖形硬體加速支援,輸入裝置處理和抽象,整合視窗系統,支援半透明視窗和Linux Framebuffer裝置的多重顯示層 。它是一個完全的硬體抽象層和軟體fallback為每個圖形操作,不支援underlying 硬體。
The Familiar Project 開源的PDA Linux專案,是handhelds.org專案的一個分支,聚集了一個完整的基於Linux的PDA計算平臺的所有關鍵元件。目前的發行版包括:一個基於Blackbox的視窗管理器,Agenda Computing的基於Fltk+的PIM(個人資訊管理)應用程式,一個嵌入式Python實現,系統配置和設定備份工具,OpenSSH客戶端和伺服器,基於Debian的ARM核心。
FBUI -- 非常小的GUI,駐留在linux核心中,FBUI最大的特點就是小,然後就是精煉,再次就是它只是一個driver,第四就是核心驅動,不屬於用於空間。
GGI Project -- “通用圖形介面CGI“工程致力於開發一個快速,穩定,開源的,跨平臺多媒體API系統,完全為嵌入實現系統設計的。GGI是快速,整潔,抽象,動態模組和高度優化。
GPE Palmtop Environment -- 為palmtop/handheld計算機提供一個自由軟體GUI環境,使用X Windows系統和GTK+ widget toolkit
GtkFB -- 從2.0開始,GTK+開始支援直接描繪(render)給Linux Framebuffer而不是X-Windows系統,對資源受到限制嵌入式系統來說,非常好,因為即可利用已有的豐富的基於GTK的應用程式,又可避免X Windows的系統消耗。
handhelds.org PDA support -- 想建立自己獨特的Linux PDA嗎?早些年,Compaq建立了Open Handheld Program。現在iPAQ Linux移植版本可用。
Matchbox -- 小型視窗管理器,為資源受限制的X11-enabled 裝置,比如手持計算機,PDA,機頂盒,消費性電子裝置等顯示大小,外村,CPU頻寬,輸入機制受到限制的裝置。Matchbox包括一個視窗管理器,一個面板,一個桌面,一個共享功能程式庫,一些小的面板應用程式。
Microwindows -- 一個開源專案,將現代圖形視窗環境的特性引入到小型裝置和平臺。MicroWindow能建立在Linux桌面環境,也可跨平臺建立於其他目標裝置。注意:MicroWindows改名為Nano-X,因為MicroSoft Windows的緣故
NxZilla (前身NanoZilla) -- 一套程式庫,允許Mozilla在NanoX伺服器上執行的(NanoX Server來自於Mircrowindows 專案)
OpenGL ES -- 一個輕量級的,無授權費用的嵌入式圖形標準,可為很多嵌入式系統和裝置,提供圖形API輪廓。包括手持無線裝置,汽車和航空顯示裝置,多媒體消費電子裝置,比如高階數字電視,機頂盒,遊戲控制檯。
OpenGUI -- 一個快速的32位的高階C/C++圖形庫和視窗庫/GUI,建立在一個快速的,低階的x86組合語言圖形核心之上。提供原始的2D繪圖能力和事件驅動的視窗API
PicoGUI -- 小巧,可移植的客戶/伺服器 GUI設計,工作在許多不同型別的硬體上,包括手持計算機,像X Windows系統一樣,他有一個彈性的客戶服務端架構。不像X,字型,點陣圖,視窗小部件,以及其他應用程式需要的東西,都是直接建立在伺服器上的。犧牲了一點靈活性,帶來的是速度上的提升和體形的縮小。
Qt/Embedded -- 提供一個全功能的圖形棧(Graphic Stack),從硬體介面到完全的GUI工具。API同流行的Qt/X11和Qt/Windows是一樣,但Qt/Embedded不是基於X11,所以很大程度上減少了記憶體的需求,記憶體需要量,可調整到800KB到3MB (intel x86).Qt/Embedded是一個在GPL開源軟體,也被它的所有者Trolltech以其他License釋出
Simple DirectMedia Layer -- 開源跨平臺的多媒體開發API/程式庫,設計為快速訪問圖形Framebuffer和音訊介面.SDL當前被應用到很多嵌入式Linux實現中,比如MicroWindows.
ViewML -- 一個以嵌入式Linux平臺為目標的的自由的,開源web瀏覽器.目前消耗760KB磁碟,2.1MB RAM
WML Browser -- 由5NINE支援開發的瀏覽器專案,允許無線裝置有WAP功能的.支援多協議棧(WAP 1,2.1,http)
不同的環境用不同的輸入裝置.瀏覽器同Framebuffer一起工作
Xynth Windowing System -- 嵌入式客戶/伺服器視窗系統,提供輕量級的GUI視窗,在基於Linux的嵌入式系統和裝置上.
比如手持裝置和機頂盒.
===商業嵌入式Linux圖形系統軟體===
Access: Netfront browser -->一個嵌入式瀏覽器,為資訊應用系統設計的,需要較少的記憶體和CPU效能.他要求至少1.3M ROm和2MB的RAM,支援完全的HTML 3.2和部分HTML 4.0特性,frames,javascript,cookies,web-printing和多語言.它的模組和可縮放的體系結構允許應用程式模組和外掛來增強.一個獨立的使用者介面層和設計工具允許裝置製造商建立獨特的外觀和風格.
ANT: Freesco browser -- 一個小記憶體footprint的JAVA標準相容的瀏覽器,可使OME廠商快速,簡單設計branded 介面為Internet應用程式.它是平臺獨立的,可同任何硬體和作業系統使用(包括不同的嵌入式Linux實現)
Century Software: PIXIL PDA and Microwindows :一個完整的PDA系統,包括一個操作環境,PIM應用程式,email客戶端,web瀏覽器,一套多媒體應用程式,MicroWindows圖形視窗系統(前面已經介紹過了)是PIXIL PDA 解決方案的核心.
Espial: Espial Suite -- 一個完全的100%的Java 應用層,獨立於裝置棧上層的 作業系統和JVM,包括 Espial DeviceTop 圖形OSGi客戶端,Espial Escape web瀏覽器, Espial Ebox email客戶端, Espial Espresso輕量級工具.
Feynman Software: MiniGUI --一個雙重協議的(GPL或者商業協議)的專案,建立一個小型的視窗系統,支援嵌入式系統和裝置.它提供相應Win32API的視窗管理功能.
Fluffy Spider: FancyPants --- 商業圖形框架,支援,skinning,overlays,fancy 特效.目標是中量級的消費電子和移動裝置比如 POS(Point of Sales/Sevices)系統,機頂盒,行動電話
NetClue: Clue WBC browser -- 一個小型的,模組化的,平臺無關的100% Java瀏覽器.支援Unicode,平滑滾動,流線型分析和顯示,web列印,定製使用者介面,WAP相容,其他特性包括 HTML 4.0 ,XML, HTTP 1.0和1.1 ,CSS, DOM, cookie,javascript,Java Applets.
Swell Software: LinuxPEG -- LinuxPEG是一個嵌入式GUI庫和開發工具,特意為嵌入式系統設計的,LinuxPEG庫,設計為執行在任何Linux 發行版
Trolltech: Qtopia and Qt/Embedded -- Qtopia是一個用於PDA,palmtop計算機和IA(internet appliances)產品的移動裝置視窗環境和應用套件,它基於Qt/Embedded,包括PIM應用程式,Internet客戶端,娛樂和遊戲程式,Qtopia/PDA可使用商業版權或者開源協議,但Qtopia Phone Edition 只能用於商業。