
A brief history of the Linux desktop
I first discovered Linux in 1993 when I was an undergraduate student. I “grew up” on DOS, and the Unix systems in our campus computer lab were both familiar (because of the command line interface) and more powerful (multitasking and more tools). I wanted something similar for my computer at home, and eventually found this “Linux” operating system, which was just like the “Big Unix” systems on campus, but it included source code.
In the early days, people often copied a working Linux system from someone else. In 1992, Softlanding Linux System (SLS) was the first Linux distribution. It installed the operating system as packages so you could choose what packages and package groups you wanted to install. I installed SLS 1.03 in May 1993.
Back then, Linux needed only 2 MB of memory to boot up and use the command line, or 4 MB if you wanted to compile programs. If you wanted to run the X Window System, you needed 8 MB of memory. That meant my ’386 computer had just enough memory to run Linux with X.
Like many people in the 1990s, I ran Linux in a “dual boot” configuration, so I could use a boot menu to selectively start up my computer with either Linux or DOS (or later, Windows 95) By the time Windows 98 came out in 1998, I didn’t need Windows anymore, and I went “all in” with Linux.
Since that first experiment with Linux, I have used Linux on my desktop. That’s 32 years since I first installed Linux, and 27 years running Linux exclusively. I’ve watched Linux “grow up” over the years, especially with the graphical desktops. Let’s look back on a brief history of the Linux desktop:
X and window managers
The first graphical environments for Linux weren’t really desktop systems. Instead, you ran the X Window System with a window manager on top of it. X provided the basic components for a graphical user interface, such as using the mouse, and the window manager actually managed the different program windows that ran inside X.
The de facto window manager in 1993 was TWM, which dates back to 1998. TWM was quite simple and provided basic window management, but it did the job, and matched the TWM system running on the SunOS systems in our campus computer lab:

Another early window manager was the Open Look Virtual Window Manager (OLVWM). Developed by Sun Microsystems, Open Look was also ported to other Unix-like systems. And as a virtual window manager, OLVWM supported multiple work spaces. That meant you could use one work space for your terminal and editor so you could write and compile programs, another work space for your email, and so on.

As Linux grew in popularity, others created new window managers that improved the “desktop” experience. One of these early Linux window managers was FVWM, which also supported virtual work spaces. FVWM also had a more modern look than TWM or OLVWM, and initially looked like the Common Desktop Environment with the Motif widgets from “Big Unix” systems:

Modern Linux users might think that these early desktops are quite plain, but it’s important to remember they were similar to other graphical environments of the day. Until 1995, Windows had a similar interface. Windows used simple window controls, and used a program manager to launch new applications:

In August 1995, Microsoft released Windows 95 and changed the desktop interface, at least on PC. I didn’t like Windows 3, but I thought Windows 95 was okay. And most importantly, Windows 95 was a proper desktop system—and you could even put icons on the desktop. That seems like a small thing now, but it was a big deal at the time:

The Windows 95 interface was much easier to use than previous versions of Windows, and even other Linux window managers. Not to be outdone, Linux developers updated the FVWM window manager to mimic the Windows 95 interface. FVWM95 wasn’t a desktop but it looked like one, including a version of the “Start” menu and a task bar that showed the programs you were running:

FVWM95 and other window managers were improving, but none were really an integrated desktop. Linux applications that used a graphical user interface under X might use different “graphical tool kits” so might look and operate completely differently to each other. And you couldn’t copy and paste between applications, except with the plain text “copy/paste” feature provided by the underlying X Window System. What Linux really needed was a do-over with an integrated desktop environment.
The first Linux desktop
In 1996, Matthias Ettrich wanted to have an easy-to-use desktop for Linux. And more importantly, he wanted to make everything integrated like a proper desktop environment.
And that’s how the K Desktop Environment got started. The K is for “Kool,” but the “KDE” name was also meant to be a play on the Common Desktop Environment (CDE) name. Finalized in July 1998, KDE 1.0 was a big step forward for Linux on the desktop:

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 task bar 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 task bar at the top of the screen.
Unfortunately, not everyone was happy with KDE. To abstract the GUI from the system, KDE used Trolltech’s Qt toolkit library. 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 was not aligned with the Free Software movement. This caused problems for some Linux distributions: should they include KDE, or default to an older but all-free-software graphical interface?
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.

The “KDE versus GNOME” rivalry continued for some time, focused around Free Software issues with the Qt license. 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. This meant the QPL was not compatible 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.
The Linux desktop grows up
After that, the Linux desktop continued to mature. And while other desktop environments appeared, GNOME and KDE got most of the attention.
Over time, both KDE and GNOME had made significant strides, yet brought only incremental changes to the user interface. For example, KDE 2 and 3 continued to rely on a task bar 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.


GNOME 2 also used a task bar concept but split the bar into two: a task bar at the top of the screen to launch applications and respond to desktop alerts, and a task bar at the bottom of the page to show running applications. I liked to refer to the two task bars 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.

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. KDE 4.6 (January 2011) and KDE 4.7 (July 2011) provided a more traditional desktop metaphor and continued to rely on the task bar concept. But GNOME 3 (2011) completely changed gears with a new desktop concept. GNOME 3 aimed to create a simpler, more streamlined desktop experience, removing the task bar entirely in favor of an “Activities” overview that showed all open applications as separate windows.

Linux on the desktop
Having your choice of desktop environments means users can pick the environment that meets their needs. While Linux has other desktop systems to use, the two most popular Linux desktops today are KDE and GNOME. Their current versions are both very mature and packed with features. Both KDE and GNOME try to simplify and streamline the Linux desktop experience, but in different ways.
GNOME continues to aim for a minimal appearance, removing all distracting user interface elements so users can focus on their work. KDE takes a more familiar approach with the task bar, adding other visual improvements around improved widget handling and icons.
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.
I don’t see this changing anytime soon. And I think that’s a good thing. No matter what desktop you use, you have a modern desktop with great integration. And above all, this means Linux has the best feature in free software: choice.
Image credits:
- GNOME 1.0 – Red Hat Software
- GNOME 3.0 – with permission from GNOME (2019)
- KDE 1.0, KDE 2.2.2, KDE 4.6 – with permission from KDE (2019)