Linux的X視窗系統結構說明

來源:互聯網
上載者:User
一、說明
以X Server為中心,簡要地分為四層,

二、X方式與Framebuffer方式的差異

1. X方式

1) 什麼是X
我們常說的X Window,X,X11(指X協議的11版本)一般指X協議,或指是基於X協議的X服務端程式(X Server)

2) X Server與X Client

a) X協議指X Server及X Client組成的c/s架構,及其通訊協議的實現

b) X Server有主事件迴圈,由它來處理使用者輸入、顯示及與X Client通訊

c) X Client即X案頭上啟動並執行普通應用程式
應用程式如果想顯示資料,需要利用X Lib庫建立X視窗(X Client),它通過X協議與X Server通訊,讓X Server完成顯示;X Server會把接到鍵盤滑鼠事件,傳給焦點所在的X Client處理

2. Framebuffer方式
Framebuffer方式相對簡單,它由核心直接支援,通常用於嵌入式系統。應用程式可以得到螢幕顯示地區的指標,然後對其寫資料來進行顯示,其中視窗的概念不強,它自身不帶視窗管理,需要應用軟體自己管理視窗。比如qtopia基本於framebuffer顯示時,qtopia自身實現了視窗管理功能

3. 應用程式的顯示方式
很多應用程式同時支援X和Framebuffer兩種模式顯示,如gtk,qt等,以下我們只討論它基本於X實現的部分

三、分層

1. 應用程式層(Application)
指X Window上運行所有帶圖形介面的應用程式,每個視窗都是一個X Client

1) X Lib app
直接使用X函數的應用程式,這種程式一般介面簡單,比較底層,比如很多視窗管理器直接寫在這層

2) Gtk app
gtk又分為gtk和gdk兩層,
gtk為控制項及主迴圈的實現
gdk相對底層,控制底層繪圖部分,它支援framebuffer、X11、DirectFb等
應用程式可調用gtk函數,也可直接調用gdk函數
gtk常和cairo一起實現二維特效

3) Qt app
Qt也通過調用X Lib實現圖形介面
Qt的優勢在於它是C++實現的,使用起來程式結構更好,也有較成熟的嵌入式版本

4) SDL app
SDL也通過調用X Lib實現圖形介面
SDL更底層,代碼少,沒有控制項,但做特殊效果很好用

2. 視窗管理器層(Window manager簡稱wm)
Window manager是特殊的X Client,也通過X Lib庫與X Server互動,與一般應用不同的是:它負責控制各個視窗的動作,及操作主視窗
WM的功能分為管理(manager)和工具(tools),

1) Manager
負責各個視窗的建立銷毀/顯示隱藏/最大最小化/移動縮放,管理視窗隊列,設定焦點視窗,視窗轉場效果等

2) Tools
實現案頭工具條,案頭菜單等基本介面及小工具

3) 具體實現
實現通常有兩種方式:一種是manager和tools在一個程式中實現,一種是分開兩個程式實現,使用時可以隨意組合

a) qvwm, blackbox等較早期的wm,都是manager和tools在一個程式中實現的

b)
xfce、metacity等是分開的,例如:xfce包含tools和manager,但不在一個程式中實現,它的manager是xfwm,我們可在使用xfce時把xfwm替成metacity(metacity是一個manager,不帶tools)

3. X伺服器層(X Server)
主迴圈控制顯示,讀取裝置資料,與X Client通訊,事件迴圈,並把事件送給焦點視窗

1) 普通X Server
功能完整的X Server,代碼量大,支援全,常見的如XFree86,Xorg等

2) Tiny X Server
一般用於嵌入式系統,資源佔用小,代碼少,功能及邏輯相對簡單,如KDrive(Xvesa/Xchips/Xfbdev/Xi810……)

4. 系統底層(System)

1) Kernel
與硬體互動,獲得輸入裝置的資料,向顯示裝置輸出

2) Dev
檔案系統中的裝置檔案,程式通過對它的讀寫和操作與kernel互動,控制硬體

3) 中介層
在程式和Dev層之間,有時還需要庫或程式處理裝置資料,比如觸控螢幕就使用libts去除噪點,過濾出更有效資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.