歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 關於xwin的幾個基本概念

關於xwin的幾個基本概念

日期:2017/2/27 14:17:00   编辑:更多Linux
  術語GUI,window manager,desktop,和interface間的區別(如果有的話),它們和Xwindow有什麼關系? 在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那裡得到它。 -- Tim -------------------------------------------------------------- Date: Wed, 2 Dec 1998 00:34:46 +0100 (AMT) From: Hans Nieuwenhuis, [email protected] 今天我從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上用的不是很多的主要原因。但是它是否很耗系統資源我就不知道了。 我個人不使用它的原因是因為它看上去很傻 :-) 好了,就這些,我希望這些東西會對你有些用處。如果你有問題,別猶豫………… -- Hans Nieuwenhuis -------------------------------------------------------------- Date: Sat, 05 Dec 1998 00:29:34 -0500 From: sottek, [email protected] 我想我可以花點時間來回答你在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)查看"DIS



Date: Sat, 05 Dec 1998 00:29:34 -0500 From: sottek, [email protected] 我想我可以花點時間來回答你在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)查看"DIS



Copyright © Linux教程網 All Rights Reserved