<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

理解 Xwindow

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

很多人在用,但是他們是在用一些包裝掩蓋下的,那些包裝有些很不穩定,占用大量資源,以至于有人說(shuō) 是垃圾。其實(shí) Xwindow 是一個(gè)非常出色的圖形系統,你應該抱怨的是那些不穩定的包裝,而不是 Xwindow 本身。

本文引用地址:http://dyxdggzs.com/article/201609/304104.htm

Xwindow 是非常巧妙的設計,很多時(shí)候它在概念上比其它窗口系統先進(jìn),以至于經(jīng)過(guò)很多年它仍然是工作站上的工業(yè)標準。許多其它窗口系統的概念都是從 Xwindow 學(xué)來(lái)的。

Xwindow 可以說(shuō)的東西太多了。下面只分辨一些容易混淆的概念,提出一些正確使用它的建議。

分辨 X server 和 X client

這是我被別人問(wèn)了好多次的問(wèn)題,我實(shí)在不想再對人說(shuō)一遍了,所以寫(xiě)在這里偷個(gè)懶,嘿嘿。

很多熟悉 Internet 原理的人首次遇到 Xwindow 的這兩個(gè)概念都會(huì )搞錯。如果他從一臺 Windows 機器上使用 Exceed 通過(guò) XDMCP 登錄到一臺 Sun 服務(wù)器,他就說(shuō) Exceed 是客戶(hù)端(client),而 Sun 機器是服務(wù)器 (server)。這就完全搞錯了。

理解了 Xwindow 的工作原理,這個(gè)區別就會(huì )很明顯。X server 不是指你登錄的那臺機器,而是指一個(gè)程序,它負責在某臺機器上接受客戶(hù)的要求,在屏幕上顯示客戶(hù)請求的圖形,并且把消息(鍵盤(pán),鼠標,窗口消息)通知客戶(hù)程序。

比如上面例子里的 Exceed 就是一個(gè) X server,它負責控制那臺 Windows 機器上的顯示(display),Sun 機器上的程序,xterm, xxgdb, dtwm(CDE的窗口管理器),……是客戶(hù)程序。它們通常會(huì )使用 TCP 6000 號端口連接 Windows 機器,而Windows機器的 6000 號端口是由 Exceed bind 和 listen 的,怎么樣,我們的 Internet 專(zhuān)家,Exceed 看起來(lái)是一個(gè) server 吧 :)

比如,當你通過(guò) telnet 啟動(dòng) Sun 機器上的 xterm,就會(huì )在 Exceed 的屏幕上顯示一個(gè)窗口。實(shí)際發(fā)生的事情是: xterm 請求連接 Windows 機器的 6000 號端口,與Exceed 跟 Exceed 連接,然后xterm請求得到資源,然后 xterm 請求在屏幕上顯示一個(gè)窗口。

你在 xterm 的窗口里按下A鍵時(shí),Exceed 會(huì )把這個(gè)事件通知 xterm 進(jìn)程,然后 xterm 會(huì )發(fā)送數據報,請求 Exceed, “請在坐標(100,30)處顯示一個(gè)字母A,然后在后面顯示一個(gè)矩形作為光標。”,這樣你的 xterm 窗口里就會(huì )多顯示一個(gè)字母。

這下你理解了嗎?不?那還是自己多用用,體會(huì )體會(huì )吧。

Xwindow 的網(wǎng)絡(luò )透明性

剛才那個(gè) Exceed 用戶(hù),他的客戶(hù)程序不僅可以運行在那臺 Sun 機器上,而且可以運行在網(wǎng)絡(luò )里其它的機器上,或者在本機上。比如他有可能同時(shí)通過(guò) telnet 登錄到幾臺 Sun 工作站,幾臺 Linux PC,他可以在那些機器上都起動(dòng) xterm,在這臺 Windows 機器上的 Exceed 上顯示。如果它安裝了 cygwin,他還可以啟動(dòng)本機上的 cygwin里 的 xterm,用同樣的方式顯示。

如果他使用 xrdb 在本機的 Exceed 設置了 xterm 的樣式,比如背景 midnightblue, 前景 白色,字體 -*- adobe-courier-*,……,那么,Sun, Linux, cygwin 里的 xterm,雖然沒(méi)有經(jīng)過(guò)配置,但是它們知道:“這個(gè) X server 要求我用這個(gè)背景色,這個(gè)前景色,這個(gè)字體……”,它們會(huì )在你的屏幕上顯示同樣風(fēng)格的窗口。

使用鼠標選擇一段字符,然后就可以在另外的程序里按鼠標中間,把字符粘貼過(guò)去。不論這個(gè)程序運行在哪里。

看看更大的一個(gè)圖景:你的屏幕上有三臺機器上的 xterm, 兩臺機器上的 gvim,兩臺機器上的 mozilla 在顯示,而它們都受本機的 FVWM 操縱,它們之間可以隨意進(jìn)行拷貝粘貼…… 從這里你可以初步體會(huì )到 Xwindow 的網(wǎng)絡(luò )透明性,它使你方便的操作很多機器。

什么是窗口管理器?

很多人不知道窗口管理器是怎么回事。他們認為 Gnome 和 KDE 是窗口管理器,認為窗口管理器就是能夠提供一個(gè)工具條,能夠配置桌面背景,能夠設置很多菜單的東西。而其實(shí),窗口管理器只是 Gnome 和 KDE 的一部分,它的主要功能是你平時(shí)根本沒(méi)有注意,但是卻非常重要的操作。窗口管理器的主要功能是:移動(dòng)窗口,改變窗口大小,圖標化(最小化)窗口,改變窗口層疊順序……

通常的X客戶(hù)程序不需要知道有人想移動(dòng)它,它只知道乖乖聽(tīng)窗口管理器的話(huà)。如果沒(méi)有窗口管理器運行,你的程序會(huì )一個(gè)堆一個(gè),你沒(méi)有辦法操縱被蓋在下面的程序,你只能使用最上面一個(gè)程序,而且你不能移動(dòng)它,你不能改變它的大小。這樣的系統根本不能用!

其實(shí)你的窗口上的標題,按鈕,漂亮的邊框,全都是窗口管理器提供的,而不是程序自己的,這樣你用窗口管理器就能改變任何窗口的樣式了。當你點(diǎn)擊關(guān)閉窗口的那個(gè)按鈕,你其實(shí)點(diǎn)擊的是窗口管理器放在你的程序窗口上面的一個(gè)小窗口,發(fā)現它受到點(diǎn)擊后,窗口管理器就會(huì )通知那個(gè)程序:“喂!有人想關(guān)掉你,你自己準備準備后事,然后退出吧。”

不同的機器在本機顯示的窗口,由窗口管理器統一裝飾和指揮。比如,窗口管理器決定: xterm 窗口上面都應該有四個(gè)按鈕,一個(gè)在左邊,點(diǎn)擊它會(huì )顯示窗口操作菜單,另外三個(gè)在右邊,分別是最大化,最小化和關(guān)閉。窗口都使用 7pixel 厚的邊框,窗口首次出現的時(shí)候首先在桌面上找一個(gè)空位置,如果找不到,就找一個(gè)能夠最少的遮蓋其它窗口的位置……

這些都是窗口管理器的職責。

Gnome 和 KDE 是什么?

有人把 Gnome 和 KDE 叫做窗口管理器,甚至還有人把它們叫做 Xwindow。經(jīng)??吹接腥藛?wèn):“裝哪種 Xwindow 好啊?Gnome 還是 KDE?” 其實(shí)你不安裝 Gnome 和 KDE 也可以使用 Xwindow.

Gnome 和 KDE 是“桌面系統”,一種很多程序和函數庫的集合。它們的設計目的是提供一致的方便的操作方式來(lái)滿(mǎn)足普通用戶(hù)的需要。它們不但包含窗口管理器,還有很多實(shí)用程序和應用程序,比如配置程序,工具條,編輯器,繪圖工具…… 其實(shí) Gnome 可以和很多窗口管理器合作,在歷史上, Gnome 使用過(guò)的窗口管理器包括 englightenment, sawmill, sawfish, metacity。KDE 的窗口管理器叫做 kwin。

你也知道,設計整整一套應用程序:編輯器,繪圖程序,瀏覽器,…… 是非常不容易的。所以它們肯定是不如專(zhuān)用的編輯器,繪圖程序,瀏覽器的。不過(guò)要求不太高的用戶(hù)也可以用它們。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: Xwindow

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>