xwindow
| 這是小弟第一次發(fā)貼,若有不當(dāng)之出,希望見諒……^_^ 剛學(xué)習(xí)linux不久,昨天在網(wǎng)上看到了一段很好的描述X11,GTK,QT,GNOME,KDE的區(qū)別與聯(lián)系的話來(lái)這分享,應(yīng)該會(huì)對(duì)像我一樣的新手能更好的理解linux下的Xwindow! 而且通過(guò)這段話,也讓有了學(xué)習(xí)Gnome/gtk+編程的想法,故特此下載了 LINUX應(yīng)用程序開發(fā)指南——使用GTK+ GNOME庫(kù)6.PDF(本書適合有C語(yǔ)言基礎(chǔ)和Xwindow使用經(jīng)驗(yàn)的人) 一并奉上!!??GTK+GNOME.tar.bz2? X11,GTK,QT,GNOME,KDE的區(qū)別與聯(lián)系。 一、在這之前你必須要了解: 1.linux是基于Unix的 2.塞班Symbian、蘋果max os等系統(tǒng)的最底層也是unix 3.linux本身沒(méi)有圖形界面,linux現(xiàn)在的圖形界面的實(shí)現(xiàn)只是linux下的應(yīng)用程序?qū)崿F(xiàn)的 4.Xwindow、Xfree中的X是協(xié)議,不是具體的某個(gè)軟件 5.linux圖形界面層次關(guān)系:linux本身-->X服務(wù)器<-[通過(guò)X協(xié)議交談]->窗口管理器(綜合桌面環(huán)境)-->X應(yīng)用程序 二、linux和windows下界面系統(tǒng)的區(qū)別: 圖形界面并不是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),同樣 XFree只是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ū)別之一。 三、關(guān)于linux兩大圖形界面KDE和Gnome KDE早于Gnome出現(xiàn),但是KDE基于的Qt是不遵循GPL開源協(xié)議的,Qt是一個(gè)跨平臺(tái)的C++圖形用戶界面庫(kù) ,它是挪威TrollTech公司的產(chǎn)品(2008年底被NOKIA收購(gòu))。 Qt具有優(yōu)良的跨平臺(tái)特性(支持Windows、Linux、各種UNIX、OS390和QNX等)、面向?qū)ο髾C(jī)制以及豐富的API,同時(shí)也可支持2D/3D渲染和OpenGL API。在當(dāng)時(shí)的同類圖形用戶界面庫(kù)產(chǎn)品中,Qt的功能最為強(qiáng)大.但底層的基礎(chǔ) Qt卻是一個(gè)不遵循GPL的商業(yè)軟件,這就給KDE上了一道無(wú)形的枷鎖并帶來(lái)可能的法律風(fēng)險(xiǎn)。一大批自由程序員對(duì)KDE項(xiàng)目的決定深為不滿,它們認(rèn)為利用非自由軟件開發(fā)違背了GPL的精神。于是這些GNU的狂熱信徒兵分兩路:其中一部分人去制作Harmonny,試圖重寫出一套兼容Qt的替代品,這個(gè)項(xiàng)目雖然技術(shù)上相對(duì)簡(jiǎn)單,但卻沒(méi)有獲得KDE項(xiàng)目的支持;另一路人馬則決定重新開發(fā)一套名為“GNOME(GNU Network Object Environment)”的圖形環(huán)境來(lái)替代KDE。 GNOME選擇完全遵循GPL的GTK圖形界面庫(kù)為基礎(chǔ),因此我們也一般將GNOME和KDE兩大陣營(yíng)稱為GNOME/GTK和 KDE/Qt。與Qt基于C++語(yǔ)言不同,GTK采用較傳統(tǒng)的C語(yǔ)言 ,雖然C語(yǔ)言不支持面向?qū)ο笤O(shè)計(jì),看起來(lái)比較落后,但當(dāng)時(shí)熟悉C語(yǔ)言的開發(fā)者遠(yuǎn)遠(yuǎn)多于熟悉C++的開發(fā)者。加之GNOME/GTK完全遵循GPL版權(quán)公約,吸引了更多的自由程序員參與。 四、linux/unix基于X window的圖形顯示處理原理 X Window從邏輯上分為三層:最底層的X Server(X服務(wù)器)主要處理輸入/輸出信息并維護(hù)相關(guān)資源,它接受來(lái)自鍵盤、鼠標(biāo)的操作并將它交給X Client(X客戶端)作出反饋,而由X Client傳來(lái)的輸出信息也由它來(lái)負(fù)責(zé)輸出;最外層的X Client則提供一個(gè)完整的GUI界面,負(fù)責(zé)與用戶的直接交互(KDE、Gnome都是一個(gè)X Client),而銜接X(jué) Server與X Client的就是“X Protocol(X通訊協(xié)議)”、它的任務(wù)是充當(dāng)這兩者的溝通管道。盡管UNIX廠商采用相同的X Window,但終端的X Client并不相同。 五、Qt、GTK 和KDE、GNOME的關(guān)系? 簡(jiǎn)單來(lái)說(shuō):為了方便開發(fā)人員編寫X clients,就有了Xlib來(lái)封裝X協(xié)議;Xlib還不夠方便,于是就有了qt和gtk,它們提供了很多窗口控件(widgets)。 為了方便用戶 ,就出現(xiàn)了gnome和kde等桌面管理系統(tǒng)。一般來(lái)說(shuō),linux用戶看到的界面就是其中之一了。gnome用的是gtk庫(kù),kde用的是qt庫(kù)。 |
總結(jié)
- 上一篇: X11: Linux跨网络运行XWind
- 下一篇: 你的adonis用对了吗?不同因素的顺序