The GUI You Never Knew You Had: The X-Window System

While the community continues to debate KDE versus Unity versus GNOME (while proponents of other GUI environments drum their fingers), those new to Linux rarely encounter an important component that makes each of these desktops possible: the venerable X-Window System. Let’s take a look at this important piece of software in more detail.

The X-Window System was originally developed to succeed the W windowing system on UNIX which ran very slowly. X grew to be an important component of network computing environments, as one of its strenghts is support for displaying applications running across a network. Initially under the care of the MIT X Consortium (until its version 11, hence the abbreviation X11), a number of disagreements regarding licensing led to the creation of XFree86 Project, although this was ultimately folded back into the main X codebase.

In an earlier time, even the GUI of Microsoft Windows was a “shell” that ran on top of the base (command-line) OS… how many people remember typing “win” at the “C:\” prompt? As of Windows 95, a user was sent straight to the familiar Start-menu-and-tool-bar interface, and most Linux distributions started to do the same before too long. But the fact remains that Linux desktops are also a shell that runs over the kernel and base operating system tools, the foundation of which is X-Windows

X-Windows (formally known as “The X-Window System,” but also as X11 or just X) is a collection of software that runs between the hardware of the system (technically the lower-level software of the system, such as the Linux kernel, which in turn sends and receives signals from the hardware) and other software known as X clients. When the user clicks a button in an application, that mouse click is sent to the kernel, which sends it to the X-Window Server, which interprets it and/or sends it along to the application (the X client) which will, for example, save the current file.

xwindow-arch

First and foremost, none of the elegant, snazzy, or otherwise useful desktops (or their tools and applications) would be possible without X-Windows. So from the “standing on the shoulders of giants” perspective, X-Windows deserves some respect. X-Windows also allows you to perform some neat tricks, such as tunneling an application over SSH.

There was a time when the Linux installation didn’t automatically configure X for you, or did so with less accuracy, so your install might simply dump you off at a command prompt. Then you had the unenviable task of searching the Internet (on another computer, since you’d have no GUI, or via a text browser such as links) for an XF86Config file that would work on your computer.

What this means to you is is that you should be very, very thankful the new X.org server packages are much better attuned to modern hardware. They are so much better attuned that you’ve probably never even seen X-Windows directly (only a display manager such as LightDM, followed by your desktop of choice) aside from an X-shaped cursor that might show ever so briefly before your session begins.