Linux 桌面的发展历程

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

LSE 图书馆。由 Opensource.com 修改。CC BY-SA 4.0

我第一次安装 Linux 是在 1993 年。那时,安装操作系统的选择真的不多。在早期,许多人只是简单地从别人那里复制一个正在运行的镜像。然后有人提出了一个绝妙的主意,创建 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”世界中的标准 Common Desktop Environment (CDE)。尽管到 1996 年,CDE 看起来已经相当过时了。CDE 基于 Motif widget set,这与 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 Tool Kit。当 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 General Public License (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 采用更熟悉的任务栏方法,但添加了其他视觉改进和风格,尤其是在改进的 widget 处理和图标方面。

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 License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.