熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

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

2013-11-13 15:41:28  來源: Oracle 

  術語 GUIwindow managerdesktop 和 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 的核心程序事實上這沒有什麼意義你會同時有兩個文件管理器兩個面板等等
  
    所有的窗口管理器(象 GNOMEKDE 或 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 上看到了你的郵件我決定試著回答你的問題
  
    是這樣的
  
    XWindows 被設計成為一種客戶端服務器(clientserver)的系統這樣做的優點是你可以把服務器運行於和你的顯示器所在的機器不同的另一台機器上你需要一個 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+ 和其他什麼
  
    正象我前面提到的XWindows 系統的 clientserver 的設計使用戶可以更靈活的選擇他們喜歡的窗口管理器但是基本上他們象 win/ 系統做的一樣Win/ 限制你於一個風格和一樣的操作感(look and feel)(雖然你可以改變背景的顏色但是那還是它)但它並沒有給用戶嘗試其他風格和操作感的自由很多流行的窗口管理器都允許你定義其他的按鍵組合如果你不喜歡 GNOME你可以使用 KDE反之亦然(還有其他幾種)
  
    所有我知道的關於 CDE 的知識就是它是基於 Motif 工具包的(不同於GTK+ 和 Qt)這個工具包不象 GTK+ 那樣是 free 的(更恰當的說不是 GPL 的)我想這可能是它在 Linux 上用的不是很多的主要原因但是它是否很耗系統資源我就不知道了我個人不使用它的原因是因為它看上去很傻 :)
  
    好了就這些我希望這些東西會對你有些用處如果你有問題別猶豫 ……
  
    我想我可以花點時間來回答你在 Linux Gazette 上貼的問題從你的問題看我可以告訴你雖然你是個 Linux 新手但你看到了在界面工作上的一些基本不同目前我正在 Inter 工作管理 Unix Cad 工具我每天都要給那些管理員這解釋這些不同我想你會比他們懂的多了
  
    術語 GUIwindow managerdesktop 和 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
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.