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