Linux 版 (精华区)
发信人: howdoit (教练让我上场!!!), 信区: Linux
标 题: XWindows与Windows95/98/NT的比较:无胜负之争
发信站: 哈工大紫丁香 (Tue May 18 08:57:52 1999), 转信
《Linux公报》……让Linux更富魅力!
X Windows 与 Windows
95/98/NT 的比较: 无胜负之争
作者: Paul Gregory Cooper
译: Gump
在12月份(1998年, 译者注)的 << Linux 杂志 >> 里, Sergio
Martinez 来信 寻求一篇(能尽快得到的)文章论述一下关于 X 和
Windows 95/98/NT (w95) 之间的区别--原文见下. 现在我试图回答这
个问题--我记得四年前我刚开始使用 UNIX 时问过类似的问题. [在"
值两美分的提示"栏目中有更多的内容, 编者注] 我试图使这篇文章面
向Linux 新手, 而且由于我不是一个 X 的黑客, 也 从来都不是 W95
的黑客, 所以文中可能有一些不准确的地方, 但是我尽量体现 X 的精
髓和妙处(对 w95 也一样). 我希望得到 X 专家和新手的指正.
Sergio 问了关于 GNOME 和 KDE 的问题, 在此文的大部分视二者
等同 (同时 也视所有的窗口管理器相同). 我现在需要声明, 相对
KDE 我更喜欢用 GNOME, 尽管现在正有 KDE 和 开放源代码的争论.
因此相比 KDE,我对 GNOME 更有经验. 这可能也会导致一些不准确之
处.
有意见和建议请发电子邮件到: pgc@maths.warwick.ac.uk
以下是 Sergios 的来信:
我的致信是为我的一个想法寻求快速的答复. 我现在正在使用
GNOME 桌面环境. 对于 Linux, 我相对而言是一个新手, 然而我想一
篇简短的关于窗口管理器的文章 对于很多只有较少经验的读者们会有
好处. 以下是一些我现在不太理解的事情:
1. 一些术语: 在 GUI, 窗口管理器(window manager), 桌面环境
(desktop), 及界面 (interface)之间的区别(如果有的话). 它们和 X
窗口(windows)有什么不同?
2. 是所有的窗口管理器(象 GNOME 或 KDE 或 FVWM95) 都运行在 X
窗口之上吗?
3. 对一个应用程序来说, 所谓"GNOME 或 KDE 兼容(aware)"是什么意
思? 如果程序 不是会怎么样? 你还能运行它吗?
4. GTK+ 库(在 GNOME上) 或 Troll 库(在 KDE 上)究竟是做什么用
的?
5. 和提供给 Win98/95 用户的桌面环境相比, Linux (或 Unix)的历
史怎么样? 尤其是, 怎样评价微软(Microsoft)通过只向用户提供一种
据称是为"易用"而设计 的桌面环境?
6. 公共桌面环境(CDE)怎么样 ? 它在 Linux 用户中没有被广泛采用
是否是因为 象有人所说的它是"吃资源的猪", 或者是没有开放源代
码?
从这些问题出发可以写一篇具有启发性的简短的文章. 谢谢您的关注.
-- Sergio E. Martinez
在我回答所有问题之前, 我想先对 X-windows 作个简短介绍.
试从普通程序的角度考虑 X. 当你键入 startx 时, 所发生的就
是 X 在后台运行 起来了(惊呀吧!), 并且执行 .xinitrc 文件.
.xinitrc 告诉 X 一旦 X 自己启动 然后启动什么程序 -- 稍后我会
详述此点. (有些系统用 .Xclients 文件替代 .xinitrc - 我将只用
.xinitrc).
既然 X 就是一个程序, 那它做些什么呢? 概略地说, X 从命令行
那里接管了屏幕 控制, 然后提供给系统以创建窗口和与之通信的能
力. 基本上这就是它所做的一切. 至于窗口的描绘, 移动, 改变大小,
输入焦点等等, (也就是管理 X 所提供的窗口) 都留给了窗口管理器.
X 的聪明之处在于采用了客户机/服务器的模型, 而且作到了网络
透明. 哦, 这都是 行话 -- 究竟什么意思呢?
当你键入 startx 时, 你是在启动 X 服务器 (X-server), 当你
运行一个 X 应用 程序时, 例如 netscape, 它是 X 服务器的一个客
户, X 服务器向它提供窗口. 类似 地, xterm 就是一个把命令行放到
了窗口里的 X 应用程序.
网络透明并没有太大意义如果你没有连网的话, 所以让我们假设
你启动了 X 的计算机 名字叫做 fourier 并且已经连网. 现在网上任
何一台计算机上的程序都可以请求 fourier 上的 X 服务器为它产生
一个窗口(在fourier上), 例如, 从 fourier 你可以 telnet 到
cauchy (网上的另外一台计算机)而后运行 netscape 并且让
netscape 的窗口 出现在你的屏幕上(连接在fourier的显示器).
事实上, 另外一种用法也可以- 一个 X 服务器可以一次连接多个
屏幕(或者, 象它所 称呼的,显示) - 所有的都不同 - 并且这些屏幕
甚至可以在网络的另一端. 这就回到了 X 的最初的设计目的(其中之
一): 为了 X 终端, 也就是一些看起来象一台计算机而 实际上不过是
一个显示器, 一些内存, 一个BIOS 和一个连到一台 UNIX 主机上的网
卡 的东西. 你可以到这一页来看看如何把旧的 386/486 们转变成 X
终端. (以下是对每个具体问题的回答: --译者注)
1. 一些术语: 在 GUI, 窗口管理器(window manager), 桌面环境(desktop),
及界面 (interface)之间的区别(如果有的话). 它们和 X 窗口(windows)有什
么不同?
好, 我们用到了更多的术语 - 我希望我有这个权利;-). 一个接
口是指一个软件与用户 交互的方式. Unix 命令使用一个命令行接口
(CLI)而 X 应用程序则使用一个图形用户界面(GUI). 然而不同的应贸绦虿捎貌煌姆
椒ɡ词迪 GUI, 例如在 netscape中你 选择菜单时点一下鼠标就弹出了那个菜单, 而在
ghostview 中, 你必须保持按下鼠标 才行. GNOME, KDE 和 w95想做的就是提供一致
的 GUI 给所有的应用程序, 或者至少 是这些程序的共同部分, 例如菜单, 文件选择
框, 窗口控制, 卷滚条, 等等. 你可以 到GUI 的荣辱厅来看一看好的
和坏的 GUI 设计的例子.(在窗口环境中)
就象前面所提到的, 窗口管理器接管 X 遗留的一切--这就是说,
控制 X 提供给它的 窗口. 窗口管理器通常提供给你许多别的能力,
而不仅仅限于移动, 缩放, 或图标化 窗口. 许多窗口管理器还会提供
虚拟桌面, 任务条, 桌面主题(themes), 程序管理器, 等等. 你可以
到"X 的窗口管理器"来看到包含绝大多数(如果不是全部)的窗口管理
器的列表.
(迄今为止) 桌面环境有两个用途. 我们用'桌面'来指屏幕上的背
景. GNOME, KDE, W95 和 MacOS 都提供一个背景意义的桌面, 但它们
不仅仅意味着是好看的图画的画布 -- 它就象系统中的任何目录一样.
从技术上讲, 这意味着你可以把文件放在上面. 当然, 这些文件可以
是数据(象一封给祖母的信)或程序(例如 netscape, emacs 等等). 通
常, 这种 "象目录一样工作的背景" 的哲学是随着一个图形化的文件
管理器, 因此当你在 一个文件上双击鼠标时, 或者它会运行起来(如
果它是程序的话), 或者会启动一个适当 的程序从这个文件中读取数
据. 在这种情况下, '桌面'也可以包含 GUI, 因此当人们 说
Linux/Unix 所缺少的全部就是一个'桌面'时, 他们所指的是一个程序
公共部分的 一致的设计, 一个图形化的文件管理器, 和能够让文件们
乱七八糟地搁在桌面上.
2. 是所有的窗口管理器 (象 GNOME 或 KDE 或 FVWM95) 都运行在 X
windows 上吗?
我情愿认为窗口管理器, fvwm95, 窗口产生器, 等等, 以及桌面,
GNOME 或 KDE, 是与 X 协作 - 但这仅仅是说法不同. 窗口管理器和/
或桌面是在 X 启动之后启动的. (写在 .xinitrc 文件中)
传统上(就是在 KDE/GNOME 之前) .xinitrc 中的设置(在一些环
境变量之后)是启动 一些 xterm 和 一个窗口管理器, 所以 .xinitrc
中的最后几行可能是这样:
xterm &
xterm &
fvwm95
窗口管理器是 .xinitrc 所启动的最后一个东西, 当它退出时,
.xinitrc 也就结束了, 然后 X 结束.
假如你在使用 GNOME, .xinitrc 文件的最后几行可能是这样的:
fvwm95 &
gnome-session
对于 KDE, 则会是:
startkde
就象前面所说, GNOME(KDE) 是.xinitrc 所启动的最后一个东西,
所以当你退出 GNOME (KDE)时, gnome-session (startkde) 终止,
.xinitrc 完成, 然后 X 结束.
在以上的例子中, xterm 会被记下因为 GNOME 和 KDE 提供会话
级的管理, 这就是说 当一个会话结束时正在运行的任何程序在下一个
会话启动时都会启动. Windows 也有 一些会话管理的功能.
请看下一个问题的答案以了解为什么 GNOME 需要窗口管理器的启
动, 而 KDE 不需要.
3. 对一个应用程序来说, 所谓"GNOME 或 KDE 兼容(aware)"是什么意思?
如果程序 不是会怎么样? 你还能运行它吗?
据我的理解, 如果一个应用程序符合 GNOME (KDE) GUI 设计原则
/详细说明, 并且使用 Gtk+ (qt)程序库, 那么它就是一个
GNOME(KDE) 应用程序. 这意味着, GNOME 应用程序使用 Gtk+ 来构造
菜单, 按钮, 卷滚条, 文件选择框, 等等, 而且它们 用一致的方式
(由 GNOME 小组定义) 来产生这些. 例如, 所有的菜单都是左对齐,
所有的应用程序都有一个"文件"(FILE)菜单作为最左边的菜单, 等等.
KDE 的情况 也是一样,除了它使用的是 Troll Tech 的"qt" 程序库以
外(以及可能用另一套设计 指导原则).
只要你安装了 Gtk+ 库(和其他 GNOME 库), 任何 GNOME 应用程
序就可以运行, 类似 地, 任何 KDE 程序都可以运行只要你安装了 qt
库(和其它 KDE 库).-- 你并不一定 需要运行 GNOME/KDE 为了使用
GNOME/KDE 的应用程序. 另一个 GNOME/KDE 可能有的 功能是可"拖放
"性, 例如在 GNOME 里, 你可以从GMC(文件管理器)的窗口里拖一个
JPG 文件到"电子眼"(ElectricEyes)(图形浏览器)窗口中, 然后"电子
眼"会显示出这个 文件. 你可以在 KDE 里做类似的事情.
GNOME 和 KDE 以不同的方式对待窗口管理器. KDE 偏爱在它自己
的窗口管理器 Kwm 上工作, 而 GNOME 则是对窗口管理器"无所谓"-
不过这些只是"政治路线". 你可以用 其它的窗口管理器与 KDE 合作
(别人这么告诉我), GNOME 则应该可以与任何窗口管理 器合作, 但是
它最好是与ICCCM 兼容及"符合 GNOME"的窗口管理器合作. 我不能肯
定它 的确切要求, 但我知道唯一完全兼容的窗口管理器只有
Enlightenment DR0.15 (它是 现在CVS唯一可以提供的),带上 icewm,
和 blackbox 及 windowmaker. 我想 KDE 小组 正在努力工作使 KDE
减少对 Kwm 的依赖, 及定义 KDE 的窗口管理器材(wm) 应该是 什么
样.
4. GTK+ 库(在 GNOME上) 或 Troll 库(在 KDE 上)究竟是做什么用的?
哦!(Whoops) - 我想我在上面已回答了这个问题. Gtk+ 和 qt 是
用于构造菜单, 按钮, 卷滚条, 对话框, 和其他更多东西的工具箱.
5. 和提供给 Win98/95 用户的桌面环境相比, Linux (或 Unix)的历史怎么
样? 尤其是, 怎样评价微软(Microsoft)通过只向用户提供一种据称是为"
易用"而设计 的桌面环境?
我不敢说理解了这个问题能够回答它. 所以我来回答一个代替它
的问题, 我想你问的 也许是它: UNIX + X 和 W95/98/NT 的区别是什
么?
首先要指出的是UNIX中实现图形用户界面/桌面(GUI/Desktop)的
基于组件的方法. 首先, 我们有了操作系统本身, 在我们这里就是
Linux, 在其上我们有窗口系统, X, 于之协作 的我们有了窗口管理
器,fvwm (举例来说), 然后与这两者协作, 我们有了桌面/GUI, GNOME
或 KDE.这遵循了 UNIX 的一个普遍原则: 构造小的工具, 然后用很好
的方式把 它们联结起来. 这看起来有些混乱, 但是作用强大. 它意味
着其中的这个或 那个部分可以被替换, 这给了用户很多的选择(也许
太多了), 而且也有益于技术的进步. 例如, X 只是一个窗口系统而且
可能不是最后一个(喘气地说!). 会有别的, 例如, 饥饿的程序员们Y.
这就给用户一个选择, 用哪一个窗口管理器或桌面, 或者干脆不用 窗
口和桌面. - 看起来有点奇怪, 但是有些人们喜欢用命令行, 有些其
他人虽然用 X 和 窗口管理器但不喜欢用 GNOME 或 KDE.
另一方面, Windows 95/98/NT 则是不同的一罐鱼. 在这里无法
(象在UNIX里)分清操作 系统, GUI, 窗口管理器, 和桌面, 它们全都
混在一起. 因而你有了微软(Micorsoft)给 你的选择, 也就是窗口布
景(windows themes).
对微软来说这是一个优势 - 它阻止了人们顶掉和重写他们的操作
系统的一部分, 这可能 会使他们失去钞票. 例如他们认识到了在用古
老的 windows 2/3.1 时你可以简单地用另 一个兼容的DOS象 Caldera
的DR DOS 来替换 MS DOS. 在一个正在进行的诉讼案中, Caldera 宣
称微软在Windows 里增加专门的代码以使 DR DOS 看起来存在错误
(bug). 而到了 9*/NT, 它们包含了所有东西, 已没有必要使用这种策
略了.
恕我直言, W95 的桌面是低档的, 因为用户被限制在一个设计中,
而相比之下, Linux 系统 的窗口管理器+桌面可以适应每一个人.(包
括那些不想要窗口管理器或桌面的人) .
6. 公共桌面环境(CDE)怎么样 ? 它在 Linux 用户中没有被广泛采用是否
是因为 象有人所说的它是"吃资源的猪", 或者是没有开放源代码?
它没有被广泛采用是因为它是商业软件, 不是开放源代码的, 是
一个"吃资源的猪", 有安全性问题(Redhat 因为这一点停止销售它),
并且, 恕我直言, 已经过时了.
版权所有 (C) 1999 NJLUG
出版于第36期《Linux公报》1999年1月 中文版第三期
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:208.410毫秒