歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

一個關於 GUI、Window manager、Desktop、Interface 幾個概念的問

  術語 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 或 FVWM95)都運行在 X Windows 之上嗎?   是的,雖然 GNOME 和 KDE 不是窗口管理器(它們是桌面環境)。KDE 是和一個叫 KWM 的窗口管理器一起的。 GNOME 則沒和任何窗口管理器做在一起,你可以使用任何你想用的窗口管理器,雖然有一些是特地為 GNOME 寫的(Enlightenment 就是一個)。但是它們都需要X來運行。   說一個應用軟件是基於 GNOME 或 KDE 的到底是什麼意思呢?如果它不是,那會怎樣?你仍然可以運行它嗎?   這僅意味這它是使用 GNOME 或 KDE 的庫寫的。意思是:   1)、程序可能不是同時基於 GNOME 和 KDE 的;   2)、你不得不安裝 GNOME 的庫來運行基於 KDE 的軟件;   3)、你可以並行的運行 GNOME 的應用程序和 KDE 的應用程序;   4)、如果你使用任何一個環境,你總是可以運行非基於該環境的應用程序。   GTK+(for GNOME) 或 Troll(for KDE) 到底是什麼?   GTK 和 Qt(Qt 是 KDE 使用的 Troll Tech 的產品)都是 widget 集。也就是說,它們提供了按鈕,菜單,滾動條和各種各樣的對象給程序開發人員使用。注意,非基於 GNOME 或 KDE 的應用程序能夠使用 GTK+ 或 Qt,但是所有的 GNOME 程序都使用 GTK+,所有的 KDE 應用程序都使用 Qt。   Linux(或 UNIX)窗口管理器的歷史和 Windows98/95 的用戶使用的桌面相比怎麼樣?特別是,如何評價微軟通過給定用戶僅僅一種桌面來限制他們的選擇,這種桌面據信是一種為方便用戶使用而設計的。   這是一個很復雜的問題,從本質上來講,Windows 提供了一個由窗口系統、窗口管理器、widget 集和桌面環境共同組成的構造集,因此每個人都只能使用它,而不能選擇它們喜歡的。   通用桌面環境(CDE)怎麼樣了?它是因為太消耗系統資源或是未開放源碼而沒有被 Linux 用戶廣泛采用嗎?   是的,它占用太多的內存。你可以從RedHat那裡得到它。


--------------------------------------------------------------------------------   今天我從 Linux Gazette 上看到了你的郵件,我決定試著回答你的問題。   是這樣的:   X-Windows 被設計成為一種客戶端--服務器(client-server)的系統。這樣做的優點是你可以把服務器運行於和你的顯示器所在的機器不同的另一台機器上。你需要一個 client。這可能是一個程序或一個窗口管理器。窗口管理器通過要求服務器創建窗口來和它通訊。當服務器接到要求,就會給出一個標題條,然後讓應用程序創建它自己的界面。從根本上說,窗口管理器是介於服務器和應用程序之間的,但是它不是必須的。你可以沒有窗口管理器而直接在服務器上運行一個應用程序,但是你唯一能做的事就是運行這個指定的應用程序、關閉它,和關閉X服務器(即,不能移動它、改變窗口大小等)。   GUI 是指圖形用戶界面,意思是所有呈現在屏幕上的信息都使用窗口、菜單、按鈕等來表示,就象是 Windows。所有的都是交互的,界面是建立在這些窗口和按鈕之上的。GUI 主要的目的是提供一個統一的系統來表現窗口和收集信息。一個不錯的例子是 MS Windows 中的 Alt+F4 這個快捷鍵,使用這個鍵,你可以關閉任何在屏幕上的窗口。一個窗口管理器可能是這個系統的一部分。在 KDE 和 CDE 中都是這樣。它們共同的特點就是它們擁有自己的窗口管理器,你可以在桌面上得到統一的形式。從根本上說,在桌面上看到的是那些可以運行在某個系統上的應用程序的集合。一個統一的圖形用戶界面可以有象拖放(drag&Drop)和指點(point&shoot)及把應用程序和某個文件類型關聯起來這樣的特點。你問的關於基於 GNOME 或 KDE 的問題是這樣:一個程序被設計成它是哪個環境下的,那麼它就可以和這個環境下的其他應用程序互相通訊。拖放就是個例子。某些程序沒有為它們設計的桌面環境確實不能運行,但是有些就可以。舉個例子,我使用 KDE 程序,但是我不喜歡他們的窗口管理器,因此我使用 Window Maker,而 Window Maker 不是為 KDE 環境設計的,因此我就不得不損失一些功能不能使用。   這兩個庫:GTK+ 和 Qt(你提到的 Troll)是工具包。它們基本的用途是畫窗口、按鈕和菜單。這些會幫你構造你的界面。如果你象運行一個為某個特殊環境設計的應用程序,比如說 GNOME,你至少需要 GNOME 的庫,象 GTK+ 和其他什麼。   正象我前面提到的,X-Windows 系統的 client-server 的設計使用戶可以更靈活的選擇他們喜歡的窗口管理器。但是基本上,他們象 win95/98 系統做的一樣。Win95/98 限制你於一個風格和一樣的操作感(look and feel)(雖然你可以改變背景的顏色,但是那還是它),但它並沒有給用戶嘗試其他風格和操作感的自由。很多流行的窗口管理器都允許你定義其他的按鍵組合。如果你不喜歡 GNOME,你可以使用 KDE,反之亦然。(還有其他幾種)   所有我知道的關於 CDE 的知識就是它是基於 Motif 工具包的(不同於GTK+ 和 Qt)這個工具包不象 GTK+ 那樣是 free 的(更恰當的說不是 GPL 的)。我想這可能是它在 Linux 上用的不是很多的主要原因。但是它是否很耗系統資源我就不知道了。我個人不使用它的原因是因為它看上去很傻 :-)   好了,就這些,我希望這些東西會對你有些用處。如果你有問題,別猶豫 …… --------------------------------------------------------------------------------   我想我可以花點時間來回答你在 Linux Gazette 上貼的問題。從你的問題看,我可以告訴你雖然你是個 Linux 新手,但你看到了在界面工作上的一些基本不同。目前我正在 Inter 工作,管理 Unix Cad 工具,我每天都要給那些管理員這解釋這些不同,我想你會比他們懂的多了。   1、術語 GUI,window manager,desktop 和 interface 間的區別(如果有的話),它們和 X window 有什麼關系?   X windows 是一種把東西畫在你的屏幕上的辦法。所有的 X windows 客戶端(畫在你面前的部分)都知道如何響應某些命令,例如“畫一個綠框”,“畫一個點”為客戶圖象分配內存 …… 這不象你想象的 Windows 那樣。 所有的應用程序把這些命令發送到你的客戶端。這是通過 tcp/ip,實現的,即使你的應用程序和客戶端在同一台機器上也是這樣。這點非常重要。在 MS Windows 裡首要的設計缺陷就是在窗口系統裡缺少網絡層。每個 X 應用程序(任何窗口 …… xterm netscape xclock)查看“DISPLAY”這個環境變量來找出它應該讓誰畫出它自己。如果你的 DISPLAY 被設置成 computer1:0.0 而你在 computer2 上,當你鍵入“xterm”是它將會在 computer1 的屏幕上彈出來。(如果你的權限許可的話)。這就是為什麼





Copyright © Linux教程網 All Rights Reserved