What’s the difference between Xorg and Wayland?


I’ve been researching the differences between Xorg and Wayland, but I’m still confused. Could you explain the technical differences between these two display server protocols, and what impact they have on performance, security, and user experience?

In: 45


All of these are about windowing systems. A program doesn’t draw windows and buttons on your screen on its own, it talks to something else to do that. On Linux, that’s X11 or Wayland. On Mac that’s Quartz. On Windows you rarely see it discussed, but it’s called “Desktop Window Manager”.

Xorg is a program that implements the X11 protocol for the X Window System. “Xorg” is the name for a particular program that does this particular thing, just like there’s more drawing programs out there than Photoshop. There exist other programs for it. For instance on MacOS, the equivalent program is XQuartz.

The X window system hails from 1984, almost 40 years ago. And computers changed a *lot* since then. X does a bunch of things in ways that these days are not quite optimal or obsolete, and a lot of the functionality that’s part of the spec is almost entirely unused, but still kept because somebody might actually dig up some old software that needs some bit of ancient functionality.

Over 40 years this has become quite burdensome, and so Wayland was started to do a fresh start with none of the inconvenient legacy. “Wayland” is the name of the protocol itself, just a spec for how to talk to a program that puts a GUI on the screen (more or less). Wayland is implemented then by a bunch of different “compositors”, which are the actual programs that do the work. This includes Gnome, KDE, etc.

Wayland is a fresh start, and fits modern hardware much better. A lot of the people that originally worked on Xorg moved on to Wayland, and these days Xorg can be considered nearly abandoned. Wayland took a lot of time to actually get off the ground, but these days should be considered as the thing to use, unless you really need X for some reason.

As far as things like security and performance, Wayland is the better one. X11 allows programs to peek at each other (so for instance a rogue program can capture what you’re typing even if it’s not the active program you’re typing into), while Wayland forbids this. Wayland also commits to a “perfect frame”, where every frame is always drawn without any kind of tearing. X11 can have tearing in games or things like Youtube videos if things align the wrong way.