We talked about the state of X.org earlier this week, and the wider discussion was picked up by Adam Jackson, who works at Red Hat as the X.Org Server release manager, and has been heavily involved with X development for many years.
There’s been some recent discussion about whether the X server is abandonware. As the person arguably most responsible for its care and feeding over the last 15 years or so, I feel like I have something to say about that.
[…]So, is Xorg abandoned? To the extent that that means using it to actually control the display, and not just keep X apps running, I’d say yes. But xserver is more than xfree86. Xwayland, Xwin, Xephyr, Xvnc, Xvfb: these are projects with real value that we should not give up. A better way to say it is that we can finally abandon xfree86.
Seems like a fair and honest assessment.
Framed in that much narrower context this makes much more sense to me, it actually sounds like a feasible way forward for all parties.
Just as Hybrids are a way out of petrol, X as an App Compatibility Layers can be a way into Wayland.
Everything is fine with me as long as there is easy to use network transparency. I use multiple boxes to I just want to ssh into a machine and be able to start any program with a GUI. Nothing beats
ssh -X me@box4
and just fire whatever program I need without hassle.
As long as XWayland works, and as long as GTK/Qt supports X11, that will work. Also, there are some attempts to do remote wayland, but it is an extra layer.
Remote (transparent) Wayland would be nice because it would probably transfer audio as well over PipeWire. Hopefully the magic will work automatically, so no weird clients or invocations are necessary. Also sharing the local clipboard and so on comes to my mind…
Using X forwarding does not mean your x11 application is network transparent. Network Transparency has a very specific meaning to X11, xorg and wayland developers (as many Wayland developers were xorg developers). You can disagree with the definition if you like, but understand you will be talking past the wayland, linux desktop developers.
Network Transparency is the ability of a protocol to transmit data over the network in a manner which is invisible to those using the applications. It should specifically mean, cannot notice the difference. A x11 app on a remote client (on a server) will display the application the same on your local machines (desktops and laptops).
Using x11 forwarding does not mean your application is being transmitted transparently anymore. Network Transparency has been broken for most users for over 10 years without anyone really caring (unless you are OCD about your fonts). Xft, and some X extensions, like DRI2 and DRI3 breaks network transparency. No one has cared because they still can run X11 apps remotely. For example, xterm in Fedora is no longer network transparent because of a change in Xft.
We can still run x11 applications remotely, they are not considered network transparent to xorg/wayland community. So before getting your pitchforks and torches out, understand Wayland has a very specific meaning for network transparent, and it is not another word for “run application remotely.” It is a specific way an application is transmitted remotely. When Wayland says Wayland is not Network Transparent, it does not mean you will be prevented from running a wayland application remotely.
A blog post explains it better here: https://utcc.utoronto.ca/~cks/space/blog/unix/XNetworkTransparencyFailure.
As a final note, Wayland is a protocol to display an image. Someone could create a Wayland Composer that is network transparent. This composer however might not be compatible with other wayland composers who do not support the same features.
Thanks for your explanation! Much appreciated. I’ll read up 🙂
https://mstoeckl.com/notes/gsoc/blog.html
Spifmeister the interesting point is waypipe brings working network transparency back with wayland. The wayland protocol makes it possible to solve the DRI2/DRI3 over network. The work on Xwayland also bring working network transpency back with xpra as well.
https://xpra.org/trac/wiki/Usage/OpenGL
Interesting right. X11 is far to broad of a protocol allowing too many things to be made functional as a over the network protocol in most cases. Also X11 is abstracting too far away from the real hardware as as well.
>>As a final note, Wayland is a protocol to display an image. Someone could create a Wayland Composer that is network transparent. This composer however might not be compatible with other wayland composers who do not support the same features.
Basically this had been done already.
That the fun point about waypipe its that is a proxy compositor so its able to expose features of the display Wayland compositor to the applications running where the wayserver proxy compositor is. The way this is done to the Wayland compositor at the display is the thing just looks like any other Wayland application.
Waypipe is currently compatible with every Wayland compositor in existence this is unlikely to change.
Wayland makes life a lot simpler because all major storage is files and you can basically develop a generic solution to transfer those across network. X11 you have over 1000 different storage ideas.
I wish he or someone else would just get the damn 1.21 release out of the door as “the final feature release ever”, then it’s fine if it’s abandoned except for security fixes forever.
What changes are there in 1.21 that you’re waiting for?
Seriously, for me X has been a component that always seems to do its job and thus never seems to warrant upgrading. I’m writing this from Slackware 14.2 (latest stable version) which happened to include X 1.18.3, and if upgraded to 1.20 I’d still have all the same programs running on it. Either the upgrade fails catastrophically, or I wouldn’t notice the difference.
Another way of thinking about X is that it’s finished (in a good way) and wouldn’t benefit from more code churn.
I absolutely agree. I don’t really see the benefit of Wayland, doubly so because I run more than Linux. In the last 10 years, X configuration has become MUCH simpler. I’ve never seen X jump above single-digit CPU usage even with really wacky stuff going on (and it’s usually below 1%). It’s very, very rare to ever seen an X crash. There are a plethora of WMs of varying quality to choose from.
What is X holding us back from, exactly? It works great. It’s stable and reliable, it’s not slow, and it almost always just works without extra configuration for me using a variety of hardware, across Intel, NVidia, and AMD graphics cards. From VoidLinux with an NVidia GTX 970 on a brand new PC, to as far back as running brand new OpenBSD with modern X11 and Mesa on a 2003 Sun Fire 240 with an ATI Rage 64 GPU. It all just works, rarely needing any configuration to work with Mesa, and not needing anything more than a `xbps-install nvidia` to run with proprietary NVidia drivers (as an example I have personal experience with).
To me Wayland strongly feels like an answer to a problem which isn’t really a problem.
There’s quite a bit of Wayland in your X server already. It is probably using DRI2 or DRI3 and libinput, and a compositor.
However, it will be severely lacking in security and in frame synchronization. If you give an application access to your X display server, then it has access to everything. It can create simulated input events. It can copy everything on your screen. Etc. And the only way X applications can get clean frame updates without tearing adds extra latency.
With Wayland an application can cleanly stage new window contents for the next screen frame. And, applications are strictly limited in their access. Yeah that may break some apps you like. But it also breaks malware which is a good thing. And it makes it possible to use sandboxed apps from snaps or flatpaks even if you don’t trust them.
Frankly speaking, it’s not worth it. Costs outweigh benefits by a large margin.
X is not perfect, but its semi-rigid architecture has served an important role of preventing developers from re-inventing the stack every couple of years and implementing it in several incompatible versions. This is where we are heading (in fact we are already there) with Wayland.
I usually use OpenBSD, so it’s significantly more secure in some ways since I have Xenocara. Regarding view stealing, if this isn’t possible on Wayland than how does software like OBS work? How can you ever take a screenshot? There are already mitigations for this with X11 (such as using Xephyr or XNest) if you don’t trust a program in this way. You could also run multiple X displays altogether for this situation.
Just generally I don’t want to run any software I need to get via flatpak or snap, even on Linux. And just generally, I don’t want to run anything I don’t trust, even if it’s sandboxed. About the only untrusted software I ever run are games, and I have a separate games-and-Wine user for that. If it steals my screen, or looks into my home folder…I guess fine? You got all my Star Wars: Empire At War and Surviving Mars saves, and you took a screenshot of IceWM.
I’ve also never noticed any frame synchronization issues. I know people claim this is a real issue, but like…if it is, then I guess I just don’t care about it. I never notice it, if it’s happening at all.
“What changes are there in 1.21 that you’re waiting for?”
I don’t remember the details right now, but I have seen several times during the last few years that some features will only work on 1.21-master, or will work but not as well with 1.20. Most or all of these things were related to running modern Windows games with Wine/Proton, desktop streaming, multi-GPU support and eGPU hotplug, GPU virtualization for Windows guests (LookingGlass) and such. Things I have been tinkering with but have since left (at least temporarily).
This is a broader issue we are facing in free software, as many components mature while remaining absolutely vital to our ecosystem. Maintaining them is not trivial, requires a lot of work, experience, and is not as flashy on your resume as designing some new tools. These functions are seriously understaffed and people are understandably burning out. Some components (Linux kernel) have sorted it out, many others (openssh, glibc, now Xorg) are struggling.
We need to find a solution, if for some reason Xorg was to become dysfunctional (fortunately it won’t, it’s fairly decent as is), it won’t accelerate development of Wayland – it will instead drive people off Linux.
We had a taste of that during Gnome 2 -> Gnome 3 transition. Linux desktop has lost a lot of momentum in the process. Ten years ago Linux adoption was growing and we could go to a computer store and pick a netbook running Ubuntu Desktop. It seems like a fantasy now, doesn’t it. We should look after what we have already and new tools should win on their merits, not forcefully replace old solutions.
ndrw,
Those are good points. As the industry ages, there’s less and less benefit from new projects because old projects already do what we need. I think it may put some people off, but the truth is as the industry becomes mature and it’s gotten kind of dull. Not just computers, mobiles, etc, but anything. There’s less and less new ground to uncover. This applies to a whole bunch of domains, but focusing on GPUs used to render graphics, upgrades are far more subtle than when I was a kid. We’ve got cinema quality rendering now, where do we move on from that?
It’s one of the things I’m jealous of the past: while our technology is objectively better than ever today, we’ve lost the excitement over having more to discover and build. All the incessant hype they try to create over 5G, and yet it’s never going to be as revolutionary as going wireless did in the first place. Realistically we’re looking at marginal gains in user experience for an extreme deployment cost.
Of all the times to live in human history, it’s unclear if we’ll ever beat last century’s rate of change and progress. We’ve made huge leaps in construction, medicine, nuclear, internet, science, technology, etc….I really wonder if that can ever be repeated or if it was an anomaly? We’ve picked the low hanging fruit. I’m not saying there’s no more progress, the next revolution looks to be AI, but there’s a real possibility for it to bring dubious benefits We’re potentially looking at mass unemployment and poverty if we succeed at AI yet fail to fix our structural economic inequalities. Some will make the point that Luddites feared technology and automation, and their fears didn’t come to pass because there was always a need for operators and new openings for labor. However things are different now with modern AI; all labor, including intelligent labor is becoming redundant. Yes technically we need programmers (for now), but we’ve got to come to terms with the fact that tens of thousands of AI programmers have the potential to replace hundreds of millions of operators & labor jobs. Even this decade we’re on the cusp of AI making millions of truckers redundant.
How’s that for a rambling response? x server -> trucking. Haha.
I think your point that the shift from Gnome 2 to 3 lost a lot of momentum: I think it’s a symptom of a related issue. That is the occasional attempt to “push” the adoption of a major change for ideological, market, or other reasons. We saw it in the iPhone where the attempt to push a whole new “smartphone” paradigm was successful. We saw it in Gnome 2 -> 3 where momentum was lost and the desktop ecosystem was fragmented. We saw it in Chrome where the use of a “bookmarks sidebar” was deprecated, even though many users were forced to change their habits. Whether it’s hubris, ideology, greed, or whatever motive leading to these pushes, it’s rampant in the high tech sector and IMHO it’s very frustrating.
It’s funny. Before Wayland there was a project to replace X with something that was the opposite of Wayland. It tried to replace X’s protocol with CORBA. It was called first BerlĂn consortium and then Fresco.