Today just so happens to be the 40th birthday of X, the venerable windowing system that’s on its way out, at least in the Linux world. From the original announcement by Robert W. Scheifler:
I’ve spent the last couple weeks writing a window system for the VS100. I stole a fair amount of code from W, surrounded it with an asynchronous rather than a synchronous interface, and called it X. Overall performance appears to be about twice that of W. The code seems fairly solid at this point, although there are still some deficiencies to be fixed up.
We at LCS have stopped using W, and are now actively building applications on X. Anyone else using W should seriously consider switching. This is not the ultimate window system, but I believe it is a good starting point for experimentation. Right at the moment there is a CLU (and an Argus) interface to X; a C interface is in the works. The three existing applications are a text editor (TED), an Argus I/O interface, and a primitive window manager. There is no documentation yet; anyone crazy enough to volunteer? I may get around to it eventually.
↫ Robert W. Scheifler
Reading this announcement email made me wonder if way back then, in 1984, the year of my birth, there were also people poo-pooing this new thing called “X” for not having all the features W had. There must’ve people posting angry messages on various BBS servers about how X is dumb and useless since it doesn’t have their feature in W that allows them to use an acoustic modem to send a signal over their internal telephone system by slapping their terminal in just the right spot to activate their Betamax that’s hotwired into the telephone system.
I mean, W was only about a year old at the time, so probably not, but there must’ve been a lot of complaining and whining about this newfangled X thing, and now, 40 years later, long after it has outgrown its usefulness, we’re again dealing with people so hell-bent on keeping an outdated system running but hoping – nay, demanding – others to do the actual work of maintaining it.
X served its purpose. It took way too long, but we’ve moved on. Virtually every new Linux user since roughly 12-24 months ago will most likely never use X, and never even know what it was. They’re using a more modern, more stable, more performant, more secure, and better maintained system, leading to a better user experience, and that’s something we should all agree on is a good thing.
Thom Holwerda,
You’re a bit too optimistic, especially when wayland’s level of maturity isn’t the same across distros. My brother who is brand new to linux is getting Linux Mint which runs Cinnamon + X. We didn’t really set out to chose an X distro intentionally, but it still works well while the wayland kinks are getting ironed out.
Also, Xwayland is just an Xorg xserver, and it’s used all the time by Wayland to run things that aren’t written natively for Wayland. Actually, X probably would have gone away eventually because it would have gotten a direct replacement. But because Wayland does not replace X’s functions, Xwayland will probably continue to exist and that part of the Xorg git tree will be maintained for about as long as Wayland exists. In a way, Wayland has ensured the perpetual existence of X.
It’ll go eventually. After all, the NTVDM did, and DOS based software is largely relegated to the history books. Heck, you can still install 32bit Windows 10 if you’re that hell bent on using 25+ year old software, but good luck with Windows 11.
Of course, if it ever does leave the Wayland tree, someone else will come along and fork/port it for those that are still hellbent on running obsolete and outdated software…
“hellbent on running obsolete and outdated software” – come on… this is very judgmental. not everything is a networked application that requires updates every 25 days to remain relevant. There are feature-complete software that serve people well and there’s no point in updating if you like it. I don’t know, think of Elwood Downey’s XEphem.
We make more and more software obsolete, and with that, we make more and more hardware obsolete, and our poor planet dies in agony.
I agree that X11 should go, but retaining compatibility spares millions of work hours by many many people just going to waste. If the old software is being used in a safe way, then why not?
Or… if to use a Windows example, the incredible and timeless “Music Mentor”: https://winworldpc.com/product/music-mentor
The removal of NTVDM was due to a hardware issue (x86-64 mode doesn’t support Virtual 8086). Microsoft provided “XP mode” in some versions of Windows 7 to help users still relying on DOS (and 32-bit XP drivers) to transition, but the fact they discontinued “XP mode” in Windows 8 means that yes, they considered compatibility with DOS apps and 32-bit XP drivers not to be worth the hassle anymore.
I am aware of that.
My point is the value of older software, not that sometimes technical limitations get on the way.
I don’t feel that most people, by now, even care if their operating system is using X or Wayland protocol. What most people do tend to care about is if something works or not. So the reason most people might stick with X is Wayland literary doesn’t work for them and when they ask for a solution on the internet the answer they get is select X11 session at login screen. And it will work. And this honestly is something that Wayland needs to fix, it’s not a fault of X. Saying that you must abandon X and not to have a working solution, that one must admit is rather naive take on it. So Wayland will retire X on the day when Wayland is mature enough, for a solution of a problem to not be select X11 session, to make it work. Maybe that will happen tomorrow or maybe when X turns 80. So happy birthday X.
I’ve been using Wayland on Linux exclusively and without issue for the past 7 (ish?) years… but I’ve never been foolish enough to try it on using NVidia.
Wayland is the future. I’m glad it’s being pushed through all the major distros: X is on life support, no one wants to maintain it anymore. I don’t see anyone who complains about Wayland stepping up to continue X.
Titanius Anglesmith,
I did experience some problems with wayland+nvidia last year, solved by switching to X11. I’m not sure if this is still an issue but considering that the majority of PC users are running nvidia GPUs that will need to be resolved if it hasn’t been.
This is a common refrain, but on the other hand X has more maturity and some desktops like cinnemon and xfce are continuing to support X while waiting for wayland to mature. If X works for you, great! If wayland works for you, great! Either way you can be happy with your choice, either way is great! I’m all for migrating to new modern code base, but let people migrate at their own pace without a pointless evangelical conflict insisting only once choice is the right one.
Alfman
I’ve had the same experience, so I default to X11 as I don’t want two solutions to manage when I can go with the one that works everywhere. But as some point out, XWayland will undoubtedly get better over time, and that just makes me ask why bother with Wayland in the first place if XWayland in the fix?
Wayland apparatchiks are pretty vocal about refusing to support legacy hardware, and most of those legacy systems we use Linux on are good for another decade or even more, some of what they refer to as legacy was still on sale just 4 or 5 years ago! It’s a huge problem, and I get why solo operators don’t get it, and that’s probably an issue for Linux in general.
Classic chicken and egg problem. People won’t use a platform because of perceived “immaturity”, platform can’t mature because few people use it.
The123king,
> If X works for you, great! If wayland works for you, great!
That’s pretty much it. X will still be here for the many window managers that stick with it. I didn’t mean users should switch to Wayland, but I do think Wayland is getting mature enough that switching to Wayland makes more and more sense.
I always have the biggest issues with multi-monitor multi-DPI support on X On Wayland it just works. That was the reason for me to try out Wayland (I mostly use Sway and Wayfire) and it’s been a breeze. I never had to look back because I was lucky enough that my hardware was supported.
Titanius Anglesmith,
Exactly, it doesn’t need to be any more complicated than this. Pragmatism at it’s best without any of the judgement or drama. Anyways I’m happy it works for you and one of these days I’m sure I’ll join you 🙂
nvidia has been holding back Linux for at least a decade with it’s diver obstinance. It does seem to be changing lately though.
How about non-Linux machines though? One of the things I’ve heard about Wayland is it’s pretty heavily Linux only by design and APIs and such. The BSDs, etc don’t seem to have anything else, so what are they going to do, since X.org is barely on life support now.
I’m not sure where you’re getting your news from…
FreeBSD has docs for using it: https://docs.freebsd.org/en/books/handbook/wayland/
OpenBSD has official support from Wayland as of two months ago: https://www.phoronix.com/news/Wayland-1.23-Alpha
NetBSD has two compositors, swc (https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and) and velox (https://github.com/michaelforney/velox). The swc announcement is from 4 years ago!
Oh. I just haven’t been paying attention at all in that direction, and must have missed some Phoronix articles. Thank you very much for fully correcting me 🙂
That’s really good to hear, hope that all continues and improves as the rest of Wayland on Linux improves!
I wrote the last blog post. None of what you wrote disputes the fact that the design is extremely Linux-centric.
For that, you have my complete sympathy. Though I suppose it’s not surprising the open source world revolves around Linux-as-default assumptions; after all, that’s why LinuxKPI exists, right?
There’s a reason most X maintenance these days is done by a Solaris developer.
Even Haiku uses Wayland to run Linux ports.
It’s my understanding that Wayland still doesn’t support the standard Motif GUI yet, so replacement of X would be premature at this stage.
Aren’t Motif Apps working through XWayland?
Well, I installed a new distro (Ubuntu) a few months back and it came with Wayland by default. Two things I noticed that really bugged me:
– videos played fullscreen on a projector all had thick black borders on all 4 sides, so I was using around 60-70% of the surface of the projector screen
– mouse text buffer (the one where text is copied when marked with mouse) did not work. I have my own program that uses this buffer to search local database and display me the results, which I use 50-100 times a day, Making it unusable was a big let down.
So, I switched back to X and voila – videos are now playing fullscreen without extra black borders, and mouse text buffer is filled when I select something.
This was, I do not know, 5-6th time I tried to use Wayland and then gave up.
“…we’re again dealing with people so hell-bent on keeping an outdated system running but hoping – nay, demanding – others to do the actual work of maintaining it.”
That’s no way to talk about us Linux users!
“They’re using a more modern, more stable, more performant, more secure, and better maintained system, leading to a better user experience, and that’s something we should all agree on is a good thing.”
Except that’s not entirely true. Many applications are still X11 clients and will use Xwayland. Which is still an X-server with all the “warts” (ie. functionality) of “true” X11.
IMHO Xorg being “deprecated” is no reason to discard X11 as if it were a dead platform.
Xwayland will be supported for quite some time, and now it is even possible to replicate the Xorg experience using a tiling wayland compositor with “xwayland rootfull mode” as its only opened app. So wayland can work as the driver layer for Xwayland, which provides the desktop.
In short: old working software have a bad habit of surviving […says someone still maintaining some software for workstations using motif…]
Well, look…
Working software that does what it is supposed to do and doesn’t have any blatant security holes (or works offline) should still keep being used. Why waste all the development time and contribute to the planned obsolescence hellscape tech is nowadays?
How many times are we going to need to develop new email clients or new terminal clients?
I stole a fair amount of code from W, surrounded it with an asynchronous rather than a synchronous interface, and called it X.
And then created XLib, which made it synchronous again…
rastersoft,
Haha, that’s funny.
It’s true that it can be difficult to use asynchronously. It gets worse given that many GUI toolkits assume they should control the whole event loop. Sometimes you want to or need to write your own event loop. Of course you can spin off different threads to run multiple event loops, but sometimes I find the added synchronization and complexity undesirable. What I’ve done with X clients is to monitor the socket for activity using my event loop and then pass events to the graphic library. Of course some GUI toolkits would have you use their primitives for everything, but I like to keep my application code independent from the GUI library. Oh the joys of software engineering 🙂
Well, that’s why XCB was created: to make X11 asynchronous again. I used it and it’s not very difficult to use it and take advantage of it.
rastersoft,
Yeah, at one point I wanted to convert everything to XCB but I found that if I wanted to use OpenGL/GLX, I still needed to have a Xlib context even if I was using XCB…
https://stackoverflow.com/questions/32756336/create-opengl-context-only-with-xcb
https://github.com/datenwolf/codesamples/blob/master/samples/OpenGL/x11xcb_opengl/x11xcb_opengl.c
It stinks, but that’s the way it was built so sometimes you just have to hold your nose and look the other way, haha.
They will rip X11 forwarding from my cold, dead, pissed off hands
That’s better than pissed on hands. :-/