From W to X to Wayland

Ars Technica has a terrific look at the Linux graphics stack, from the original X protocol pioneered by MIT computer scientist Bob Scheifler up to the new Wayland display manager (for lack of a better word) by Kristian Høgsberg. Many of the current crop of Linux users might well be completely unaware of the robust network functionality built into, the current iteration of the X protocol, because the way we use personal computers today is vastly different from the way computers were used in academia back in the early 80s.

The thin client computing that’s all the rage with “virtual desktops” today is old hat in the computer industry. It used to be the case that you used a fairly stupid terminal to interact with a very powerful computer in some locked server room, away from your filthy fingers. At this time, the X protocol was a godsend: your wimpy little terminal could display the graphical output of programs executed on that powerful computer, and indeed lots of people could simultaneously view different graphics for their own computing sessions executing on that server. The X Window System specified a complete abstraction of hardware, so that any number of devices could connect to the server and get the same output.

Linux, following on from the various UNIX pedigrees that influenced it, started out with X11, and later switched to the server, but it retained the bulk of its network transport and device abstraction. As the cost of computing dropped, and the power of computing rose, the way people used Linux (and other UNIX) systems changed. The computer on your desktop was more than powerful enough to perform all the graphics management historically handled by that remote server.

Then dedicated accelerated video cards hit the market, and suddenly all the X network transparency and device abstraction was more baggage than benefit. A number of solutions rose and fell, as described in the Ars Technica piece linked above. Now work is afoot to replace the underpinnings of X with a new system, called Wyaland, that maintains some level of backward compatibility, because X has a huge install base that needs to be preserved during a transition to anything newer, and because the Linux (and UNIX) communities have long recognized that one-size-fits-all solutions rarely work. The stuff that X does is vitally important in some situations, and in those situations the stuff that Wayland will do is of little value. You don’t need 3D accelerated graphics on your web server, for example.

It’s fun times ahead for the Linux community, and I’m excited to see what develops with Wayland!