在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...