網誌存檔

2010年11月18日 星期四

「轉貼來源-http://xy0811.spaces.live.com/default.aspx」xserver

任何一個X應用程序,包括WM在內都是XClient; XClient不負責任何圖形相關的具體操作,只和xserver交互,由xserver負責完成其圖形顯示任務,這種交互一般來說是通過在底層調用xlib實現的; Xclient的核心任務是計算和數據處理。

對XServer的理解

1. XServer/XClient通過X協議交互, 而X協議就是一套基於socket的通信
2. XServer啟動時初始化socket, 並進入Select循環,
等socket連接(多個連接時形成client隊列), 鍵鼠等
3. XClient啟動時連接該socket, 與XServer建立起一個通道,
然後任何圖形相關的操作都通過XServer實現
4. 好處在於: 多個XClient同時運行時, 在XServer之上可做互斥, 共享, 疊加等


linux的一個瀏覽器是這樣實現的:
1. XServer: 圖形顯示, 根據XClient的控制顯示(見nano-X)
2. Xlib: 對XServer提供功能的封裝, 供XClient調用,
底層通過socket和XServer交互(見xcblib)
3. WindowManager: 控制各應用窗口之間關係
4. gtk庫: 控件, 及消息處理
5. 瀏覽器程序

沒有留言:

張貼留言