Linux 桌面史话
Linux 桌面 GNOME KDE

> 
> 自 20 世纪 90 年代初以来，Linux 桌面已从一个简单的窗口管理器发展为一个完整的桌面。让我们一起来回顾一下 Linux 桌面的历史。
> 
> 
> 


![](/data/attachment/album/202004/03/142430kei55auvvv254aka.jpg)


我第一次安装 Linux 是在 1993 年。那时，安装这种操作系统没有太多的选择。早期，许多人只是从别人那里复制一个运行中的镜像。然后有人有了一个很好的想法，创建一个 Linux 的“发行版”，让你可以自定义要安装的软件。这就是 Softlanding Linux 系统（SLS），也是我首次接触 Linux。


当时我的 386 PC 虽然内存不多，但已经足够了。SLS 1.03 需要 2MB 的内存才能运行，如果要编译程序，则需要 4MB 的内存。如果要运行 X 窗口系统，则需要多达 8MB 的内存！而我的电脑正好有足够的内存来运行 X 窗口系统。


因为我是在命令行中成长的，所以图形化的用户界面对我来说并不重要，但它确实很方便，我可以在不同的窗口中运行应用程序，并在任务间轻松切换。


从我第一次尝试 Linux 开始，我就迷上了它。从那以后，我一直在台式机上使用 Linux。和许多人一样，我也曾有一段时间以双引导配置运行 Linux，这样我就可以跳回到 MS-DOS 和 Windows 来运行某些程序。直到 1998 年，我终于冒了个险，全面投身于 Linux 之中。


在过去的 26 年中，我看着 Linux 桌面逐渐成熟。在这段时间里，我还尝试了各种有趣的桌面环境，下面我来分享一下 Linux 桌面的历史。


### X 和窗口管理器


Linux 上的第一个“桌面”还不是桌面。相反，它们是运行在 X 窗口系统上的“<ruby> 窗口管理器 <rt>  window manager </rt></ruby>”（WM）。X 提供了图形用户界面的基本构件，比如在屏幕上创建窗口，并提供键盘和鼠标输入。就其本身而言，X 的用处并不大。为了使 X 图形环境变得有用，你需要一种方法来管理会话中的所有窗口。这就出现了<ruby> 窗口管理器 <rt>  window manager </rt></ruby>。运行 xterm 或 xclock 之类的 X 程序就会在一个窗口中打开该程序。窗口管理器可以跟踪窗口并进行基本的内部管理，例如让你可以来回移动窗口并将其最小化。其余的事情取决于你自己。你可以通过将程序名列在 `~/.xinitrc` 文件中以在 X 开始时启动这些程序，但是通常，你会从 xterm 中运行新程序。


在 1993 年，最常见的窗口管理器是 TWM，它的历史可以追溯到 1988 年。TWM 相当简单，仅仅提供了基本的窗口管理功能。


![TWM on SLS 1.05](/data/attachment/album/202004/03/142516eu4s0ryoo6ps930u.png "TWM on SLS 1.05")


*SLS 1.05 上的 TWM，显示了 xterm、xclock 和 Emacs 编辑器*


另一个早期的窗口管理器是 OpenLook 虚拟窗口管理器（OLVWM）。OpenLook 是 Sun 微系统公司在 20世纪 80 年代开发的图形用户界面，后来被移植到其它 Unix 平台。作为一个*虚拟*窗口管理器，OLVWM 支持多个工作区。


![OLVWM on SLS 1.05](/data/attachment/album/202004/03/142517ki2je81uj9ebb6ct.png "OLVWM on SLS 1.05")


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


当 Linux 开始流行起来的时候，没多久就有人创建出性能更流畅、界面更好的新窗口管理器。这些新的窗口管理器中首先出现的是虚拟窗口管理器 FVWM。FVWM 比 TWM 或 OLVWM 更具现代感。但是，我们仍然没有桌面。


![FVWM on SLS 1.05](/data/attachment/album/202004/03/142517lbgicv6z7diitzvz.png "FVWM on SLS 1.05")


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


以现代的眼光来看，TWM 和 FVWM 可能看起来很朴素。但重要的是要想想当时其它图形环境是什么样子。 Windows 当时的版本看起来也相当简单。Windows 版本 1 到版本 3 使用了一个称为“程序管理器”的普通启动器。


![Windows 3.11](/data/attachment/album/202004/03/142518lkreu6l4mnv6ftff.png "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](/data/attachment/album/202004/03/142520fy6yua465u2giaqv.png "Windows 95")


*Windows 95，显示了记事本编辑器*


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


![FVWM95 on Red Hat Linux 5.2](/data/attachment/album/202004/03/142521cmc9iqlqiu6niqjh.png "FVWM95 on Red Hat Linux 5.2")


*在 Red Hat Linux 5.2 上的 FVWM95，显示了 xterm 和一个带有 xterm 图标、文件管理器和其他程序的快速访问程序启动器*


虽然 FVWM95 和其他窗口管理器都在改进，但核心问题仍然存在：Linux 并没有真正的桌面。它具有一堆窗口管理器，仅此而已。使用图形用户界面的 Linux 应用程序（基本上意味着它们是 X 应用程序）看起来形态各异且工作方式也不同。除了 X 窗口系统提供的简单的纯文本复制/粘贴功能外，你不能从一个应用程序复制和粘贴到另一个应用程序里。Linux 真正需要的是在其图形用户界面中进行彻底的重新打造，以创建它的第一个桌面。


### Linux 桌面之初啼


在 1996 年，Matthias Ettrich 有感于 X 之下 Linux 应用程序体验不一致的困扰。他想使找个更易于使用的图形环境，而且更重要的是，他想让所有东西都“集成”在一起，就像真正的桌面一样。


Matthias 开始了<ruby> K 桌面环境 <rt>  K Desktop Environment </rt></ruby>（KDE）的工作。那个 K 代表着 “Kool”（LCTT 译注：即 Cool）。但是 KDE 这个名字也意味着可以类似<ruby> 通用桌面环境 <rt>  Common Desktop Environment </rt></ruby>（CDE）的做法，而 CDE 是“大 Unix”世界的标准。尽管到了 1996 年，CDE 看起来已经有点过时了。CDE 基于 Motif 部件集，这也是 FVWM 所模仿的设计。KDE 1.0 于 1998 年 7 月完成，与 FVWM95 等普通窗口管理器相比，它有了明显改进。


![KDE 1.0](/data/attachment/album/202004/03/142526iao96df8affatt28.png "KDE 1.0")


*K 桌面环境（KDE）版本 1.0。图片来源：Paul Brown / KDE*


KDE 是 Linux 向前迈出的一大步。最终，Linux 有了一个真正的桌面，集成了应用程序和更多现代的桌面图标。KDE 的设计与 Windows 95 并无不同。屏幕底部有一个任务栏，它提供了相当于 Windows 95 的“开始”菜单以及一些应用程序的快捷键。KDE 还支持虚拟桌面，这些桌面被巧妙地标记为 “One”、“ Two”、“Three” 和 “Four”。正在运行的应用程序通过位于屏幕顶部单独的任务栏的按钮表示。


但并不是每个人都对 KDE 感到满意。为了将 GUI 从系统中抽象出来，KDE 使用了 Trolltech 的 Qt 工具套件库。不幸的是，Qt 并不是以自由软件的许可证进行分发的。Trolltech 允许 Qt 在自由软件应用程序中免费使用，但在商业或专有应用程序中要收取使用费。而且这种二分法与自由软件不符。这给 Linux 发行版带来了问题：它们应该包括 KDE 吗？还是默认使用 FVWM 这样老式但属于自由软件的图形用户界面？


面对这种情况，Miguel de Icaza 和 Federico Mena 于 1997 年开始开发新的 Linux 桌面上。这个新项目被称为 GNOME，即<ruby> GNU 网络对象模型环境 <rt>  GNU Network Object Model Environment </rt></ruby>的缩写。GNOME 旨在成为一个完全自由的软件，并使用了一个不同的工具套件库 —— 来自 GIMP 图像编辑器的 GTK。GTK 从字面上的意思 <ruby> GIMP 工具套件 <rt>  GIMP Tool Kit </rt></ruby>。当 GNOME 1.0 终于在 1999 年发布时，Linux 又多了一个现代化的桌面环境。


![GNOME 1.0](/data/attachment/album/202004/03/142543us4ft4cbbt7jt4tf.png "GNOME 1.0")


*GNOME 1.0 版。图片来源：GNOME 文档项目*


有两个 Linux 桌面环境固然很棒，但“KDE 与 GNOME”之争仍持续了一段时间。到了 1999 年，Trolltech 以新的公共许可证 <ruby> Q 公共许可证 <rt>  Q Public License </rt></ruby>（QPL）重新发布了 Qt 库。但是，新许可证有其自身的包袱—-QPL 仅适用于 Qt 在开源软件项目中的使用，而不适用于商业项目。因此，<ruby> 自由软件基金会 <rt>  Free Software Foundation </rt></ruby>（FSF）认为 QPL 与 <ruby> GNU 通用公共许可证 <rt>  GNU General Public License </rt></ruby>（GNU GPL）[不兼容](https://www.linuxtoday.com/developer/2000090500121OPLFKE)。这个许可证问题一直持续到 2000 年 Trolltech 在 GNU GPL v2 下重新发布 Qt 库。


### 随着时间的发展


Linux 桌面继续走向成熟。KDE 和 GNOME 进行了一场友好的竞争，促使双方都在增加了新的功能，还互相交流了思想和观念。到了 2004 年，GNOME 和 KDE 都取得了长足的进步，但只是给用户界面带来了渐进式的变化。


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


![KDE 2.2.2 \(2001\) showing the Konqueror browser](/data/attachment/album/202004/03/142601myfdvn0zkeq0yyky.png "KDE 2.2.2 (2001) showing the Konqueror browser")


*KDE 2.2.2（2001），显示了 Konqueror 浏览器。图片来源：Paul Brown / KDE*


![KDE 3.2.2](/data/attachment/album/202004/03/142618ibssww87ch8gbv8c.png "KDE 3.2.2")


*Fedora Core 2 上的 KDE 3.2.2（2004），显示了 Konqueror 文件管理器（使用 Fedora Core 2 主题）*


GNOME 2 也使用了任务栏概念，但将任务栏一分为二：屏幕顶部的任务栏用于启动应用程序并响应桌面提示，屏幕底部的任务栏用于显示正在运行的应用程序。我把这两个任务栏称之为“你可以做的事情”（顶部）和“你正在做的事情”（底部）。除了精简的用户界面外，GNOME 还添加了由 Eazel 开发的更新过的文件管理器，名为 Nautilus。


![GNOME 2.6.0](/data/attachment/album/202004/03/142622g2ux5d90dz92677z.png "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](/data/attachment/album/202004/03/142652a01ev1yvmy17sg4g.png "KDE 4.6")


*KDE 4.6，显示 Gwenview 图像查看器。图片来源：KDE*


2011 年，GNOME 以一个新的桌面概念彻底改变了走向。GNOME 3 旨在创建一个更简单、更精简的桌面体验，使用户能够专注于自己的工作。任务栏消失了，取而代之的是屏幕顶部的黑色状态栏，其中包括音量和网络控件，显示了时间和电池状态，并允许用户通过重新设计过的菜单启动新程序。


菜单的变化最具最戏剧性。单击“活动”菜单或将鼠标移到“活动”的“热角”，所有打开的应用程序会显示为单独的窗口。用户还可以从“概述”中单击“应用程序”选项卡以启动新程序。“概述”还提供了一个内部集成的搜索功能。


![GNOME 3.0](/data/attachment/album/202004/03/142711om9hq79omoxxmmr7.png "GNOME 3.0")


*GNOME 3.0，显示 GNOME 图片应用程序。图片来源：GNOME*


![GNOME 3.0](/data/attachment/album/202004/03/142729sqkmvml35alkhl5k.png "GNOME 3.0")


*GNOME 3.0，显示活动概述。图片来源：GNOME*


### 你的桌面之选


拥有两个 Linux 桌面意味着用户有很大的选择余地。有些人喜欢 KDE，而另一些人喜欢 GNOME。没关系，选择最适合你的桌面就行。


可以肯定的是，KDE 和 GNOME 都有拥护者和批评者。例如，GNOME 因为放弃任务栏而改成“活动概述”而受到了不少批评。也许最著名的批评者是 Linus Torvalds，他在 2011 年[大声斥责并抛弃了](https://www.theregister.co.uk/2011/08/05/linus_slams_gnome_three/)新的 GNOME，将其视为“邪恶的烂摊子”，然后在两年后又[回到了](https://www.phoronix.com/scan.php?page=news_item&px=MTMxNjc) GNOME。


其他人也对 GNOME 3 提出了类似的批评，以至于一些开发人员复刻 GNOME 2 的源代码创建了 MATE 桌面。MATE（是<ruby> MATE 高级传统环境 <rt>  MATE Advanced Traditional Environment </rt></ruby>的递归缩写）延续了 GNOME 2 的传统任务栏界面。


无论如何，毫无疑问当今两个最受欢迎的 Linux 桌面是 KDE 和 GNOME。它们的当前版本非常成熟，功能也很丰富。KDE 5.16（2019）和 GNOME 3.32（2019）都试图简化和精简 Linux 桌面体验，但是方式有所不同。GNOME 3.32 继续致力于极简外观，删除所有分散用户注意力的用户界面元素，以便用户可以专注于其应用程序和工作。KDE 5.16 采用了更为熟悉的任务栏方法，但也增加了其他视觉上的改进和亮点，尤其是改进的小部件处理和图标。


![KDE 5.16 Plasma](/data/attachment/album/202004/03/142737nw3l58udxssuz3q8.png "KDE 5.16 Plasma")


*KDE 5.16 Plasma。图片来源：KDE*


![GNOME 3.32](/data/attachment/album/202004/03/142754f1nidozdgr41a4ga.png "GNOME 3.32")


*GNOME 3.32。图片来源：GNOME*


同时，你也不会完全失去它们之间的兼容性。每个主要的 Linux 发行版都提供了兼容性库，因此你可以在运行 GNOME 的同时来运行 KDE 应用程序。当你真正想使用的应用程序是为其他桌面环境编写的，这一点非常有用。你可以在 GNOME 上运行 KDE 应用程序，反之亦然。


我认为这种态势不会很快改变，这是一件好事。KDE 和 GNOME 之间的良性竞争使这两个阵营的开发人员可以避免故步自封。无论你使用 KDE 还是 GNOME，你都将拥有一个集成度很高的现代化桌面。而最重要的是，这意味着 Linux 拥有自由软件最好的特点：选择。




---


via: <https://opensource.com/article/19/8/how-linux-desktop-grown>


作者：[Jim Hall](https://opensource.com/users/jim-hallhttps://opensource.com/users/jason-bakerhttps://opensource.com/users/jlacroixhttps://opensource.com/users/doni08521059https://opensource.com/users/etc-eterahttps://opensource.com/users/marcobravohttps://opensource.com/users/alanfdoss) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


OK
I first installed Linux in 1993. At that time, you really didn't have many options for installing the operating system. In those early days, many people simply copied a running image from someone else. Then someone had the neat idea to create a "distribution" of Linux that let you customize what software you wanted to install. That was the Softlanding Linux System (SLS) and my first introduction to Linux.

My '386 PC didn't have much memory, but it was enough. SLS 1.03 required 2MB of memory to run, or 4MB if you wanted to compile programs. If you wanted to run the X Window System, you needed a whopping 8MB of memory. And my PC had just enough memory to run X.

As I'd grown up with the command line, a graphical user interface wasn't essential to me. But it sure was convenient. I could run applications in different windows and easily switch between tasks.

From my first experiment with Linux, I was hooked. I've stuck with Linux on my desktop ever since. Like many people, I ran Linux in a dual-boot configuration for a while so I could jump back to MS-DOS and Windows to run certain programs. Until 1998, when I finally took the plunge and went all-in with Linux.

Over the last 26 years, I have watched the Linux desktop mature. I've also tried an interesting combination of desktop environments over that time, which I'll share by taking a journey through the history of the Linux desktop.

## X and window managers


The first "desktops" on Linux weren't yet desktops. Instead, they were *window managers* running on the X Window System. X provided the basic building blocks for a graphical user interface, such as creating windows on the screen and providing keyboard and mouse input. By itself, X didn't do much. To make the X graphical environment useful, you needed a way to manage all the windows in your session. That's where the *window manager* came in. Running an X program like xterm or xclock opens that program in a window. The window manager keeps track of windows and does basic housekeeping, such as letting you move windows around and minimize them. The rest is up to you. You could launch programs when X started by listing them in the **~/.xinitrc** file, but usually, you'd run new programs from an xterm.

The most common window manager in 1993 was TWM, which dates back to 1988. TWM was quite simple and provided only basic window management.

![TWM on SLS 1.05 TWM on SLS 1.05](https://opensource.com/sites/default/files/uploads/twm-sls105.png)

TWM on SLS 1.05 showing xterm, xclock, and the emacs editor

Yet another early window manager was the OpenLook Virtual Window Manager (OLVWM). OpenLook was a graphical user interface developed by Sun Microsystems in the 1980s and later ported to other Unix platforms. As a *virtual* window manager, OLVWM supported multiple workspaces.

![OLVWM on SLS 1.05 OLVWM on SLS 1.05](https://opensource.com/sites/default/files/uploads/olvwm-sls105.png)

OLVWM on SLS 1.05 showing xterm and the virtual workspaces selector

When Linux began to grow in popularity, it didn't take long for others to create new window managers with smoother performance and improved interfaces. The first of these new window managers was FVWM, a virtual window manager. FVWM sported a more modern look than TWM or OLVWM. But we didn't yet have a desktop.

![FVWM on SLS 1.05 FVWM on SLS 1.05](https://opensource.com/sites/default/files/uploads/fvwm-sls105.png)

FVWM on SLS 1.05 showing xterm and a file manager

To modern eyes, TWM and FVWM may look pretty plain. But it's important to remember what other graphical environments looked like at the time. The then-current version of Windows looked rather simple. Windows versions 1 through 3 used a plain launcher called the Program Manager.

![Windows 3.11 Windows 3.11](https://opensource.com/sites/default/files/uploads/win311.png)

Windows 3.11 showing the Program Manager and the Notepad editor

In August 1995, Microsoft released Windows 95 and changed the modern PC desktop landscape. Certainly, I was impressed. I thought Windows 3.x was ungainly and ugly, but Windows 95 was smooth and pretty. More importantly, Windows 95 was what we now consider a *desktop*. The new desktop metaphor was a huge step forward. You could put icons on the desktop—and in fact, Windows 95 presented two default desktop icons, for My Computer (to open a file manager) and the Recycle Bin (where you put files to be deleted later).

But more importantly, the Windows 95 desktop meant *integration*. The Program Manager was gone, replaced by a Taskbar at the bottom of the screen that let you launch new programs using a simpler Start menu. The Taskbar was multifunctional and also showed your running programs via a series of buttons and a dock showing the time, speaker volume, and other simple controls. You could right-click on any object on the new desktop, and Windows 95 would present you with a context-sensitive menu with actions you could perform.

![Windows 95 Windows 95](https://opensource.com/sites/default/files/uploads/win95.png)

Windows 95 showing the Notepad editor

The Windows 95 interface was slick and much easier to use than previous versions of Windows—and even other Linux window managers. Not to be outdone, Linux developers created a new version of FVWM that mimicked the Windows 95 interface. Called FVWM95, the new window manager still wasn't a desktop, but it looked very nice. The new taskbar let you start new X programs using the Start menu. The taskbar also showed your running programs using buttons similar to Windows 95's.

![FVWM95 on Red Hat Linux 5.2 FVWM95 on Red Hat Linux 5.2](https://opensource.com/sites/default/files/uploads/fvwm95-rh52.png)

FVWM95 on Red Hat Linux 5.2 showing xterm and a quick-access program launcher with icons for xterm, the file manager, and other programs

While FVWM95 and other window managers were improving, the core problem remained: Linux didn't really have a desktop. It had a collection of window managers, and that was about it. Linux applications that used a graphical user interface (GUI, pretty much meaning they were X applications) all looked different and worked differently. You couldn't copy and paste from one application to another, except the simple text-only copy/paste provided by the X Window System. What Linux really needed was a complete redo in its GUI to create the first desktop.

## The first Linux desktop

In 1996, Matthias Ettrich was troubled by the inconsistency of Linux applications under X. He wanted to make the graphical environment easy to use. And more importantly, he wanted to make everything *integrated*—like an actual desktop.

Matthias started work on the K Desktop Environment. That's K for "Kool." But the name KDE was also meant to be a play on the Common Desktop Environment (CDE) that was the standard in the "Big Unix" world. Although by 1996, CDE was looking pretty dated. CDE was based on the Motif widget set, which is the same design that FVWM mimicked. Finalized in July 1998, KDE 1.0 was a definite improvement over plain window managers like FVWM95.

![KDE 1.0 KDE 1.0](https://opensource.com/sites/default/files/uploads/kde1.png)

K Desktop Environment (KDE) version 1.0

KDE was a big step forward for Linux. Finally, Linux had a true desktop with application integration and more modern desktop icons. KDE's design was not dissimilar from Windows 95. You had a kind-of taskbar along the bottom of the screen that provided the equivalent of Windows 95's Start menu as well as several application shortcuts. KDE also supported virtual desktops, which were cleverly labeled One, Two, Three, and Four. Running applications were represented via buttons in a separate taskbar at the top of the screen.

But not everyone was happy with KDE. To abstract the GUI from the system, KDE used Trolltech's Qt toolkit library. Unfortunately, Qt was not distributed under a free software license. Trolltech allowed Qt to be used at no charge in free software applications but charged a fee to use it in commercial or proprietary applications. And that dichotomy is not aligned with free software. This caused problems for Linux distributions: Should they include KDE? Or default to an older but free software graphical user interface like FVWM?

In response, Miguel de Icaza and Federico Mena started work in 1997 on a new Linux desktop. The new project was dubbed GNOME, for GNU Network Object Model Environment. GNOME aimed to be completely free software and used a different toolkit, called GTK, from the GIMP image editor. GTK literally stood for GIMP Tool Kit. When GNOME 1.0 was finally released in 1999, Linux had another modern desktop environment.

![GNOME 1.0 GNOME 1.0](https://opensource.com/sites/default/files/uploads/gnome10.png)

GNOME version 1.0

While it was great to have two desktop environments for Linux, the "KDE versus GNOME" rivalry continued for some time. By 1999, Trolltech re-released the Qt library under a new public license, the Q Public License (QPL). But the new license carried its own baggage—the QPL only applied to Qt's use in open source software projects, not commercial projects. Thus the Free Software Foundation deemed the QPL [not compatible](https://www.linuxtoday.com/developer/2000090500121OPLFKE) with the GNU General Public License (GNU GPL). This licensing issue would remain until Trolltech re-re-released the Qt library under the GNU GPL version 2 in 2000.

## Development over time

The Linux desktop continued to mature. KDE and GNOME settled into a friendly competition that pushed both to add new features and to exchange ideas and concepts. By 2004, both GNOME and KDE had made significant strides, yet brought only incremental changes to the user interface.

KDE 2 and 3 continued to rely on a taskbar concept at the bottom of the screen but incorporated the buttons for running applications. One of KDE's most visible changes was the addition of the Konqueror browser, which first appeared in KDE 2.

![KDE 2.2.2 KDE 2.2.2 (2001) showing the Konqueror browser](https://opensource.com/sites/default/files/uploads/kde_2.2.2.png)

KDE 2.2.2 (2001) showing the Konqueror browser

![KDE 3.2.2 KDE 3.2.2](https://opensource.com/sites/default/files/uploads/kde322-fc2.png)

KDE 3.2.2 (2004) on Fedora Core 2 showing the Konqueror file manager (using a Fedora Core 2 theme)

GNOME 2 also used a taskbar concept but split the bar into two: a taskbar at the top of the screen to launch applications and respond to desktop alerts, and a taskbar at the bottom of the page to show running applications. On my own, I referred to the two taskbars as "things you can do" (top) and "things are you doing" (bottom). In addition to the streamlined user interface, GNOME also added an updated file manager called Nautilus, developed by Eazel.

![GNOME 2.6.0 GNOME 2.6.0](https://opensource.com/sites/default/files/uploads/gnome26-fc2.png)

GNOME 2.6.0 (2004) on Fedora Core 2 showing the Nautilus file manager (using a Fedora Core 2 theme)

Over time, KDE and GNOME have taken different paths. Both provide a feature-rich, robust, and modern desktop environment—but with different user interface goals. In 2011, there was a major deviation between how GNOME and KDE approached the desktop interface. KDE 4.6 (January 2011) and KDE 4.7 (July 2011) provided a more traditional desktop metaphor while continuing to rely on the taskbar concept familiar to many users. Of course, KDE saw lots of changes under the hood, but the familiar look and feel remained.

![KDE 4.6 KDE 4.6](https://opensource.com/sites/default/files/uploads/kde46.png)

KDE 4.6 showing the Gwenview image viewer

In 2011, GNOME completely changed gears with a new desktop concept. GNOME 3 aimed to create a simpler, more streamlined desktop experience, allowing users to focus on what they were working on. The taskbar disappeared, replaced by a black status bar at the top of the screen that included volume and network controls, displayed the time and battery status, and allowed users to launch new programs via a redesigned menu.

The menu was the most dramatic change. Clicking the Activities menu or moving the mouse into the Activities "hot corner" showed all open applications as separate windows. Users could also click an Applications tab from the Overview to start a new program. The Overview also provided an integrated search function.

![GNOME 3.0 GNOME 3.0](https://opensource.com/sites/default/files/uploads/gnome30.png)

GNOME 3.0 showing the GNOME Pictures application

![GNOME 3.0 GNOME 3.0](https://opensource.com/sites/default/files/uploads/gnome30-overview.png)

GNOME 3.0 showing the Activities Overview

## Your choice of desktop

Having two desktops for Linux means users have great choice. Some prefer KDE and others like GNOME. That's fine. Pick the desktop that best suits you.

To be sure, both KDE and GNOME have fans and detractors. For example, GNOME received a fair bit of criticism for dropping the taskbar in favor of the Activities Overview. Perhaps the most well-known critic was Linus Torvalds, who [loudly denounced and abandoned](https://www.theregister.co.uk/2011/08/05/linus_slams_gnome_three/) the new GNOME as an "unholy mess" in 2011—before [moving back](https://www.phoronix.com/scan.php?page=news_item&px=MTMxNjc) to GNOME two years later.

Others have made similar criticisms of GNOME 3, to the point that some developers forked the GNOME 2 source code to create the MATE desktop. MATE (which stands for MATE Advanced Traditional Environment) continues the traditional taskbar interface from GNOME 2.

Regardless, there's no doubt that the two most popular Linux desktops today are KDE and GNOME. Their current versions are both very mature and packed with features. Both KDE 5.16 (2019) and GNOME 3.32 (2019) try to simplify and streamline the Linux desktop experience—but in different ways. GNOME 3.32 continues to aim for a minimal appearance, removing all distracting user interface elements so users can focus on their applications and work. KDE 5.16 takes a more familiar approach with the taskbar but has added other visual improvements and flair, especially around improved widget handling and icons.

![KDE 5.16 Plasma KDE 5.16 Plasma](https://opensource.com/sites/default/files/uploads/kde516.png)

KDE 5.16 Plasma

![GNOME 3.32 GNOME 3.32](https://opensource.com/sites/default/files/uploads/gnome332.png)

GNOME 3.32

At the same time, you don't completely lose out on compatibility. Every major Linux distribution provides compatibility libraries, so you can run applications from, say, KDE while running GNOME. This is immensely useful when an application you really want to use is written for the other desktop environment—not a problem; you can run KDE applications on GNOME and vice versa.

I don't see this changing anytime soon. And I think that's a good thing. Healthy competition between KDE and GNOME has allowed developers in both camps to push the envelope. Whether you use KDE or GNOME, you have a modern desktop with great integration. And above all, this means Linux has the best feature in free software: choice.

## 10 Comments