一、linux圖形界面的實現只是linux下的應用程序實現
圖形界面(GUI)並不是linux的一部分,linux只是一個基於命令行的操作系統,linux和Xfree的關系就相當於當年的DOS和Windows 3.0一樣,Windows 3.0不是獨立的操作系統,它只是DOS的擴充,是DOS下的應用程序級別(GUI)的系統,不是獨立的操作系統。同樣XFree只是linux下的一個應用程序而已,不是系統的一部分,但是X的存在可以方便用戶使用電腦。Windows 95及以後的版本就不一樣了,他們的圖形界面是操作系統的一部分,圖形界面在系統內核中就實現了,沒有了圖形界面windows就不成為windows了,但linux卻不一樣,沒有圖形界面linux還是linux,很多裝linux的WEB服務器就根本不裝X服務器。這也WINDOWS和linux的重要區別之一.
二、X是協議,不是具體的某個軟件
X是協議,就像HTTP協議、IP協議一樣。因為輸入設備和顯示設備不是同一個設備,而且他們需要相互配合,進行畫面顯示,所以需要一個交互協議,建立他們直接的溝通橋梁。
X協議主要有X應用程序和X服務器組成,如:我需要劃個圓,X應用程序告訴X服務器在屏幕的什麼地方用什麼顏色畫一個多大的圓,而具體的"畫"的動作,比如這個圓如何生成,用什麼顯卡的驅動程序去指揮顯卡完成等等工作是由X服務器來完成的.
X服務器還負責捕捉鍵盤和鼠標的動作,假設X服務器捕捉到鼠標的左鍵被按下了,他就告訴X應用程序:親愛的應用程序先生,我發現鼠標被按下了,您有什麼指示嗎?如果X應用程序被設計成當按下鼠標左健後再在屏幕上畫一個正方形的話,X應用程序就對X服務器說:請再畫一個正方形,當然他會告訴服務器在什麼地方用什麼顏色畫多大的正方形,但不關心具體怎麼畫——那是服務器的事情。
三、X和XFree86的關系
有了協議,就需要具體的軟件來實現這個協議,就好比我們有了交通法規就需要交警去根據法規維護交通秩序一樣。Xfree86就是這樣一個去根據法規實現協議的"交警",他按照X協議的規定來完成X應用程序提交的在屏幕上顯示的任務.當然不僅僅是某個特定的交警才可以去維護和實現這個法規,比如還可以由交通協管員來實現交通法規,必要的時候警察也可以介入,當然前提是他們都要懂得交通法規,也就是要懂得協議,所以實現X協議的軟件也並不只有XFree86,XFree86只是實現X協議的一個免費X服務器軟件。商業上常用MOTIF,現在還有XORG,還有很多很小的由愛好者寫的小的X服務器軟件,甚至可以在Windows上有X服務器運行,這樣你可以在linux系統上運行一個X應用程序然後在另一台windows系統上顯示,多麼神奇!你可以用google找到這樣的X服務器軟件,只不過在LINUX上最常用的是XFree86(現在的linux發行版都用Xorg了)順便說一句,蘋果電腦的圖形界面用的也是X協議,而且被認為是做的最好的X協議圖形界面,並且他對X協議的實施是做在系統內核裡的,所以性能明顯好很多,這就是為什麼很多大型三維圖形設計軟件都是在蘋果平台上的原因。
為了便於理解拿HTTP協議來比較:
1)協議是HTTP(hyper text transmission protocol)
實現這個協議的常用服務器有:apacheIIS 等
請求這些服務器傳輸文件的客戶有:IE、MOZILLA、NETSCAPE等
2)協議是X
實現這個協議的常用服務器有:Xfree86、Xorg、Xnest等
請求這些服務器來完成顯示任務的客戶:所有的X應用程序.
只不過HTTP協議的服務器和客戶端通常都在兩台不同的電腦(服務器和客戶機)之間來實現,所以一般人對這個比較容易理解。而X協議的服務器和客戶端程序通常在同一台電腦上,因此很多用戶都感到對此很難理解,既然是協議,那麼肯定和平台無關的,因此可以讓X應用程序顯示在任何裝有X服務器的遠程計算機上,甚至顯示在裝有Xnest服務器的windows系統上。只不過在大多數情況下,X應用程序都用本機的X服務器,然後X服務器將顯示結果輸出到本機的顯示器,這也是很多人不理解X是一種協議的原因.
四、X、X11、X11R6又是什麼關系?
不知道初學者有沒有注意到/usr/X11R6這個目錄,這是XFree的默認安裝目錄
X11R6實際上是XProtocol version 11 Release6(X協議第11版第六次發行)的意思,就是說目前用的X協議是第11版的,然後經過了6次小的修正。不同版本的X協議是不能通信的,就象我們現在IPV4和IPV6不能通信一樣,不過不用擔心,現在的X服務器軟件和X應用程序都遵循X11R6.
另外XFree86 3.3.6、XFree86 4.3.6等這些版本是實現X協議的軟件XFree86的版本號.這是初學者經常高混淆的概念.
協議版本和實現協議的軟件的版本——這兩個概念的區別你分清楚了嗎?
五、WM(Window Manager)窗口管理器
窗口管理器的作用就是實現窗口的最大化、最小化、移動、關閉等,而這些不是X服務器來負責完成的。如果不窗口管理器,X應用程序仍可以啟動,但它就在屏幕中間,不能移動、不能最小化、不能最大化、沒有邊框。
Xfree86自帶了一個簡單的窗口管理器:twm,同時窗口管理器還有GNOME和KDE等。為了更方便的了解窗口管理器的作用,我們可以做以下測試(因我使用的是ubuntu,無法確認以下操作和命令的正確性,請有條件的朋友測試以下並給與指正)。
1、系統(有界面的Linux)啟動後,進入圖形進面,我們打開一個XTERM,輸入init3就可以安全的回到字符界面.
2、再輸入#startx又返回到圖形界面,你看到的是一個和平時使用一樣的完整的圖形界面操作環境,你可以最大化、最小化、移動、關閉窗口等。
3、我們還是再次進入字符界面,按ctrl+alt+backspace反回字符界面,輸入:#xinit(注:與第二步的命令startx不同),再次啟動圖形界面,你看到了什麼,你看到一個XTERM.而且不能移動.但是你可以在這個XTERM中輸入命令打開X應用程序,如果我輸入:#mozilla。打開浏覽器,你看到的浏覽器和平時有什麼不同嗎?他在屏幕中間,不能移動、不能最小化、不能最大化、沒有邊框。
為什麼同樣一個X應用程序會有這樣的不同呢?因為我們用startx啟動圖形界面的時候同時也啟動了一個默認的WM(即窗口管理器),如果你用KDE就起動了KDE,如果你用GNOME就起動了GNOME,但是你用xinit起動圖形界面的時候卻沒有起動WM.
4、如果你用xinit起動圖形界面並在xterm中輸入twm,看看會有什麼?xterm被加上了一個邊框,你可以通過這個邊框移動、最大化、最小化這個xterm,twm就是XFree86中自帶的窗口管理器,是一個比較簡陋的最簡單的窗口管理器,但是他具有窗口管理器的全部特征.
5、如果你不輸入twm而輸入gnome-session就可以起動GNOME或者輸入startkde起動KDE.
通過以上的實驗你就可以清楚的明白他們之間的關系,另其它的小型窗口管理器有:
windowmaker、after step、blackbox、fvwm、fvwm2等等都是常用的優秀窗口管理器。REDHAT9中有windowmaker 但是默認不安裝,大家可以裝來試試.只要xinit再wmaker&就可以用windowmaker了.
六、X協議的Client端有時誰實現的呢?
XFree86是X協議的服務器軟件(注以軟件的形式實現),但Client端更多的是方便程序員更方便的使用X協議與服務器端的XFree86交互,故就產生了一個Xlib庫,封裝了X協議內容,如果你還覺得直接使用Xlib不方便,於是就產生了QT和GTK,對Xlib進一步封裝,提供了很多控件,可以可視化的使用X協議更方便程序員的開發。
Xlib、QT、GTK直接關系如下圖:
QT是直接使用xlib庫的,GTK不能直接使用xlib,而是使用更低層的函數庫GDK和Glib。這種結構使得Gtk可以更方便地移植到其它系統上,或使用與XWindows系統無關的圖形庫。
七、KDE、GNOME、QT和GTK直接關系
KDE和GNOME是窗口管理器,啟動他們後我們進入了可視化操作(圖形界面),既然需要顯示圖形,自然少不了與X協議的服務器軟件打交道,既然QT和GTK進一步封裝了X協議,並且他們提供了更為豐富的窗口及控制機制,於是在QT基礎上實現的窗口管理器叫KDE,在GTK基礎上實現的窗口管理器叫GNOME.
再次提示:KDE和GNOME並不只是窗口管理器,同時提供了桌面、菜單等等。
KDE和Gnome都是桌面環境中的一種,用的庫不一樣,可以是KDE,Gnome,還可以是XFCE、LXDE等
kde用的qt庫,但是qt庫不是免費的,在基於qt的軟件版權上面會有一些問題。於是就有人開發出了gnome,用的是gtk庫,這個庫沒有qt庫在版權上的問題。
(qt庫和gtk庫就相當於windows下的MFC庫)
同一個linux有不同版本的桌面,你可以都試試,就能感覺到kde和gnome的不一樣了,比如 ubuntu 是gnome桌面,Kubuntu的就是kde桌面
-------------------------------------------
四大Linux圖形界面賞析:KDE、Gnome、Xfce、LXDE
如果Microsoft不是加入了圖形界面,Windows系列操作系統不會成功地占領計算機桌面這塊高地。這種人機交換的圖形化界面,使得界面更加直觀、簡易、而且更人性化,同時也大大減少了使用者的認知負擔,普通用戶無需再牢記讓人“勞神”的命令,直接拖拽就能操作。
在這一點上,微軟確實是將圖形化操作界面這條路走得更徹底、更專一,盡管人們一直都在抱怨Windows系統安全性和穩定性上的不足,但是,在應用程序和娛樂性上,微軟仍然贏得了大多數普通用戶的青睐,因為在他們的工作和生活中,這些就已經足夠了。
圖形界面架起用戶邁向Linux的橋梁
而相對而言,Linux系統一直堅持自己的專業路線,在服務器操作系統領域,Linux憑借著其安全性和穩定性等特性,一直都企業的絕對主力。不過,盡管Linux在服務器操作系統領域算是佼佼者,而且很多Linux系統都是開源軟件,但是了解和熟悉他們的人大多都集中在社區和專業人士中。
不過,現在這一情況正在不斷地改變。隨著,近幾年Windows系統爆出的各種不愉快的事件,人們醒悟過來,任何時候都不能受限於一種產品,否則不管是個人還是企業都有被轄制的危險。
而同時,在Linux/Unix系統自身地不斷進步及其上各個圖形界面產品不斷地成熟和發展,越來越多的普通用戶通過試用發現,這種組合能夠煥發出獨特的吸引力,很多企業和個人都在這個過程紛紛放棄Windows轉投Linux/Unix的懷抱。
很多可能會提出問題,在Linux系統下,還有很多應用軟件和娛樂仍然都無法使用,甚至一些驅動程序還沒有,但是這一情況正在漸漸得以解決,越來越多的軟件和硬件廠商正在支持或者准備支持Linux/Unix系統。
事實上,很多年前,我們Linux開發者們,早就已經注意開發出針對普通用戶的圖形界面環境了。這篇文章編者帶你認識一下,這些吸引普通用戶邁入Linux系統世界的圖形桌面環境。
在介紹之前,編者做了一次調查,發現在distowatch.com網站上,2010年6月份排在前十名的操作系統,他們都使用了什麼樣的圖形桌面環境。
從編者這個局部的調查可以看出來,GNOME和KDE是目前的主流環境,而Xfce、LXDE、Openbox和Fluxbox等也已經得到了很高的應用。
下面,編者就以上圖形桌面環境進一步的解析。
1)KDE
KDE(Kool Desktop Environment)項目始建於1996年10月,相對於GNOME還要早一些。KDE項目是由圖形排版工具Lyx的開發者、一位名為Matthias Ettrich的德國人發起的,目的是為滿足普通用戶也能夠通過簡單易用的桌面來管理Unix工作站上的各種應用軟件以及完成各種任務。
KDE的LOGO
在應用開發方面,KDE項目已經開發了一流的復合文檔應用程序框架,實現了最先進的框架技術並且因此把它自己直接置身於和諸如微軟的MFC/COM/ActiveX技術等流行開發框架相競爭的位置。KDE的KParts復合文檔技術使得開發人員可以快速創建一流的應用程序以實現最尖端的技術。
在應用程序上,KDE也擁有了可以與微軟office媲美的辦公應用套件KOffice,其分別由電子表格、幻燈片制作程序、組織者、新聞客戶端等應用組成。還集成常見的Web浏覽器、電子郵件客戶端、辦公套件、圖形圖像處理軟件,以及桌面主題功能、配置功能、KDE幫助中心等各種管理工具。同時,還支持60余種語言的翻譯。
其實,從系統的安裝過程,你就能體驗KDE給你帶來的便捷,各種語言、時區、安裝磁盤、用戶設置以及網絡設置等工作,都無需去考慮輸入什麼命令,直接用鼠標點選即可。
目前,KDE最新版本是4.5.0,進一步提高了穩定性和性能。可以體驗到,KDE的操作習慣越來越與Win9x有很多相似之處,支持鼠標拖放、類似快捷方式,即使你是一個剛接觸Linux的新手,也能很快上手。
2)GNOME
GNOME計劃發起於1997年8月,所以,你可以在GNOME的LOGO上見到1997的字樣。發起人是Miguel de Icaza和Federico Mena,GNOME計劃當初的目標就是完全基於自由軟件,構造那種功能完善、操作簡單以及界面友好的桌面環境,希望走國際化道路,盡可能多地為各種國家的人所使用。目前,GNOME已經基本上可以成為KDE的替代品。
GNOME的LOGO
GNOME不僅僅提供了一個吸引人的桌面環境,而且還提供一個開發平台,一個能使開發的應用程序與桌面其它部分集成的可擴展框架。
GNOME的結構包括:一個面板、桌面以及一系列標准的桌面工具和很多功能強大的應用軟件。這些應用軟件包括:文件管理器、電子表格處理軟件、字理軟件、電子表格軟件、郵件閱讀器、MP3播放器、簡單的編輯器以及可以與PhotoShop媲美的圖像處理軟件等常用軟件。
同時,GNOME還集成了軟件更新和管理工具,基於Web的軟件發布和自動升級工具,可平滑、安全地運行最新的開放資源和下載最新的補丁。
如果,你體驗過GNOME就會知道,GNOME的這些應用軟件是如何讓Linux系統更具可操作性,鼠標拖拽以及左右鍵功能、編輯文檔、繪制圖片、收發郵件、音頻和視頻的播放、即時通訊工具聊天......這些使用體驗與你在Windows下幾乎沒有差別。
雖然,GNOME最初是GNU/Linux的桌面,但是現在GNOME已經運行在大多數類Unix系統(如*BSD變體、AIX、IRIX、HP-UX)和幾乎所有的Linux系統之上。目前,gnome.org上顯示GNOME最新版本是2.3,而在2011年將發布的GNOME3的體驗據介紹將可以匹敵Windows 7,我們將拭目以待。
3)XFCE
Xfce(XForms Common Environment)創建於2007年7月,類似於商業圖形環境CDE,是一個運行在各類Unix下的輕量級桌面環境。原作者Olivier Fourdan最先設計XFce是基於XForms三維圖形庫。Xfce設計目的是用來提高系統的效率,在節省系統資源的同時,能夠快速加載和執行應用程序。
Xfce的LOGO
XFce最主要的特色是容易配置,整個過程都可以使用鼠標來完成,而不需要修改配置文件的代碼。最新版本的XFce還支持鼠標拖放、系統任務管理、多字節在內的多國語言以及其它特征。
Mint的界面
同時,XFce桌面環境的結構包括:一個叫XFwm的窗口管理器、主面板、文件管理器、背景管理器、聲音管理器以及GNOME兼容模塊等。另外,還有很多第三方的應用程序:文字編輯器、文件管理器、日歷程序、CD 和 DVD 燒錄程序、媒體播放器、浏覽器等。
從體驗過程來看,雖然,沒有GNOME和KDE的應用程度那麼高,但是Xfce簡單高效的特點,仍然為其贏得了非常多的用戶青睐。目前,Xfce最新版本是4.6.2。
4)LXDE
LXDE(Lightweight X11 Desktop Environment)創建於2006年,主要為Unix以及如Linux、BSD等POSIX相容平台上提供一個輕量、快速的桌面環境。開發者主要是為Open PCMan的著名台灣開放源代碼程式設計者洪任谕(PCMan)、錢逢祥(Fred Chien),以及其他活躍開發者劉穎駿(Paul Liu)、李健秋(Andrew Lee)及黃敬群(jserv)等。
LXDE的LOGO
相對於GNOME和KDE這些桌面環境,LXDE屬於小巧玲珑類型的。LXDE更加注重於實用性和輕巧性,並且盡力降低其所耗系統資源。不同於其它桌面環境,其元件相依性極少。取而代之的是各元件可以獨立運作,大多數的元件都不須倚賴其它套件而可以獨自執行。
LXDE使用Openbox為其默認窗口管理器,並且希望能夠提供一個建立在互相獨立套件上的輕量級快速的桌面。另外,LXDE也集成了一些應用程序和工具:圖片浏覽器,外觀、字型、布景主題管理工具、音樂播放器、屏幕設定工具、面板管理工具、編輯工具、系統資源監控以及工作管理員和輕巧的檔案及桌面管理程式等。
從體驗過程來看,LXDE確實對系統硬件要求比較低,甚至1999年出產的計算機都可以正常執行。所以,如果你有一台即將淘汰的計算機安裝Linux系統,那麼LXDE必將是你不錯的選擇。
這裡選擇只選擇眾多圖形桌面環境的四種做體驗,其中也是因為很多人將GNOME與KDE,以及XFCE與LXDE分別作比較。
綜合整個體驗過程,從效果上看,Windows在Linux系統面前應該說沒有太多優勢可言。KDE和GNOME強大的功能以及絢麗多彩的界面一點不遜色於Windows,甚至還要好於它;同時在特效展示方面,例如半透明和三維界面,Windows能夠做到的,依賴強大的KDE和GNOME同樣可以做到。而且,最近Ubuntu下一個版本也將支持多點觸摸。
當然,如果你的計算機硬件配置不高,又或者是在移動設備中,輕量級的桌面環境就將發揮重要作用。
所以,我們可以看到,通過形形色色的圖形桌面環境的介入,Linux系統正進入一個高速發展的階段,Linux桌面應用的普及漸漸打開了一個新天地。