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