Linux 桌面的发展历程

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

LSE 图书馆。由 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 版本使用了一个名为程序管理器的简单启动器。

Windows 3.11

Windows 3.11,显示程序管理器和记事本编辑器

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

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

Windows 95

Windows 95,显示记事本编辑器

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 这个名称也旨在模仿“大型 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 Network Object Model Environment。GNOME 旨在成为完全自由的软件,并使用来自 GIMP 图像编辑器的不同工具包,称为 GTK。GTK 字面意思是 GIMP 工具包。当 GNOME 1.0 最终于 1999 年发布时,Linux 又有了一个现代桌面环境。

GNOME 1.0

GNOME 1.0 版

虽然 Linux 有两个桌面环境很棒,但“KDE 与 GNOME”的竞争持续了一段时间。到 1999 年,Trolltech 在新的公共许可证 Q Public License (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 Advanced Traditional Environment)延续了 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),但我确实认为,如果 Linux 桌面的方法不是长期以来主要为了赶上 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 许可本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.