很多LINUX的初學(xué)者分不清除linux和X之間,X和Xfree86之間,X和KDE,gnome等之間是什么關(guān)系.常常混淆概念,我想以比較易于理解的方式說(shuō)明一下X,X11,XFREE,WM,KDE,GNOME等之間的關(guān)系.由于本人水平有限肯可能存在錯(cuò)誤,請(qǐng)高手指正.
一 linux本身沒(méi)有圖形界面,linux現(xiàn)在的圖形界面的實(shí)現(xiàn)只是linux下的應(yīng)用程序?qū)崿F(xiàn)的.
圖形界面并不是linux的一部分,linux只是一個(gè)基于命令行的操作系統(tǒng),linux和Xfree的關(guān)系就相當(dāng)于當(dāng)年的DOS和WINDOWS3.0一樣,windows3.0不是獨(dú)立的操作系統(tǒng),它只是DOS的擴(kuò)充,是DOS下的應(yīng)用程序級(jí)別的系統(tǒng),不是獨(dú)立的操作系統(tǒng),同樣X(jué)Free只是linux下的一個(gè)應(yīng)用程序而已.不是系統(tǒng)的一部分,但是X的處在可以方便用戶使用電腦.WINDOWS95及以后的版本就不一樣了,他們的圖形界面是操作系統(tǒng)的一部分,圖形界面在系統(tǒng)內(nèi)核中就實(shí)現(xiàn)了,沒(méi)有了圖形界面windows就不成為windows了,但linux卻不一樣,沒(méi)有圖形界面linux還是linux,很多裝linux的WEB服務(wù)器就根本不裝X服務(wù)器.這也WINDOWS和linux的重要區(qū)別之一.
二 X是協(xié)議,不是具體的某個(gè)軟件:
X是協(xié)議,就像HTTP協(xié)議,IP協(xié)議一樣,這個(gè)概念很多初學(xué)者甚至學(xué)習(xí)LINUX有一定時(shí)間的人都混淆,一個(gè)基于X的應(yīng)用程序需要運(yùn)行并顯示內(nèi)容時(shí)他就聯(lián)接到X服務(wù)器,開(kāi)始用X協(xié)議和服務(wù)器交談.比如一個(gè)X應(yīng)用程序要在屏幕上輸出一個(gè)圓那么他就用X協(xié)議對(duì)X服務(wù)器說(shuō):喂!我需要在屏幕上畫(huà)一個(gè)圓.X應(yīng)用程序只負(fù)責(zé)告訴X服務(wù)器在屏幕的什么地方用什么顏色畫(huà)一個(gè)多大的圓,而具體的"畫(huà)"的動(dòng)作,比如這個(gè)圓如何生成,用什么顯卡的驅(qū)動(dòng)程序去指揮顯卡完成等等工作是由X服務(wù)器來(lái)完成的.X服務(wù)器還負(fù)責(zé)捕捉鍵盤(pán)和鼠標(biāo)的動(dòng)作,假設(shè)X服務(wù)器捕捉到鼠標(biāo)的左鍵被按下了,他就告訴X應(yīng)用程序:親愛(ài)的應(yīng)用程序先生,我發(fā)現(xiàn)鼠標(biāo)被按下了,您有什么指示嗎?
如果X應(yīng)用程序被設(shè)計(jì)成當(dāng)按下鼠標(biāo)左健后再在屏幕上畫(huà)一個(gè)正方形的話,X應(yīng)用程序就對(duì)X服務(wù)器說(shuō):請(qǐng)?jiān)佼?huà)一個(gè)正方形,當(dāng)然他會(huì)告訴服務(wù)器在什么地方用什么顏色畫(huà)多大的正方形,但不關(guān)心具體怎么畫(huà)--那是服務(wù)器的事情.
那么協(xié)議是需要具體的軟件來(lái)實(shí)現(xiàn)的,這就是下面我要講的: