什麼是xserver和xclient

2021-08-19 17:39:54 字數 1657 閱讀 3314

在xwindows體系中,提供介面顯示,響應外設操作的是xserver,而執行程式業務邏輯,接受xserver發來的各種事件通知的,是xclient。

當xclient和xserver 在同一臺機器上的時候,這種情況下,應用程式呼叫xclient的介面請求xserver為建立視窗,應用程式可以通過xlib庫的過程呼叫請求xserver建立視窗中子元素,例如滑動條,按鈕等。而xserver的作用是提供在螢幕上繪製基礎元素的功能,例如填色,畫線,畫圓等動作,xserver會通過呼叫底層驅動程式完成這些功能。而xclient通過x協議向xserver傳送請求去完成對應的介面操作。

如果從一台

xp上用

reflection

通過xdmcp

登入到一台

linux

伺服器,我們很容易將

reflection

當成客戶端,而將

linux

機器當成伺服器。這就完全搞錯了。理解了

xwindow

的工作原理,這個區別就會很明顯。

x server

不是指某台機器,而是指乙個程序,它負責接受客戶的要求,在螢幕上顯示客戶請求的圖形,並且把訊息

(鍵盤,滑鼠,視窗訊息

)通知客戶程式。

比如上面說的

reflection

,它其實是才是

xserver

,它負責控制那台

xp上的顯示,

linux

機器上的程式,

xterm, xxgdb, dtwm(cde

的視窗管理器),

……是客戶程式。它們通常會使用

tcp 6000

號埠連線

xp,而xp的

6000

號埠是由

reflection

繫結並偵聽的,顯然這裡

reflection

才是xserver

。比如,當你通過

telnet

啟動linux

機器上的

xterm

,就會在

reflection

的螢幕上顯示乙個視窗。實際發生的事情是:

xterm

請求連線xp的

6000

號埠和

reflection

,跟reflection

建立連線,然後

xterm

請求得到資源,然後

xterm

請求在螢幕上顯示乙個視窗。當在

xterm

的視窗裡按下

」a」鍵時,

reflection

會把這個事件通知

xterm

程序,然後

xterm

會傳送資料報,請求

reflection, 「

請在座標

(100,30)

處顯示乙個字母

a,然後在後面顯示乙個矩形作為游標。」這樣

xterm

視窗裡就會多顯示乙個字母。至於

kde和

gnome

,他們是桌面系統不是

xwindow

,他們只是一些執行在

xwindow

上的程式,他們發出要顯示什麼東西的請求,比如要在桌面底部顯示乙個面板、在桌面顯示些圖示。

什麼是 PM,什麼是 SCM,和 NVM 什麼關係

自 近幾年,不論在學術界還是工業界,nvm 都是比較前沿的技術。其實 nvm 一詞並不新,是因為 pm 或稱 scm 這個與 nvm 有關的概念的出現,使得 nvm 這詞又 火 了一把。在近年的相關文獻中,nvm 也經常被和 pm scm 混用,讓人搞不清。本文捋一捋它們之間的關係。準確來說,nvm...

什麼是IoC和DI?什麼是依賴注入和控制反轉?

這東西,簡單一點說得清楚就對了。di dependency injection,依賴注入 依賴注入的概念就是將物件交給spring容器託管,要用的時候由spring容器注入到類中去用,spring是容器通過xml來宣告物件,另外,spring中的dao 資料訪問物件 介面 和dao.impl imp...

iptables之二 什麼是」表「和什麼是」鏈「

前一篇文章,介紹了iptables的基本資訊和資料報過濾原理。雖然已經比較簡單了,但還是有點雲裡霧裡的。那麼這次就從另乙個角度再說一下。先簡單回顧一下,iptalbes主要由 三表五鏈 組成,分別為 表 filter表,nat表,mangle表 鏈 prerouting,input,output,f...