Linux 桌面是如何发展起来的

自 1990 年代初期以来,Linux 桌面已经从一个简单的窗口管理器发展成为一个完整的桌面。加入我们,一起回顾 Linux 桌面的历史。
168 位读者喜欢这篇文章。
Compute like it's 1989

LSE Library。由 Opensource.com 修改。CC BY-SA 4.0

我最早在 1993 年安装了 Linux。那时,你真的没有太多安装操作系统的选择。在早期,许多人只是从其他人那里复制一个正在运行的镜像。后来,有人提出了创建一个 Linux “发行版” 的巧妙想法,让你能够自定义要安装的软件。那就是 Softlanding Linux System (SLS),也是我对 Linux 的第一次接触。

我的 '386 PC 没有太多内存,但足够了。SLS 1.03 需要 2MB 的内存才能运行,如果想编译程序,则需要 4MB。如果想运行 X Window System,则需要高达 8MB 的内存。而我的 PC 刚好有足够的内存来运行 X。

因为我从小就使用命令行,所以图形用户界面对我来说并不是必需的。但它确实很方便。我可以在不同的窗口中运行应用程序,并轻松地在任务之间切换。

从我第一次尝试 Linux 以来,我就被它迷住了。我一直坚持在我的桌面上使用 Linux。像许多人一样,我在一段时间内使用双启动配置运行 Linux,这样我可以跳回到 MS-DOS 和 Windows 来运行某些程序。直到 1998 年,我终于下定决心,完全投入到 Linux 中。

在过去的 26 年里,我见证了 Linux 桌面的成熟。我也尝试了有趣的桌面环境组合,我将通过回顾 Linux 桌面的历史来分享这一点。

X 和窗口管理器

Linux 上的第一个“桌面”还不是桌面。相反,它们是运行在 X Window System 上的窗口管理器。X 提供了图形用户界面的基本构建块,例如在屏幕上创建窗口以及提供键盘和鼠标输入。X 本身并没有做太多事情。为了使 X 图形环境有用,你需要一种方法来管理会话中的所有窗口。这就是窗口管理器的作用。运行像 xterm 或 xclock 这样的 X 程序会在窗口中打开该程序。窗口管理器会跟踪窗口并执行基本的内务处理,例如让你移动窗口并最小化它们。剩下的就取决于你了。你可以在 X 启动时通过在 ~/.xinitrc 文件中列出它们来启动程序,但通常你会从 xterm 运行新程序。

1993 年最常见的窗口管理器是 TWM,它可以追溯到 1988 年。TWM 非常简单,只提供基本的窗口管理。

TWM on SLS 1.05

SLS 1.05 上的 TWM 显示了 xterm、xclock 和 emacs 编辑器

另一个早期的窗口管理器是 OpenLook Virtual Window Manager (OLVWM)。OpenLook 是 Sun Microsystems 在 1980 年代开发的图形用户界面,后来移植到其他 Unix 平台。作为虚拟窗口管理器,OLVWM 支持多个工作区。

OLVWM on SLS 1.05

SLS 1.05 上的 OLVWM 显示了 xterm 和虚拟工作区选择器

当 Linux 开始流行时,其他人很快就创建了新的窗口管理器,具有更流畅的性能和改进的界面。这些新窗口管理器中的第一个是 FVWM,一个虚拟窗口管理器。FVWM 比 TWM 或 OLVWM 具有更现代的外观。但我们还没有桌面。

FVWM on SLS 1.05

SLS 1.05 上的 FVWM 显示了 xterm 和文件管理器

在现代人看来,TWM 和 FVWM 可能看起来很普通。但重要的是要记住当时其他图形环境的样子。当时的 Windows 版本看起来相当简单。Windows 1 到 3 使用一个名为 Program Manager 的普通启动器。

Windows 3.11

Windows 3.11 显示了 Program Manager 和 Notepad 编辑器

1995 年 8 月,Microsoft 发布了 Windows 95,改变了现代 PC 桌面的格局。当然,我对它印象深刻。我认为 Windows 3.x 笨拙而丑陋,但 Windows 95 流畅而漂亮。更重要的是,Windows 95 是我们现在认为的桌面。新的桌面隐喻是一个巨大的进步。你可以将图标放在桌面上——事实上,Windows 95 呈现了两个默认的桌面图标,即“我的电脑”(用于打开文件管理器)和“回收站”(用于放置稍后要删除的文件)。

但更重要的是,Windows 95 桌面意味着集成。Program Manager 消失了,取而代之的是屏幕底部的“任务栏”,它允许你使用更简单的“开始”菜单启动新程序。任务栏是多功能的,还通过一系列“按钮”和一个显示时间、扬声器音量和其他简单控件的停靠栏显示你正在运行的程序。你可以右键单击新桌面上的任何对象,Windows 95 会向你显示一个上下文相关的菜单,其中包含你可以执行的操作。

Windows 95

Windows 95 显示 Notepad 编辑器

Windows 95 界面非常流畅,并且比以前版本的 Windows——甚至其他 Linux 窗口管理器——更容易使用。为了不甘落后,Linux 开发人员创建了一个新版本的 FVWM,模仿 Windows 95 界面。这个新窗口管理器被称为 FVWM95,它仍然不是一个桌面,但它看起来非常漂亮。新的任务栏让你可以使用“开始”菜单启动新的 X 程序。任务栏还使用类似于 Windows 95 的“按钮”显示你正在运行的程序。

FVWM95 on Red Hat Linux 5.2

Red Hat Linux 5.2 上的 FVWM95 显示了 xterm 和一个快速访问程序启动器,其中包含 xterm、文件管理器和其他程序的图标

虽然 FVWM95 和其他窗口管理器正在改进,但核心问题仍然存在:Linux 并没有真正的桌面。它只有一系列窗口管理器,仅此而已。使用图形用户界面(GUI,几乎意味着它们是 X 应用程序)的 Linux 应用程序看起来都不同,并且工作方式也不同。你无法从一个应用程序复制和粘贴到另一个应用程序,除了 X Window System 提供的简单的纯文本复制/粘贴。Linux 真正需要的是对其 GUI 进行完全重做,以创建第一个桌面。

第一个 Linux 桌面

1996 年,Matthias Ettrich 对 X 下 Linux 应用程序的不一致性感到困扰。他希望使图形环境易于使用。更重要的是,他希望一切都是集成的——就像一个真正的桌面一样。

Matthias 开始开发 K 桌面环境。这里的 K 代表 “Kool”。但 KDE 这个名称也旨在模仿 “Big Unix” 世界中的通用桌面环境 (CDE)。尽管到 1996 年,CDE 看起来已经相当过时了。CDE 基于 Motif 组件集,FVWM 也模仿了相同的设计。KDE 1.0 于 1998 年 7 月最终完成,与 FVWM95 等普通窗口管理器相比,这是一个明显的改进。

KDE 1.0

K 桌面环境 (KDE) 1.0 版

KDE 是 Linux 的一大进步。最终,Linux 拥有了一个真正的桌面,具有应用程序集成和更现代的桌面图标。KDE 的设计与 Windows 95 没有什么不同。你有一个类似任务栏的东西,它位于屏幕底部,提供相当于 Windows 95 的“开始”菜单以及几个应用程序快捷方式。KDE 还支持虚拟桌面,这些桌面被巧妙地标记为“一”、“二”、“三”和“四”。正在运行的应用程序通过屏幕顶部的单独任务栏中的“按钮”表示。

但并非所有人都对 KDE 感到满意。为了从系统中抽象出 GUI,KDE 使用了 Trolltech 的 Qt 工具包库。不幸的是,Qt 没有在免费软件许可下发布。Trolltech 允许 Qt 在免费软件应用程序中免费使用,但对在商业或专有应用程序中使用它收取费用。这种二分法与免费软件不一致。这给 Linux 发行版带来了问题:他们应该包含 KDE 吗?还是默认使用像 FVWM 这样的较旧但免费软件图形用户界面?

为了回应,Miguel de Icaza 和 Federico Mena 于 1997 年开始开发一个新的 Linux 桌面。这个新项目被称为 GNOME,即 GNU 网络对象模型环境。GNOME 旨在成为完全免费的软件,并使用了来自 GIMP 图像编辑器的不同工具包,称为 GTK。GTK 字面意思是 GIMP 工具包。当 GNOME 1.0 最终于 1999 年发布时,Linux 又有了另一个现代桌面环境。

GNOME 1.0

GNOME 1.0 版

虽然 Linux 拥有两个桌面环境是一件好事,但 “KDE 与 GNOME” 的竞争持续了一段时间。到 1999 年,Trolltech 在新的公共许可证(Q 公共许可证 (QPL))下重新发布了 Qt 库。但新许可证带有自身的包袱——QPL 仅适用于 Qt 在开源软件项目中的使用,不适用于商业项目。因此,自由软件基金会认为 QPL 与 GNU 通用公共许可证 (GNU GPL) 不兼容。这个问题一直存在,直到 Trolltech 在 2000 年在 GNU GPL 第 2 版下重新发布了 Qt 库。

随时间推移的发展

Linux 桌面持续成熟。KDE 和 GNOME 进入了一场友好的竞争,推动双方添加新功能并交流想法和概念。到 2004 年,GNOME 和 KDE 都取得了重大进展,但只给用户界面带来了细微的改变。

KDE 2 和 3 继续依赖屏幕底部的“任务栏”概念,但包含了用于运行应用程序的“按钮”。KDE 最明显的变化之一是添加了 Konqueror 浏览器,它首次出现在 KDE 2 中。

KDE 2.2.2 (2001) showing the Konqueror browser

KDE 2.2.2 (2001) 显示 Konqueror 浏览器

KDE 3.2.2

在 Fedora Core 2 上运行的 KDE 3.2.2 (2004),显示 Konqueror 文件管理器(使用 Fedora Core 2 主题)

GNOME 2 也使用了任务栏的概念,但将任务栏分成两个:屏幕顶部的任务栏用于启动应用程序和响应桌面警报,页面底部的任务栏用于显示正在运行的应用程序。我个人将这两个任务栏称为“你可以做的事情”(顶部)和“你正在做的事情”(底部)。除了简化的用户界面外,GNOME 还添加了一个名为 Nautilus 的更新的文件管理器,由 Eazel 开发。

GNOME 2.6.0

在 Fedora Core 2 上运行的 GNOME 2.6.0 (2004),显示 Nautilus 文件管理器(使用 Fedora Core 2 主题)

随着时间的推移,KDE 和 GNOME 选择了不同的发展道路。两者都提供了功能丰富、强大且现代的桌面环境——但具有不同的用户界面目标。2011 年,GNOME 和 KDE 在桌面界面处理方式上出现了重大偏差。KDE 4.6(2011 年 1 月)和 KDE 4.7(2011 年 7 月)提供了更传统的桌面隐喻,同时继续依赖于许多用户熟悉的任务栏概念。当然,KDE 在底层进行了许多更改,但熟悉的外观和感觉仍然保留。

KDE 4.6

KDE 4.6,显示 Gwenview 图像查看器

2011 年,GNOME 完全改变了方向,推出了全新的桌面概念。GNOME 3 旨在创建更简单、更精简的桌面体验,让用户专注于他们正在处理的事情。任务栏消失了,取而代之的是屏幕顶部的黑色状态栏,其中包括音量和网络控制、显示时间和电池状态,并允许用户通过重新设计的菜单启动新程序。

菜单是变化最大的部分。单击“活动”菜单或将鼠标移动到“活动”热角会显示所有打开的应用程序,它们显示为单独的窗口。用户还可以从“概览”中单击“应用程序”选项卡来启动新程序。“概览”还提供了集成的搜索功能。

GNOME 3.0

GNOME 3.0,显示 GNOME 图片应用程序

GNOME 3.0

GNOME 3.0,显示活动概览

您对桌面的选择

Linux 拥有两个桌面意味着用户有很大的选择余地。有些人喜欢 KDE,有些人喜欢 GNOME。这很好。选择最适合您的桌面。

可以肯定的是,KDE 和 GNOME 都有拥护者和批评者。例如,GNOME 因放弃任务栏而选择“活动概览”而受到了相当多的批评。也许最著名的批评者是 Linus Torvalds,他在 2011 年 大声谴责并放弃了新的 GNOME,称其为“不洁的混乱”,然后在两年后 搬回了 GNOME。

其他人也对 GNOME 3 提出了类似的批评,以至于一些开发人员 fork 了 GNOME 2 源代码,创建了 MATE 桌面。MATE(代表 MATE 高级传统环境)延续了 GNOME 2 的传统任务栏界面。

无论如何,毫无疑问,目前最流行的两个 Linux 桌面是 KDE 和 GNOME。它们的当前版本都非常成熟且功能丰富。KDE 5.16 (2019) 和 GNOME 3.32 (2019) 都试图简化和精简 Linux 桌面体验——但方式不同。GNOME 3.32 继续追求极简外观,删除所有分散注意力的用户界面元素,以便用户可以专注于他们的应用程序和工作。KDE 5.16 采用更熟悉的方式,使用任务栏,但增加了一些其他的视觉改进和特色,特别是在改进的窗口小部件处理和图标方面。

KDE 5.16 Plasma

KDE 5.16 Plasma

GNOME 3.32

GNOME 3.32

与此同时,您不会完全失去兼容性。每个主要的 Linux 发行版都提供兼容性库,因此您可以在运行 GNOME 的同时运行来自 KDE 的应用程序。当您真正想要使用的应用程序是为另一个桌面环境编写的时候,这非常有用——没问题;您可以在 GNOME 上运行 KDE 应用程序,反之亦然。

我认为这种情况在短期内不会改变。我认为这是一件好事。KDE 和 GNOME 之间的良性竞争使得双方的开发人员能够不断突破界限。无论您使用 KDE 还是 GNOME,您都拥有一个具有良好集成的现代桌面。最重要的是,这意味着 Linux 拥有自由软件中最好的特性:选择。

接下来要阅读的内容
标签
photo of Jim Hall
Jim Hall 是一位开源软件倡导者和开发者,以在 GNOME 中进行可用性测试以及作为 FreeDOS 的创始人兼项目协调员而闻名。

10 条评论

感谢分享

虽然我可以使用 Linux 世界中的 GUI 选项(我目前的选择是在功能足够的机器上使用 Cinnamon DE,在功能较弱的机器上使用 Xfce),但我确实认为,如果主要方法不是长期以来赶上 Windows,Linux 桌面的现状可能会好得多,而唯一的重大例外是 Gnome 3,它突然开始让一切都变得不同,但没有将功能作为一个目标,也没有实现可用性,即使它曾经是一个目标。

无论我选择哪个 Linux 桌面,与 IBM OS/2 现已过时的 Workplace Shell 相比,它仍然看起来和感觉像一个与基础操作系统松散连接的附属品,而不是像 WPS 过去那样,成为底层操作系统不可或缺的、紧密联系的一部分。当然,Windows 在这方面也没有什么不同——从 XP 开始,他们使 UI 在每个版本中都更加色彩鲜艳和华丽,但既没有更强大也没有更可用,尤其是对于人们可能想称之为高级用户或 IT 专业人员的人来说。

在 IBM 的 WPS 中,一切都是特定“类”的“对象”,并且一切都紧密相连——因此,模仿特定文件(文件对象)的桌面图标(WPS 对象)每次文件移动到文件系统中的另一个位置时都会保持这种关系。25 年前。并且可以通过子类化和将附加功能附加到新的子类来更改和扩展某个类的每个对象的行为,例如“文件夹”类,无论是它在桌面上的显示方式还是可以在其上执行的功能。

Windows 或 Linux 上的任何当今桌面实现都未实现该功能或 WPS 的可用性。

不错的总结,对我来说非常有趣和怀旧。感谢分享!

很棒的文章,就像 Marco 说的那样,它很怀旧。 多年来使用了很多不同的桌面之后,我选择了 GNOME 3。

在 1990 年代初期/中期,经典的 Mac OS 7+ 为 GUI 和桌面设定了标准,而不是 Windows。 NextStep 在其他系统拥有任务栏之前就拥有 Dock。 BeOS 影响了 1990 年代后期的 3D 风格图标。 MacOS X Aqua 影响了 KDE 和 Gnome 的现代外观。

这就是为什么我的第一台台式电脑是 Mac 而不是 Windows。 我仍然使用 Mac,虽然不如 Linux 频繁。
我使用的最后一个 Windows 是 Windows XP。 Windows 7 问世后,我决定不再花几百美元升级,因为它并没有为我的电脑使用(主要是在 Windows 中玩游戏)添加任何东西,除了浪费我宝贵的磁盘空间,而且 Linux 游戏变得足够体面也没有帮助。
如今,Linux 拥有可以通过计算机完成的一切,包括游戏。 我只是觉得面向大众的开源操作系统的闸门很快就会成为现实。

回复 作者:Châu(未验证)

非常不错的阅读体验。 特别有趣的是 1985-1996 年(KDE / GNOME 之前)的时间段,我对这个时期了解不多。

谢谢! 您可能有兴趣了解更多关于 TWM 的信息:它有一个有趣的特性“焦点跟随鼠标”。 现代桌面使用“单击以聚焦”,因此您必须单击窗口(或使用 alt-tab)才能开始使用它。

“焦点跟随鼠标”意味着您的*鼠标*所在的窗口就是您正在使用的窗口(该窗口具有“焦点”)。

在我的 TWM 屏幕截图中,鼠标位于 emacs 窗口中,因此那是我正在使用的窗口(emacs 标题栏有额外的阴影来指示该窗口具有焦点)。 但是,如果我将鼠标移动到 xterm 窗口,我就可以在那里键入命令 - 即使该窗口仍然位于 emacs 窗口*之下*。

如果您将窗口堆叠得很深,并且只能看到标题栏,这会变得非常有趣。 是的,这意味着您可以在看不到的窗口中键入内容,仅仅是因为您的鼠标悬停在标题栏上。

回复 作者:Martin de Boer(未验证)

一篇很好的信息丰富的文章。 您已经深入介绍了 Gnome、KDE 和 MATE,然后就停止了。 我想看到一个更完整的历史,包括 Xfce 的历史。 Xfce 是一个流行的桌面,具有可用性和简单性。 它对于资源有限的机器特别有用,但也被许多功能强大的计算机上的用户使用。 Xfce 最好的功能之一是它不会仅仅为了改变而改变,也不会追随超出其作为程序启动器的基本功能的趋势或时尚,并且它在 Gnome 已经忘记的方式上非常可定制。

在 90 年代后期,我在 Red Hat 上运行 Enlightenment,在 2000 年代初期,我在 Slackware 上运行 XFCE。 现在,2019 年,我在 Ubuntu 和 Fedora 上运行 GNOME 3。 真是一次航行!

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.