As you may know, Wayland is a replacement for the Xorg, X, or X11 server. The X11 server is something called a display server. It draws the GUI elements onto the screen, or at least it used to.
The Problems With Xorg
The main problem with X11 is that it originated in the 1980s, and is hence not very good at drawing modern GUI interfaces, particularly anything that uses 3D graphics. Something called the compositing manager draws the graphics instead, and just passes them to the X server. This is fine, but it means there’s a lot of unused functionality and overhead.
The second problem is that Xorg doesn’t have a lot of features in terms of security. For example, if you’re entering password information into a GUI program, it’s relatively easy for another (malicious) GUI program to intercept what you’re typing.
Xorg was also primarily designed for the terminal-mainframe system architecture; hence it has a client, and a server. These would originally have been used so dumb terminals could control applications that were run on a mainframe somewhere else in an organisation’s network. Really, it wasn’t designed at all for what we’re using it for when running it on local machines. It was designed to draw interfaces, not to be given pre-drawn objects. The objects are pre-drawn because Xorg can’t draw them in a way that produces an acceptable GUI (like with 3D effects) in modern computing.
Wayland: The good and the bad
Wayland will bring a lot of features to Linux, including fixes for the aforementioned security issue, but also a lot of modern features that Xorg simply can’t provide well. The first of these will be proper support for 3D video acceleration, the idea being that 3D applications will become easier to write and perform better. This leads us straight into our first problem. Wayland didn’t work with proprietary graphics drivers until very recently; this support is likely to be buggy at best, at the moment. Mir, Canonical’s alternative to Wayland, doesn’t currently work at all with proprietary drivers. As I found out later, it doesn’t work very well with anything except Intel HD graphics drivers!
Wayland will also be much simpler to maintain and support than Xorg, as it IS designed for what we do now. Xorg is needlessly very complicated in order to maintain backwards-compatibility with all older versions. Having said that, backwards compatibility is a great thing that we don’t see that much of in Linux, but in a display server, well, that’s a little different in my opinion.
Where is it then?
So at this point you might well be thinking: why aren’t we using it right now then? Well, a display server is a complicated thing, and a lot of people have been working on Wayland for a very long time, not to mention the time it took to get vendors like NVIDIA to support it with their graphics drivers. Again, I really like the Nouveau drivers, but they simply don’t perform that well comparatively. Not that there necessarily is much 3D performance to get out of my GTX 645… Although, if that is the case, it becomes even more important to get all of it out XD
Wayland will be here soon though, and it will even support OpenGL ES (Embedded Systems). Thus, the Raspberry Pi and similar boards will be able to use their GPUs to draw the GUI, rather than the CPU, which may make a large difference to performance. Especially on the 1st generation raspberry pis, the GUI could be quite laggy if you don’t overclock it.
I think Wayland is great, essentially, but it would be nice if it was adopted by proprietary vendors more, and this is happening now, as NVIDIA are starting to support it. What do you think?