X11 Window System Turns 25 Years Old
An anonymous reader writes "The widely used X11 Window System has turned 25 years old today. Version 11 of the X Window System is likely to remain in use for many years to come for backwards compatibility with the many legacy applications, BSD/Solaris systems, and Enterprise Linux distributions. Meanwhile, Wayland is still working to unseat the X Server for the common Linux desktop."
Canonical being behind it may cause lag in adoption, since people are fleeing Canonical's UI ideas like creatures from a forest fire, even if they stay within the Ubuntu family it's Kubuntu or Xubuntu or Lubuntu....Unity and GNOME3 are inferior ivory tower designed, user-need ignoring crap
I only met you 12 years ago, but I've been obsessed with you ever since. Its been so long, that I just had to say something now.. Please please don't jump the shark like so many others these days... I just love you the way you are!
Bye!
Wayland isn't a Canonical thing. There's a bunch of people from various companies working on it, including Intel and RedHat.
I use Friend/Foe + mod-point modifiers as a karma/reputation system.
One thing I love about X has always been the ability to run gui apps remotely via ssh using your local X via X11 forwarding. For those who haven't tried (or haven't tried lately) it's even pretty easy to get a shell running within X in Cygwin and run remote gui 'nix applications under Windows...too cool.
The people working on Wayland have used X11. Indeed, in many cases they are *also* X.org developers. Hell, one of the people working on Wayland is Keith Packard[1], who's been working on X.org since longer than I've been using Unix. Indeed, he's been working on X11 since before many of us had even used a computer, indeed for anyone younger than 24 make that "since before you were born". Hence, to say the people who are working on Wayland do not understand X is just a ridiculous argument, and does not suggest the person making that argument has much credibility on the subject.
I'll be honest, I was a little sceptical when I read about some of the design decisions in Wayland. In particular, the decision to move some of the window management to the application (in general, that means the toolkit, like Qt, GTK+, etc) makes me wince a bit, because it will lead to the hung-window-syndrome we know and love from MS Windows. However, the people involved in Wayland know far far far more about the subject than I do (I have no experience of designing or implementing windowing systems), and I'm sure they know a lot more about balancing the various trade-offs for and against all these decisions than most of us.
As for the remote displays. I was initially concerned about that capability too. However, if you look into it, well there's nothing that stops X11 being used with Wayland - indeed X server to render to Wayland already exists. Generally, there's nothing to prevent whatever style of remote display protocol being implemented for Wayland, be that in applications directly or (more sensibly) in the toolkits.
1. Keith Packard on Wayland and X: https://lwn.net/Articles/491509/
I use Friend/Foe + mod-point modifiers as a karma/reputation system.
X11 as a remote access scheme is actually craptacular in many ways, with two listed below as a non-complete list:
1. Ever try actually using X11 for anything even remotely graphically complex over even a rather decent broadband connection? You could also gouge your eyes out for a similar effect! Before you say how great X11 is over your cable modem:
a. If it were so great, then Nomachine would never have come into existence and NX would not exist.
b. If I had a dime for every time somebody says that X11 is great *because he is forwarding X-terms over it using an @#K%JJ SSH tunnel* then I'd be rich and they'd be put into a mental asylum where they belong. I'm talking about *real* graphical applications being shot over a broadband network here, otherwise there is no point to "network transparency" to begin with.
2. Real simple scenario that I've known can't work for over 10 years and for which there is no solution available using X:
a. I run a program remoted to my desktop. Yay network transparency (blah blah blah).
b. I get up from my desk and grab my notebook/tablet/smartphone/etc. and I want to simply transfer the remotely displayed application to the other device.. *cannot be done*.
Note how I spotted this problem 10 years ago? That was long before everyone was carrying around smartphones/tablets/etc., I was way ahead of the curve and this issue has only gotten more important over time.
c. What's really hilarious is how many people have called me stupid or moronic for thinking that actually have *real* network transparency over X instead of the crap version from 1985 we are stuck with now would be a good thing.. and many of these same people lovingly brag about how they use screen all the time....
That's 2 issues.. there are many more. People who seem to despise any OS other than Linux for "not innovating" really tick me off when they try to kill the first real piece of innovation in the Linux graphics stack that we have seen in this century.
AntiFA: An abbreviation for Anti First Amendment.
Back in the day (1992), we used to run SCO Unix on a 486 box with HDS X terminals connected to it.
General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
And Wayland will not be able to display efficiently to any other machine. It will require some shitty pixel-scraping technology like VNC.
No, that isn't true. Nothing prevents Wayland supporting toolkits from using whatever kind of display protocol they want, from low-level pixel grabs of windows, to using more abstract drawing commands that match the higher-level structure/behaviour of the application. Indeed, a toolkit could easily use X11 as that protocol, if it wished - and that's already possible with XWayland, I understand.
I use Friend/Foe + mod-point modifiers as a karma/reputation system.
...is just a "reference implementation". It is NOT the be-all and end-all.
If someone were to produce a wholly new windowing system that had a compatibility layer for the standard X11 API, support for the X11 configuration files, and the option of sending X11 packets over a network, you would have something that was compliant with the reference implementation. It would be a superset, but the reference specification would be 100% implemented according to the standard, agreed?
Indeed, since the current reference implementation is highly modular, you could replace one module at a time with something that solved the problems inherent in X but which remained 100% backwards compatible.
Let us call this new implementation X12, since it's a stepwise upgrade, similar to (but less crippling than) the upgrade from X10 to X11.
What would I imagine this X12 to look like?
Well, X is still horrible for games, so sprites and shaders make sense. (Nothing stops environments like Gnome or KDE from implementing their own, but to make games viable, you've got to have one API that always works even if you have other APIs for each desktop environment.)
Also on games, but also for multimedia, sound would be good. The challenge is that you want a universal "front end" API where you can switch between engines (such as PulseAudio or Jack) without having to change the code. You'd simply get the characteristics you want. The reasoning there is that different sound systems do have different characteristics and you want a different set for different circumstances. But, again, manufacturers don't care about your freedom to choose, they care about being able to sell to the most people with the least variation in the codebase. No problem. If there's a single universal API that forwards what applies, translates those things that are translatable, and ignores the rest, then the manufacturers are happy and the freedom people are happy. Everyone is happy. That's good.
For scientific and engineering work, you get the best results by converting from vectors to pixels at the last possible moment. Metafont/metapost have a good way to describe shapes (though you'd want to "compile" these descriptions into bytecode for efficiency), and transformation matrices aren't complicated. It would take a bit of work to get the system to work efficiently in 4D, but it would make life a lot easier.
The legacy X11 protocols aren't very efficient OR secure. They're needed because there's so many X11 terminals out there, but X12 should only use X11 to talk to X11 systems. X12 to X12 should be designed from the start to be secure, compact and extensible. It should also be transport-independent. Why should X care if it using TCP, UDP, DCCP, SCTP or something yet to be developed? Or what version of the IP protocol is involved? (If it IS involved! What's wrong with X over Infiniband?) So long as both sides of the connection know what to use, and things that have to be reliable are kept reliable, it's just a port as far as 99% of the code is concerned. Only when it comes to building it in the first place will there be any difference and that can all be hidden in an abstraction library.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
The difference is, if you tried doing it with a 32-bit alpha-blended desktop, VNC would have to shovel raw bitmaps over the network when you moved that semi-translucent terminal window that's partially-obscuring kEdit. RDP would just say, "move window XXX to a new origin of (x,y)", and all the alpha-blending window-translucency magic (and dropshadows, and everything else) would be rendered locally.
RDP between two computers running Windows works decently well over slow network connections, even with large displays and 32-bit alpha-blended eye candy. The same can't be said for VNC.
"Unseating X" is not what Wayland will do, at least not anytime soon. Even X's developers realize that X's architecture has gone a little stale given the current desktop use cases, so they are working to make X a Wayland client. X is likely not going to go away for another 10+ years at least, provided every X app ever developed gets converted into a native Wayland app... And that's a LONG time off on the horizon.
Wayland NAILED it where every attempt to replace X outright prior to it, failed miserably. Wayland is the future only because it allows X programs to run -unmodified-, while at the same time providing a new, more performant window server.
Wayland is the bridge to the future, along with X.
'A lie if repeated often enough, becomes the truth.' - Goebbels