關(guān)于linux圖形界面的基本概念
很多LINUX的初學(xué)者分不清除linux和X之間,X和Xfree86之間,X和KDE,gnome等之間是什么關(guān)系.常?;煜?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/概念">概念,我想以比較易于理解的方式說(shuō)明一下X,X11,XFREE,WM,KDE,GNOME等之間的關(guān)系.由于本人水平有限肯可能存在錯誤,請高手指正.
本文引用地址:http://dyxdggzs.com/article/148500.htm一,linux本身沒(méi)有圖形界面,linux現在的圖形界面的實(shí)現只是linux下的應用程序實(shí)現的.
圖形界面并不是linux的一部分,linux只是一個(gè)基于命令行的操作系統,linux和Xfree的關(guān)系就相當于當年的DOS和 WINDOWS3.0一樣,windows3.0不是獨立的操作系統,它只是DOS的擴充,是DOS下的應用程序級別的系統,不是獨立的操作系統,同樣 XFree只是linux下的一個(gè)應用程序而已.不是系統的一部分,但是X的處在可以方便用戶(hù)使用電腦.WINDOWS95及以后的版本就不一樣了,他們的圖形界面是操作系統的一部分,圖形界面在系統內核中就實(shí)現了,沒(méi)有了圖形界面windows就不成為windows了,但linux卻不一樣,沒(méi)有圖形界面linux還是linux,很多裝linux的WEB服務(wù)器就根本不裝X服務(wù)器.這也WINDOWS和linux的重要區別之一.
二,X是協(xié)議,不是具體的某個(gè)軟件:
X是協(xié)議,就像HTTP協(xié)議,IP協(xié)議一樣,這個(gè)概念很多初學(xué)者甚至學(xué)習LINUX有一定時(shí)間的人都混淆,一個(gè)基于X的應用程序需要運行并顯示內容時(shí)他就聯(lián)接到X服務(wù)器,開(kāi)始用X協(xié)議和服務(wù)器交談.比如一個(gè)X應用程序要在屏幕上輸出一個(gè)圓那么他就用X協(xié)議對X服務(wù)器說(shuō):喂!我需要在屏幕上畫(huà)一個(gè)圓.X應用程序只負責告訴X服務(wù)器在屏幕的什么地方用什么顏色畫(huà)一個(gè)多大的圓,而具體的畫(huà)的動(dòng)作,比如這個(gè)圓如何生成,用什么顯卡的驅動(dòng)程序去指揮顯卡完成等等工作是由X服務(wù)器來(lái)完成的.X服務(wù)器還負責捕捉鍵盤(pán)和鼠標的動(dòng)作,假設X服務(wù)器捕捉到鼠標的左鍵被按下了,他就告訴X應用程序:親愛(ài)的應用程序先生,我發(fā)現鼠標被按下了,您有什么指示嗎?
如果X應用程序被設計成當按下鼠標左健后再在屏幕上畫(huà)一個(gè)正方形的話(huà),X應用程序就對X服務(wù)器說(shuō):請再畫(huà)一個(gè)正方形,當然他會(huì )告訴服務(wù)器在什么地方用什么顏色畫(huà)多大的正方形,但不關(guān)心具體怎么畫(huà)--那是服務(wù)器的事情.
那么協(xié)議是需要具體的軟件來(lái)實(shí)現的,這就是下面我要講的:
三,X和XFree86的關(guān)系.
有了協(xié)議就需要具體的軟件來(lái)實(shí)現這個(gè)協(xié)議.就好比我們有了交通法規就需要交警去根據法規維護交通秩序一樣.XFree86就是這樣一個(gè)去根據法規實(shí)現協(xié)議的交警.他按照X協(xié)議的規定來(lái)完成X應用程序提交的在屏幕上顯示的任務(wù).當然不僅僅是某個(gè)特定的交警才可以去維護和實(shí)現這個(gè)法規,比如還可以由交通協(xié)管員來(lái)實(shí)現交通法規,必要的時(shí)候警察也可以介入,當然前提是他們都要懂得交通法規,也就是要懂得協(xié)議.所以實(shí)現X協(xié)議的軟件也并不只有 XFree86,XFree86只是實(shí)現X協(xié)議的一個(gè)免費X服務(wù)器軟件.
商業(yè)上常用MOTIF,現在還有XORG,還有很多很小的由愛(ài)號者寫(xiě)的小的X服務(wù)器軟件.甚至可以在WINDOWS上有X服務(wù)器運行,這樣你可以在linux系統上運行一個(gè)X應用程序然后在另一臺windows系統上顯示.多么神氣.你可以用google找到這樣的X服務(wù)器軟件.
只不過(guò)在LINUX上最常用的是XFree86.順便說(shuō)一句,蘋(píng)果電腦的圖形界面用的也是X協(xié)議,而且被認為是做的最好的X協(xié)議圖形界面,并且他對X協(xié)議的實(shí)施是做在系統內核里的,所以性能明顯好很多,這就是為什么很多大型三維圖形設計軟件都是在蘋(píng)果平臺上的原因.
為了便于理解拿HTTP協(xié)議來(lái)比較:
協(xié)議是HTTP (hyper text transmissiON protocol)
實(shí)現這個(gè)協(xié)議的常用服務(wù)器有:apache IIS 等
請求這些服務(wù)器傳輸文件的客戶(hù)有:IE ,MOZILLA ,NETSCAPE等.
四,X和X11R6又是什么關(guān)系?
不知道初學(xué)者有沒(méi)有注意到/usr/X11R6這個(gè)目錄,這是XFree的默認安裝目錄
X11R6 實(shí)際上是 X Protocol version 11 Release 6
(X協(xié)議第11版第六次發(fā)行)的意思,就是說(shuō)目前用的X協(xié)議是第11版的,然后經(jīng)過(guò)了6次小的修正.不同版本的X協(xié)議是不能通信的.就象我們現在IPV4和IPV6不能通信一樣,不過(guò)不用擔心,現在的X服務(wù)器軟件和X應用程序都遵循X11R6.
另外XFree86 3.3.6 XFree8*.3.6 等這些版本是實(shí)現X協(xié)議的軟件XFree86的版本號.這是初學(xué)者經(jīng)常高混淆的概念.
協(xié)議版本和實(shí)現協(xié)議的軟件的版本--這兩個(gè)概念的區別你分清除了嗎?
五,X服務(wù)器和WM(window manager 窗口管理器)之間是什么關(guān)系.
平時(shí)大家起動(dòng)圖形界面是怎么啟動(dòng)的呢?
如果你是一開(kāi)己就進(jìn)入圖形界面那就太遺憾了.應為你錯過(guò)了了解X服務(wù)器起動(dòng)過(guò)程的好時(shí)機.不過(guò)沒(méi)關(guān)系.你打開(kāi)一個(gè)XTERM輸入:
init 3
就可以安全的回到字符界面.
好了,等做完以下實(shí)驗你就完全明白X和WM(window manager 窗口管理器)之間是什么關(guān)系了.
先輸入以下命令:
#startx
起動(dòng)圖形界面,你看到的是一個(gè)和平時(shí)使用一樣的完整的圖形界面操作環(huán)境.
你可以最大化,最小化,移動(dòng),關(guān)閉窗口等.
按ctrl+alt+backspace反回字符界面.
輸入:
#xinit
再次啟動(dòng)圖形界面,你看到了什么,你看到一個(gè)XTERM.而且不能移動(dòng).但是你可以在這個(gè)XTERM中輸入命令打開(kāi)X應用程序,如故我輸入:
#mozilla
打開(kāi)瀏覽器,你看到的瀏覽器和平時(shí)有什么不同嗎?他在屏幕中間,不能移動(dòng),不能最小化,不能最大化,沒(méi)有邊框.
為什么同樣一個(gè)X應用程序會(huì )有這樣的不通呢?因為我們用startx起動(dòng)圖形界面的時(shí)候同時(shí)也啟動(dòng)了一個(gè)WM(即窗口管理器),如果你用KDE就起動(dòng)了KDE,如果你用GNOME就起動(dòng)了GNOME.但是你用xinit起動(dòng)圖形界面的時(shí)候卻沒(méi)有起動(dòng)WM.
現在你明白窗口管理器的作用了嗎?他的作用就是最大化,最小化,移動(dòng),關(guān)閉窗口等.而這些不是X服務(wù)器來(lái)負責完成的.
如果你用xinit起動(dòng)圖形界面并在xterm中輸入twm,看看會(huì )有什么?
xterm被加上了一個(gè)邊框,你可以通過(guò)這個(gè)邊框移動(dòng),最大化,最小化這個(gè)xterm,twm就是XFree86中自帶的窗口管理器,是一個(gè)比較簡(jiǎn)陋的最簡(jiǎn)單的窗口管理器,但是他具有窗口管理器的全部特征.
如果你不輸入twm而輸入gnome-session就可以起動(dòng)GNOME
或者輸入startkde起動(dòng)KDE.
通過(guò)以上的實(shí)驗你就可以清楚的明白他們之間的關(guān)系.
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)linux相關(guān)文章:linux教程
評論