Linux的XServer(轉)

13920081667發表於2016-03-07

Linux的XServer(轉)

(2012-02-15 13:43:56)
var $tag='雜談'; var $tag_code='864126b4b990c65d1a0eb829cbccb4bf'; var $r_quote_bligid='5f5716580100yddd'; var $worldcup='0'; var $worldcupball='0'; 標籤:

雜談

分類: Linux
Moblin Core是在Gnome Mobile的平臺上建立。我以前玩Linux,提交的都和影像沒有關係,連Xwindows都不用啟動,開機後直接進入文字命令列,所以這方面瞭解得很少,需要學習一下,按照管理,進入共產主義網路來尋找答案。

共產地址:

http://402s.blogspot.com/2006/11/guilinux.html

  嚴格來講,Linux這個詞本身只表示Linux核心,但在實際上人們已經習慣了用Linux來形容整個基於Linux核心,並且使用 GNU工程各種工具和資料庫的作業系統(也被稱為GNU/Linux)。基於這些元件的Linux軟體被稱為Linux發行版。一般來講,一個Linux 發行套件包含大量的軟體,比如軟體開發工具,資料庫,Web伺服器(例如Apache),X Window,桌面環境(比如GNOME和KDE),辦公套件(比如OpenOffice.org),等等。GNU元件可以執行於Linux核心之上。整個核心是基於GNU通用公共許可,也就是GPL( General Pubic License)的,但是Linux核心並不是GNU 計劃的一部分。

一、linux本身沒有圖形介面,linux現在的圖形介面的實現只是linux下的應用程式實現的:
圖形介面並不是linux的一部分,linux只是一個基於命令列的作業系統,linux和Xfree的關係就相當於當年的DOS和WINDOWS 3.0 一樣,windows 3.0不是獨立的作業系統,它只是DOS的擴充,是DOS下的應用程式級別的系統,不是獨立的作業系統,同樣XFree只是 linux下的一個應用程式而已。不是系統的一部分,但是X的存在可以方便使用者使用電腦。WINDOWS 95及以後的版本就不一樣了,他們的圖形介面是作業系統的一部分,圖形介面在系統核心中就實現了,沒有了圖形介面windows就不成為windows 了,但linux卻不一樣,沒有圖形介面linux還是linux,很多裝linux的WEB伺服器就根本不裝X伺服器。這也WINDOWS和linux 的重要區別之一。

二,X是協議,不是具體的某個軟體:
  X是協議,就像HTTP協議,IP協議一樣。這個概念 很多初學者甚至學習 LINUX有一定時間的人都混淆,一個基於X的應用程式需要執行並顯示內容時他就聯接到X伺服器,開始用X協議和伺服器交談。比如一個X應用程式要在螢幕上輸出一個圓,X應用程式只負責告訴X伺服器在螢幕的什麼地方用什麼顏色畫一個多大的圓,而具體的"畫"的動作,比如這個圓如何生成,用什麼顯示卡的驅動程式去指揮顯示卡完成等等工作是由X伺服器來完成的。X伺服器還負責捕捉鍵盤和滑鼠的動作,假設X伺服器捕捉到滑鼠的左鍵被按下了,他就告訴X應用程式:親愛的應用程式先生,我發現滑鼠被按下了,您有什麼指示嗎?協議是需要具體的軟體來實現的,這就是下面我要講的:

三,X和XFree86的關係:
有了協議就需要具體的軟體來實現這個協議。Xfree86就是這樣一個去根據法規實現協議的"交警"。實現X協議的軟體也並不只有 XFree86,XFree86只是實現X協議的一個免費X伺服器軟體。商業上常用MOTIF,現在還有XORG,還有很多很小的由愛好者寫的小的X伺服器軟體。甚至可以在WINDOWS上有X伺服器執行,這樣你可以在linux系統上執行一個X應用程式然後在另一臺windows系統上顯示。
在LINUX上最常用的是XFree86(現在的linux發行版都用Xorg了)。蘋果電腦的圖形介面用的也是X協議,而且被認為是做的最好的X協議圖形介面,並且他對X協議的實施是做在系統核心裡的,所以效能明顯好很多,這就是為什麼很多大型三維圖形設計軟體都是在蘋果平臺上的原因。
既然是協議,那麼肯定和平臺無關的,因此可以讓X應用程式顯示在任何裝有X伺服器的遠端計算機上。甚至顯示在裝有Xnest伺服器的windows系統上。只不過在大多數情況下,X應用程式都用本機的X伺服器,然後X伺服器將顯示結果輸出到本機的顯示器。這也是很多人不理解X是一種協議的原因。

四,X和X11R6又是什麼關係?
不知道初學者有沒有注意到/usr/X11R6這個目錄,這是XFree的預設安裝目錄。X11R6 實際上是X Protocol version 11 Release 6(X協議第11版第六次發行)的意思。不同版本的X協議是不能通訊的,不過不用擔心,現在的X伺服器軟體和X應用程式都遵循X11R6。 另外XFree86 3.3.6 XFree86 4.3.6等這些版本是實現X協議的軟體XFree86的版本號。

五,X伺服器和WM(window manager 視窗管理器)之間是什麼關係。
平時大家起動圖形介面是怎麼啟動的呢? 如果一開始就進入圖形介面,可開啟一個XTERM輸入init 3,就可以安全的回到字元介面。
先輸入以下命令: # startx 起動圖形介面,你看到的是一個和平時使用一樣的完整的圖形介面操作環境。你可以最大化,最小化,移動,關閉視窗等。
按ctrl+alt+backspace反回字元介面。輸入:#xinit,再次啟動圖形介面,你看到一個XTERM。而且不能移動。但是你可以在這個XTERM中輸入命令開啟X應用程式,如果我輸入:#mozilla 開啟瀏覽器,你看到的瀏覽器和平時有什麼不同嗎?他在螢幕中間,不能移動,不能最小化,不能最大化,沒有邊框。
為什麼同樣一個X應用程式會有這樣的不同呢?因為我們用startx起動圖形介面的時候同時也啟動了一個WM(即視窗管理器),如果你用KDE就起動了 KDE,如果你用GNOME就起動了GNOME。但是你用xinit起動圖形介面的時候卻沒有起動WM。現在你明白視窗管理器的作用了嗎?他的作用就是最大化,最小化,移動,關閉視窗等。而這些不是X伺服器來負責完成的。
如果你用xinit起動圖形介面並在xterm中輸入twm,看看會有什麼?xterm被加上了一個邊框,你可以透過這個邊框移動,最大化,最小化這個xterm,twm就是XFree86中自帶的視窗管理器,是一個比較簡陋的最簡單的視窗管理器,但是他具有視窗管理器的全部特徵。如果你不輸入twm 而輸入gnome-session就可以起動GNOME 或者輸入startkde起動KDE。

六,關於KDE和GNOME
KDE和GNOME是LINUX裡最常用的圖形介面操作環境,他們不僅僅是一個視窗管理器那麼簡單, KDE是K Desktop Environment的縮寫。他不僅是一個視窗管理器,還有很多配套的應用軟體和方便使用的桌面環境,比如工作列,開始選單,桌面圖示等等。
GNOME是GNU Network Object Model Environment的縮寫。和KDE一樣,也是一個功能強大的綜合環境。
另外在其它UNIX系統中,常常使用CDE作為這樣一個環境。
其它的小型視窗管理器有: window maker,after step,blackbox,fvwm,fvwm2,等等都是常用的優秀視窗管理器。REDHAT9中有window maker 但是預設不安裝,大家可以裝來試試。只要xinit再wmaker & 就可以用windowmaker了。

七,linux圖形介面層次關係總結
  linux本身-->X伺服器<-[透過X協議交談]->視窗管理器(綜合桌面環境)-->X應用程式。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29987527/viewspace-2050293/,如需轉載,請註明出處,否則將追究法律責任。

相關文章