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協 議圖形界面,並且他對X協議的實施是做在系統內核里的,所以性能明顯好很多,這就是為什么很多大型三維圖形設計軟件都是在蘋果平台上的原因。
既然是協議,那么肯定和平台無關的,因此可以讓X應用程序顯示在任何裝有X服務器的遠程計算機上。甚至顯示在裝有Xnest服務器的windows系 統上。只不過在大多數情況下,X應用程序都用本機的X服務器,然后X服務器將顯示結果輸出到本機的顯示器。這也是很多人不理解X是一種協議的原因。
linux圖形界面又稱x系統,其主要包含如下幾個部分:
a)xserver
b)顯示管理器(Display Manager) 例如(gdm kdm xdm等)
c)窗口管理器(Window Manager) 例如(metacity ,fluxbox等)
d)DM 和 WM之上的一些圖形應用程序
在使用中一般都是b,c,d三者集合起來構成一個完整的集成工作環境,例如KDE ,GNOME等,這就是我們平時所說的廣義上的xclient
a)xserver 主要提供基本的顯示接口共xclient使用,並將用戶的操作等也反映給xclient,是xclient與硬件的一個中間層。xserver相關的兩個主要部分是
(1) xorg.conf
xorg.conf是X Server的主要配置文件,它包含一個當前系統的硬件資源列表。X Server就是根據這些硬件資源“組織”出基本的圖形能力。xorg.conf文件在/etc/X11/xorg.conf,主要包含幾個字段:
Files: X系統使用的字體存放目錄(字體的具體使用由FontConfig工具主持)
InputDevice: 輸入設備,如鍵盤鼠標的信息
Monitor: 顯示器的設置,如分辨率,刷新率等
Device: 顯示卡信息
Screen: 由Monitor和Device組裝成一個Screen,表示由它們向這個Screen提供輸出能力
ServerLayout: 將一個Screen和InputDevice組裝成一個ServerLayout,在具有多個顯示設備的系統中,可能有多個Screen和多個ServerLayout,用以實現不同的硬件搭配。
在最近的xorg版本中,X Server已經開始自動偵測硬件,現在的xorg.conf已經都成了默認名稱。具體細節還待查,但基本原理還是不變的。
(2) X session(X會話)
X session是指X server啟動后直到X server關閉之間的這段時間。這期間一切跟X相關的動作都屬於X session的內容。管理X session的程序稱為Display Manager,常聽說的gdm或kdm就是gnome/kde所分別對應的Display Manager。
開啟一個X session,也就是開始了圖形界面的使用。在開啟的過程中,Display Manager會對用戶進行認證(也就是用戶名密碼的輸入),運行事先設置好的程序(比如scim輸入法就是這個時候啟動的)等等。
這個開啟過程要執行的一系列操作都可以在/etc/X11/Xsession以及/etc/X11/Xsession.d/目錄下看到,其他還有一些配置文件如Xsession.options, Xresource等,都是執行的X session的初始化過程。仔細閱讀這些腳本或配置文件,可以幫助你更好地理解X
b)Display Manager
上面說過,Display Manager(后簡稱DM)是管理X session的程序,常見的有gdm, kdm, xdm等。對於默認進入X界面的Linux系統,必須將DM程序在開機時執行,即:/etc/rc2.d/S13gdm。下面我們從手工啟動X的過程,看一下DM為我們做了哪些工作。
如果沒有設置DM在開機時運行的話,手動啟動X使用startx命令。man startx
可以知道,startx的作用可以看作是Display Manager的一種隱性實現。它使用xinit命令,分別根據/etc/X11/xinit/xinitrc和/etc/X11/xinit/xserverrc中所指定的設置喚起X。
其中,xserverrc執行X server的運行任務;xinitrc則運行Xsession命令。從/etc/X11/Xsession腳本的內容可以看出,它也就是進入/etc /X11/Xsession.d/目錄輪詢地執行所有腳本。很明顯,這些也就是前面所說的Xsession初始化工作。
綜合起來說,Display Manager完成三個任務:1, X Server的啟動; 2, X session的初始化; 3, X session的管理。
c)Window Manager
X Server提供了基本的圖形顯示能力。然而具體怎么繪制應用程序的界面,卻是要由應用程序自己解決的。而Window Manager(桌面管理器,后簡稱WM)就是用來提供統一的GUI組件的(窗口、外框、菜單、按鈕等)。否則,應用程序們各自為政,既增加了程序開發的負擔,不統一的桌面風格對視覺也是不小的挑戰。
WM的啟動由DM控制,在gdm的登錄窗口,我們可以進行選擇。常見的WM有:Metacity(Gnome默認的WM), fluxbox, fvwm, E17等。
d)X Clients
最后,就是X Client了。X客戶端程序,顧名思義,就是使用X服務的程序。firefox,gedit等等都屬於X Client程序。X Client部分值得考慮一下的就是DISPLAY環境變量。它主要用於遠程X Client的使用。該變量表示輸出目的地的位置,由三個要素組成:
[host]:display[.screen]
host指網絡上遠程主機的名稱,可以是主機名、IP地址等。默認的host是本地系統,你可以在自己系統上echo $DISPLAY看一下。
display和screen分別代表輸出畫面的編號和屏幕的編號。具體細節由於硬件的缺乏,還有待進一步研究。
獨立安裝x window所需要的每一個包
yum install xorg-x11-server-Xorg
yum install xorg-x11-server-utils
yum install xorg-x11-utils
yum install xorg-x11-xinit
yum install xorg-x11-apps
yum install xorg-x11-twm
yum install xterm
xorg-x11-drv-fbdev-0.4.3-2.el6.x86_64
xorg-x11-drv-intel-2.21.12-2.el6.x86_64
組合安裝x window
yum groupinstall "X Window System"
yum groupinstall GNOME Desktop Environment
yum groupinstall KDE Desktop Environment
安裝完畢后,執行startx,即可進行X window(KDE)。
