以下表述非常不準確,僅對於自我理解加強一點記憶。
1. D-Bus, DCOP, bonobo
bonobo, 是GNOME中採用CORBA標準的一個組件模型。是受微軟OLE的啟發而開發出來的。
DCOP是用於KDE3.X的一套IPC機制。而在新的GNOME以及KDE4中都採用D-Bus作為新的IPC機制。D-Bus是建立於HAL之上的一個系統,採用消息機制實現IPC。使用這些機制的好處是,可以很靈活地在不同進程間建立通信,使得進程執行更自動化更智能,比如我們可以通過DCOP的命令行介面來控制KDE的桌面,如改變背景,關閉一個採用DCOP的程序等。
2.關於gtk+中的Widget,style,theme engine
widget,英文意思是小玩意,在UI中表示窗口的部件,如按鈕,複選框等。
gtk+即是一套widget的組合,使用gtk+可以創建應用程序的UI。
style是指widget顯示的方式,比如色彩、字體、背景圖像等。
theme engine是一組共享的object,提供用以繪製app的代碼;另外還包含配置文件,資源文件(點陣圖等)。而一個theme則是一套配置文件的組合,指定了這個theme中的每個widget採用什麼engine和style,另外可能還有一些自帶的資源文件。
3.GTK+是圖形庫嗎?
嚴格來說不是。GTK+提供了一套API用於繪製應用程序的GUI,而它的底層是Cairo。Cairo才是嚴格意義上的圖形庫,它提供了優質的矢量圖繪製API。
4.GNOME的組成部件
架構如下:
Glade,etc.
GTK+
GDK,Pango
Cairo,GLib
其中
GDK是GTK+與最底層X Window之間的一個中間層,可以直接使用它來繪製UI。(類似Java中Swing與awt的關係)
GLib(區別GLibc)提供了最基礎的數據類型、宏等代碼,以提供給上層程序使用。Pango是一套用以渲染、繪製字體的庫。而Glade是更高層次的對GTK+的封裝,通過編寫XML配置文件可以容易地建立應用程序的UI,把編寫UI與程序底層功能的代碼分離了。有點類似MFC與Win32 API的關係。
5.Nautilus
是GNOME的標準文件管理器,提供給用戶一個標準的界面,用以瀏覽文件系統,啟動應用程序等。
注意:GNOME中的"桌面"實際也是一個Nautilus的窗口。
6.關於桌面"程序"
KDE與GNOME均遵循freedesktop的desktop entry標準,採用一個配置文件來運行程序
如:
(xxx.desktop的內容如下)
[Desktop Entry]
Name=xxx
exec=yyy
comment=zzz
...
即是一個有效的desktop entry項,GNOME和KDE都會自動讀取此配置文件信息同時執行裡面描述的程序。
[火星人
]
關於Linux GUI,GNOME,的一點閱讀心得已經有428次圍觀
http://coctec.com/docs/linux/show-post-114432.html