The X files
THE X FILES
Jonni Bidwell wants to know why a middle-aged display server is still at the heart of the Linux desktop.
L
ast issue we studied Ubuntu 21.04, which marks the distro’s shift from the
X.org
display server to Wayland (on amenable hardware). But this isn’t the first time Canonical tried using Wayland by default.
Ubuntu 17.10 shipped with this configuration, but users were displeased. Come to think of it, Ubuntu 17.10 (Artful Aardvark) also had an artful habit of bricking Lenovo laptops and had to be re-released. And it was disliked by fans of the Unity desktop who saw their favourite desktop replaced by Gnome. Anyway, that Wayland experiment never made it to the next Ubuntu LTS (Breezy Badger), and nor is it present in the current LTS (Focal Fossa). Things have stabilised by now, so barring any mishap the next Ubuntu LTS will finally make the shift to Wayland.
But why do we need Wayland? And what exactly is this X thing anyway? The answers are complex and have lengthy stories behind them. But hopefully this feature adds at least a small amount of clarity to the situation.
Ultimately, X has been with us for over 30 years, and it has no business serving the displays and running the applications that modern workloads entail. Wayland has been with us a while, too. It was first dreamed up in 2008 and has been powering devices (just not necessarily Linux desktop PCs) from the get-go. It’s been the default on Fedora for ages, and probably works just fine on other distros, too. Maybe even better than fine…
The venerable X Window System has been powering Linux desktops since the 90s, and powering UNIX (and Ultrix) machines since development began in 1984. It was formed as part of Project Athena, a joint effort between MIT and Digital Equipment Corporation (DEC) with the goal of providing students with computing resources.
The X name, and indeed design, was inspired by a predecessor, the W Window System, itself built for the experimental V operating system (which had a distributed, micro-kernel architecture, but until W had no means of talking to a local display). The main change between W and X is the use of synchronous versus asynchronous drawing primitives, in keeping with Unix design ideals. Functionally, X provides a client/server interface between physical objects (monitor, keyboard and mouse) and imaginary things (the desktop).