术语 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 的 |