術語 GUI
window manager
desktop 和 interface 間的區別(如果有的話)
它們和 X window 有什麼關系?
在 X 的世界裡
事物是分成很多組件的
而不象其他的操作系統那樣
任何東西都是 OS 的一個部分
這裡是一些定義
Interface是一個普通術語
意思是指在計算機系統的兩個互不依賴的組件間的連結
一個橋
它通常用來指
user interface
(用戶界面)就是用戶和計算機系統之間聯系的部分
GUI是另一個普通術語
代表 graphical user interface
圖形用戶界面
它就想它聽起來那麼漂亮
它是一個主要是圖形組成的用戶界面
Mac OS 和 Windows 都是 GUI 的
實際上
現在相當多都用於桌上型電腦
在 Mac OS 和 Windows
構件圖形界面的功能都做在了操作系統裡面
你只能使用那些
這個方法很簡單
但是卻不靈活
Unix 和類 Unix 的操作系統沒有內建這個功能
要使用 GUI 你就不得不使用
windowing system
(窗口系統)
X就是其中之一 —— 現在看來是唯一的一個
X 提供的功能是在屏幕上構造方塊(窗口)
然後畫出裡面的元素
它並不支持這些功能
a) 移動窗口
改變它們的大小
關閉它們
b) 象按鈕菜單這樣的標准控件
c) 為設計用戶界面
編程的標准
或程序間的交互操作(例如拖拽或標准幫助系統)
Window manager是個可以方你移動窗口和改變它們大小的程序
它通常也支持把一個窗口縮成一個圖標或任務條
通常有某種程序執行機構
用戶可以使用 window manager 來做他想做的 —— 任何X應用程序應該可以在任何窗口管理器上工作
但是你依次進能運行一個
這就是說
你可以切換於任何多個 window manager
但是同一時刻你進能運行一個
屏幕上的所有程序都可以被正在運行的 window manager 管理
widget 集是一個常規的工具庫
程序員使用它來構造象按鈕和菜單這樣的標准控件(X 程序員叫它們做 widget
一個應用程序使用的 wedget 集是由程序員來選擇的
而不是用戶
很多人都安裝多種 widget 集
這樣可以同時運行多個程序員使用不同 widget set 寫的程序
最後
解釋一下 desktop environment
桌面環境
這是一個最新的也最模糊的 X 術語
它基本的意思是指
Mac OS 和 Windows 的圖形界面有
而 X 沒有卻應該有的東西
通常是一組有著共同外觀和操作感的應用程序
和程序庫
以及創建新的應用程序的方法
例如
所有的 KDE 應用程序都所以用相同的 widget 集(Qt)和幫助程序
你可以在它們之間拖拽
你同時可以安裝多個桌面環境
而且你可以在一個桌面環境中運行另一個不同的桌面環境的應用程序
而不用切換到過去(當然你要安裝那個桌面才行)
就是說
如果你使用 GNOME
但是你喜歡 KDE 的字處理器 KLyX
那麼你可以運行 KLyX
而不運行任何其他的 KDE 程序
但是它就不能和你那些 GNOME 的程序互相交互了
你甚至可以同時運行 GNOME 和 KDE 的核心程序
事實上這沒有什麼意義
你會同時有兩個文件管理器
兩個面板
等等
所有的窗口管理器(象 GNOME
KDE 或 FVWM
)都運行在 X Windows 之上嗎?
是的
雖然 GNOME 和 KDE 不是窗口管理器(它們是桌面環境)
KDE 是和一個叫 KWM 的窗口管理器一起的
GNOME 則沒和任何窗口管理器做在一起
你可以使用任何你想用的窗口管理器
雖然有一些是特地為 GNOME 寫的(Enlightenment 就是一個)
但是它們都需要X來運行
說一個應用軟件是基於 GNOME 或 KDE 的到底是什麼意思呢?如果它不是
那會怎樣?你仍然可以運行它嗎?
這僅意味這它是使用 GNOME 或 KDE 的庫寫的
意思是
)
程序可能不是同時基於 GNOME 和 KDE 的
)
你不得不安裝 GNOME 的庫來運行基於 KDE 的軟件
)
你可以並行的運行 GNOME 的應用程序和 KDE 的應用程序
)
如果你使用任何一個環境
你總是可以運行非基於該環境的應用程序
GTK+(for GNOME) 或 Troll(for KDE) 到底是什麼?
GTK 和 Qt(Qt 是 KDE 使用的 Troll Tech 的產品)都是 widget 集
也就是說
它們提供了按鈕
菜單
滾動條和各種各樣的對象給程序開發人員使用
注意
非基於 GNOME 或 KDE 的應用程序能夠使用 GTK+ 或 Qt
但是所有的 GNOME 程序都使用 GTK+
所有的 KDE 應用程序都使用 Qt
Linux(或 UNIX)窗口管理器的歷史和 Windows
/
的用戶使用的桌面相比怎麼樣?特別是
如何評價微軟通過給定用戶僅僅一種桌面來限制他們的選擇
這種桌面據信是一種為方便用戶使用而設計的
這是一個很復雜的問題
從本質上來講
Windows 提供了一個由窗口系統
窗口管理器
widget 集和桌面環境共同組成的構造集
因此每個人都只能使用它
而不能選擇它們喜歡的
通用桌面環境(CDE)怎麼樣了?它是因為太消耗系統資源或是未開放源碼而沒有被 Linux 用戶廣泛采用嗎?
是的
它占用太多的內存
你可以從RedHat那裡得到它
今天我從 Linux Gazette 上看到了你的郵件
我決定試著回答你的問題
是這樣的
X
Windows 被設計成為一種客戶端
服務器(client
server)的系統
這樣做的優點是你可以把服務器運行於和你的顯示器所在的機器不同的另一台機器上
你需要一個 client
這可能是一個程序或一個窗口管理器
窗口管理器通過要求服務器創建窗口來和它通訊
當服務器接到要求
就會給出一個標題條
然後讓應用程序創建它自己的界面
從根本上說
窗口管理器是介於服務器和應用程序之間的
但是它不是必須的
你可以沒有窗口管理器而直接在服務器上運行一個應用程序
但是你唯一能做的事就是運行這個指定的應用程序
關閉它
和關閉X服務器(即
不能移動它
改變窗口大小等)
GUI 是指圖形用戶界面
意思是所有呈現在屏幕上的信息都使用窗口
菜單
按鈕等來表示
就象是 Windows
所有的都是交互的
界面是建立在這些窗口和按鈕之上的
GUI 主要的目的是提供一個統一的系統來表現窗口和收集信息
一個不錯的例子是 MS Windows 中的 Alt+F
這個快捷鍵
使用這個鍵
你可以關閉任何在屏幕上的窗口
一個窗口管理器可能是這個系統的一部分
在 KDE 和 CDE 中都是這樣
它們共同的特點就是它們擁有自己的窗口管理器
你可以在桌面上得到統一的形式
從根本上說
在桌面上看到的是那些可以運行在某個系統上的應用程序的集合
一個統一的圖形用戶界面可以有象拖放(drag&Drop)和指點(point&shoot)及把應用程序和某個文件類型關聯起來這樣的特點
你問的關於基於 GNOME 或 KDE 的問題是這樣
一個程序被設計成它是哪個環境下的
那麼它就可以和這個環境下的其他應用程序互相通訊
拖放就是個例子
某些程序沒有為它們設計的桌面環境確實不能運行
但是有些就可以
舉個例子
我使用 KDE 程序
但是我不喜歡他們的窗口管理器
因此我使用 Window Maker
而 Window Maker 不是為 KDE 環境設計的
因此我就不得不損失一些功能不能使用
這兩個庫
GTK+ 和 Qt(你提到的 Troll)是工具包
它們基本的用途是畫窗口
按鈕和菜單
這些會幫你構造你的界面
如果你象運行一個為某個特殊環境設計的應用程序
比如說 GNOME
你至少需要 GNOME 的庫
象 GTK+ 和其他什麼
正象我前面提到的
X
Windows 系統的 client
server 的設計使用戶可以更靈活的選擇他們喜歡的窗口管理器
但是基本上
他們象 win
/
系統做的一樣
Win
/
限制你於一個風格和一樣的操作感(look and feel)(雖然你可以改變背景的顏色
但是那還是它)
但它並沒有給用戶嘗試其他風格和操作感的自由
很多流行的窗口管理器都允許你定義其他的按鍵組合
如果你不喜歡 GNOME
你可以使用 KDE
反之亦然
(還有其他幾種)
所有我知道的關於 CDE 的知識就是它是基於 Motif 工具包的(不同於GTK+ 和 Qt)這個工具包不象 GTK+ 那樣是 free 的(更恰當的說不是 GPL 的)
我想這可能是它在 Linux 上用的不是很多的主要原因
但是它是否很耗系統資源我就不知道了
我個人不使用它的原因是因為它看上去很傻 :
)
好了
就這些
我希望這些東西會對你有些用處
如果你有問題
別猶豫 ……
我想我可以花點時間來回答你在 Linux Gazette 上貼的問題
從你的問題看
我可以告訴你雖然你是個 Linux 新手
但你看到了在界面工作上的一些基本不同
目前我正在 Inter 工作
管理 Unix Cad 工具
我每天都要給那些管理員這解釋這些不同
我想你會比他們懂的多了
術語 GUI
window manager
desktop 和 interface 間的區別(如果有的話)
它們和 X window 有什麼關系?
X windows 是一種把東西畫在你的屏幕上的辦法
所有的 X windows 客戶端(畫在你面前的部分)都知道如何響應某些命令
例如
畫一個綠框
畫一個點
為客戶圖象分配內存 …… 這不象你想象的 Windows 那樣
所有的應用程序把這些命令發送到你的客戶端
這是通過 tcp/ip
實現的
即使你的應用程序和客戶端在同一台機器上也是這樣
這點非常重要
在 MS Windows 裡首要的設計缺陷就是在窗口系統裡缺少網絡層
每個 X 應用程序(任何窗口 …… xterm netscape xclock)查看
DISPLAY
這個環境變量來找出它應該讓誰畫出它自己
如果你的 DISPLAY 被設置成 computer
:
而你在 computer
上
當你鍵入
xterm
是它將會在 computer
的
From:http://tw.wingwit.com/Article/program/Oracle/201311/17145.html