Clearing Up Wayland FUD, Misconceptions
An anonymous reader writes "In clearing up common misconceptions about Wayland (e.g. it breaking compatibility with the Linux desktop and it not supporting remote desktops like X), Eric Griffith (a Linux developer) and Daniel Stone (a veteran X.Org developer) have written The Wayland Situation in which they clearly explain the facts about the shortcomings of X, the corrections made by Wayland, and the advantages to this alternative to Canonical's in-development Mir."
Better remoting than with X11? Seriously? I'm in!
Just recall to support authentication (certificates, kerberos, and/or ssh piping), and root windowless operation, and you will get every admin that works in corporate environments at least to test Wayland. If it manages to fulfill the promise on better reactivity (== better usability), Wayland will catch like wildfire.
Because it would require completely rearchitecting and breaking the protocol.
First, SDL isn't an alternative display technology, it's a library which works on top of X (and Weston). Second, I am running KDE on Weston right now and it is working pretty well. It's not ready to replace X for most users yet, but it's stable and getting close to ready for mass consumption.
Yes, I did it on my Raspberry Pi using the implementation of Weston that they discussed.
Making your ignorance plain is quite helpful to others in knowing to avoid you.
Yes, here we are, still with X. That doesn't make X good and it doesn't mean Wayland has made no progress. In fact the biggest driver of the Wayland transition is the wide availability of graphics accelerators that we didn't have back in 1997.
I won't really shed a tear when X is reduced to a library that sits on top of Wayland. I will enjoy improved performance and compositing that Wayland brings.
SurfaceFlinger. Of course, no one has actually adopted it. It's just prevalent because of Android.
Just as an interesting addendum, Quartz is a PDF-based display system descended from Display Postscript, and I'm pretty sure OS X/iOS between them have far more installations than X.
I have never seen a good argument for this.
Read the article, then.
Well he gave an answer in the article: if you move to "fix X", you end up making X12. And when you do that, all the stakeholders in X come out of the woodwork and insist on preserving all the legacy parts of the system that, frankly, don't belong.
The way things have unfolded, X11 will become a library on top of Wayland. And that's perfectly fine.
Why, did the machines running X ever outnumber the Macs at any point in history? Also, Windows is not UNIX, and neither is Android, which isn't even a desktop OS, so why would their prosperity be a measure of the "death" of X as a windowing system for UNIX?
Each application does its own rendering? 31-bit pixel counter?
This sounds like it's all pixels, like X, rather than geometry, like NeWS or display postscript.
So if I have monitors with high resolution I still have to tell all the applications to change their size, individually, or use a microscope to read the text, right?
If I stretch a window (intending to scale it, rather than just see more of what it shows) it has to go back to the application for re-rendering, right?
And if I have adjacent monitors with different resolutions they won't match up. Heaven help me if I lay a window across the boundary between two, the T between 3, or the + between four. Right?
Or have I missed something?
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
> The way things have unfolded, X11 will become a library on top of Wayland. And that's perfectly fine.
Sounds like X running on Windows.
If you don't understand what's wrong with that, or you try to claim there is nothing wrong with that, then you really have no clue why people are resisting Wayland.
A Pirate and a Puritan look the same on a balance sheet.
there is more than one page
Signature v3.0, now with 42% less memory usage.
Why not fix X?
The simplest and most obvious answer: it's easier and faster to just not bother and start from scratch.
In addition, X was originally written when networks and client systems were slow(er). Many of original design decisions are no longer appropriate with respect to the X server code complexity and maintenance requirements. A long (long) time ago, I wrote a program (called CXC - Concurrent X Control) to manage the low-level X protocol (think everything in the X11 Volume 0 book) and support transparent X traffic interception, blocking, redirection and insertion for a CBT application (called CAST) and, if I remember correctly, I remember wanting to off myself (or at least start drinking heavily) after trying to make sense of it all. Just my $.02.
It must have been something you assimilated. . . .
Why not fix X?
The article answers that question on the very first page. (Scroll down to the bottom.)
No, it's rootless X running on Wayland which in turn is running on Linux. X is not going to behave appreciably different than if you were running it directly.
I've seen what happens when you run X11 apps on windows. All the fancy widget themes and whatnot break. If that's not it, then I invite you to enlighten me.
I love the blind implication that the exact same whatever will happen with Wayland and, therefore, we should oppose Wayland.
The only argument I've seen is the lack of network transparency, often poorly worded with no actual technical argument behind it.
Okay, I see now. Some other observations: 1) It sounds like Wayland doesn't do remoting yet. 2) The way they're talking about it suggests it's desktop-only -- no starting an application on some other machine and displaying it on the local machine.
#1 isn't too bad -- they're working on it. #2 has me more concerned. Are they planning on having it be able to export individual applications rather than just the entire deskstop?
And, maybe if you had either
A) RTFA or
B) watched http://www.youtube.com/watch?v=RIctzAQOe44&autoplay=1
You could have added something Intelligent to this conversation.
I went digging after reading this article, here's the only thing I've found:
Mir in Kubuntu
Halfway down, he compares the two - it doesn't look like there's much concrete info about Mir though.
Summary: Philosophical differences in development style, server-allocated buffers vs. client-allocated buffers.
I've never delved too deeply into X, but none of the issues pointed out in the article really seemed all that compelling.
They seemed like the kind of quirks you end up in any large system. I assume wayland will trade them for a completely different set of quirks.
So if Wayland only works on a fast network, it will not win me. Heck, many X11 applications are far too slow over DSL (I guess those are the applications which do not use the X core, but all those "better" alternatives). I prefer a less pretty window I can interact with to a pretty one which I is too slow to use.
The Tao of math: The numbers you can count are not the real numbers.
FTFA, page 3, point VI:
every X app just gets its own mini X-server to deal with
That sounds like it will be pretty straightforward to support individual apps remotely.
Wayland is being made because the guy who writes it want too, not because there is anything inherently wrong with X.
Most Wayland developers are X developers, they did it exactly because X is a pile of bull crap...
Tomorrow is another day...
It was invented here. A large share of the Wayland developers are ex-X11-developers. They know X11 from the inside.
The only argument I've seen is the lack of network transparency, often poorly worded with no actual technical argument behind it.
Sounds like you aren't interested in hearing the arguments, but I'll try. Practically all X11 apps can run remotely - the ones that can't are likely to be inherently limited, like video players or 3d first person shooters that have bandwidth and latency requirements that are transport constrained. Outside of those types and pathological configurations, remote X11 just works for all apps.
V) "Wayland can't do remoting." Wrong. Wayland should be BETTER than X at remoting, partially do its asynchronous-by-design nature. Wayland remoting will probably look a like a higher-performance version of VNC, a prototype already exists. And this is without us even giving it serious thought about how to make it better. We could probably do better if we tried.
"We haven't given it serious thought" is a particularly bad approach to convince people to quit bitching. Show us a well thought out plan to support per window/application remoting, not vnc-style desktop remoting and that will shut up practically everyone. Act like you really don't give a shit and nobody will have any confidence that it ever will "better than X."
When information is power, privacy is freedom.
I've seen demos of Wayland that had per window remoting, including moving and cloning per window across different diplays. Wouldn't it be nice if xmove still actually worked for most applications? If you could just move your application across Xservers as you wished and didn't have to worry about temporary network outages killing you application? Well apparently Wayland can do that. So it seems to me that Wayland has potentially more to offer in terms of network transparency than X. It isn't done yet, so let's wait and see. Everything I've seen looks very promising.
Craft Beer Programming T-shirts
if a program cannot build easily on a standard linux machine, its not going to be adopted by hundred of millions of people and its not going to topple an installed standard with a huge userbase
the 'user is wong' attitude is what doomed every display system before and will doom wayland just the same.
get the thing to compile out of the box or dont ship it. a simple philosophy. we have cmake, autoconf, scons, choose your poison
...does Wayland run *on* an X server?
I could play with Wayland API and help it to take off but not if I have to wait 5+ years for Wayland to get X11 features and drivers.
It isn't done yet, so let's wait and see. Everything I've seen looks very promising.
I don't know what you saw, but what I just read at the cited article is that the people designing wayland have barely given it a second thought. That attitude does not deserve the benefit of the doubt.
When information is power, privacy is freedom.
I'm not worried about it, or complaining about the difficulty of installing it, as I'm aware that I'm currently not the target audience (although the Apache comment was hyperbole). Just wondering if I had missed anything, or if the current situation really was "build xwayland or gtfo." It sounds like the answer is, "build xwayland or gtfo."
i have ever read.
I use the networking capability of X (process on IP address X using display on address Y, same or different IP, different user) every day, all the time.
For example, I always run a X server on Windows boxes, because I can then run some Linux process on the Windows display "root" window. Productivity is higher because I don't have to switch "containers", in order to switch applications, and copy/paste is trivial.
Similarly, I can have a process in a different, more locked-down, user running on the root window of "my" desktop, toggling between applications without having "switch user", open a different VM, ...
I'll keep using X11 as long as I can.
The only "asshole" here is you. Just look at your mad ranting.
That's for X apps. I'm talking about Wayland apps. Can native Wayland apps be remoted? I don't want to have a situation where I'm given a native Wayland app to control something and that something is on a remote machine. I don't want to have a situation of "Well, it's native Wayland. You have to be on the system's console to see that." Further, I don't want to have to fire up an entire desktop session to watch a window that takes up a tiny fraction of the screen.
They have barely given it second thought because they've established that it can be done in principle, and it isn't the stuff they're working on (which is getting the actual display working cleanly and efficiently). They can worry about it when they've gotten the fundamentals pinned down. Do you really want excellent networking for a display system that doesn't display well, or is horribly slow? First things first and all that. As long as nothing they do makes it infeasible, or overly complicated there's no point in worrying about it till the very core functionality is working as they wish.
Craft Beer Programming T-shirts
this shit doesnt work, people keep saying it will replace everything.
they call anyone who challenges them purveyors of "fear uncertainty and doubt.
FEAR - im afraid it doesnt fucking work
uncertainty - im uncertain if i should spend 40 hours porting my shit to this 'next big thing, or ubuntu's MIR, or ubuntu phone's ShitFlinger or whatever teh fuck its called.
Doubt - I Doubt anyone will ever write a game for linux if this is the fucking situation with the graphics layer - 4 to 5 different subsyetems with incompatable versions and all of this hoopla and bullshit and douchebaggery.
its fucking irressponsible, its shit, its like taking a giant snowjob and blowing it all over the open source community.
Many of X's recent "everything as pixels" shortcomings and network bottlenecks came to be because the exact same developers who are pushing to abondon X11 tried to make it into iPhone graphics. That didn't work very well and so they decided to abandon it in favor of the Wayland rewrite. Which is ok, fine, they can work on whatever they like. But when the same exact developers justify thier work with the statement that X is broken, and they're the bloody ones that broke it and abandoned it what way in the first place, it just pisses me off.
Translation: X11 works fine if you're willing to party like it's 1985, with bitmap fonts and non-anti-aliased Bresenham lines.
That might work if you're administering a server, but for a desktop environment in the modern world, it's a sick joke.
No, they don't know any better or are any smarter than the decades of programmers that came before them culminating in the cumulative end product known as X. They want their pet desktop-as-a-iPhone use case to work perfectly at the expense of all that other stuff they don't personally use. Classic case of young developers only thinking of their own needs and lacking the imagination or experience to see past themselves.
First of all, the people working on Wayland are in many cases the same people working on X11. It's not that they are necessarily smarter now, but they are more experienced. X11 was written in a different time, for different systems, to solve a different set of problems than what we have now.
And regarding your accusations, I'd suggest looking in the mirror – your willingness to tolerate 1980s-level graphics is a lot more of a "pet" use case than what Wayland is attempting to provide.
A major problem is not whether Wayland supports old X applications but instead that new Wayland applications are not going to be network transparent like X ones. That limits them to one to one network connection via third party hacks like VNC instead of the many to one and one to many options that X gives you.
It's a backwards step to the non-networked, single user, single platform mindset. That's not even what people are looking for in gaming consoles any more.
The ramifications are that new wayland only apps are only going to be useful if you are sitting right in front of the computer you want to use - an insane restriction now that phones and tablets with wifi are at the point where they can be effective terminals to a desktop computer doing the heavy lifting (video, graphics, voice recognition whatever).
The single platform restriction also sucks - linux only due to a deliberate design choice.
Sorry kids, a dumb framebuffer is not a new idea and a trip back to the 1970s has got to be justified with new features and good benchmarks before it can be proclaimed as better. For now there's only stupid block diagrams that pretend any internal complexity and internal communication is faster than something with more blocks in a diagram even if they are a lot simpler - it's just smoke and mirrors without benchmarks.
Even calling it Metro for linux at this point would be giving it too much credit - save the hype for when it delivers on a performance promise and has more features than SVGAlib from 1995.
run VNC. Some of us want a fast responsive GUI that doesn't rely on 30 year old protocols.
Run VNC? Do you even understand how people use X? I guess not. I ssh into another box & run some program and up it pops on my local screen. Quick, easy, simple, works. Now, setting up VNC works in some cases, but now we are talking about something completely different and completely different use cases. You have some server somewhere, you want to run a GUI config program or whatever real quick, you just type the command and it works. You do not want to spend 15 minutes installing all sorts of VNC crap, configuring it remotely and locally and so on when you're already done in 30 seconds with todays X. I think you simply don't manage or use remote boxes.. atleast you've made it clear that you simply don't get it.
9/11: Never forget it was a false-flag operation
If the protocol was fine we wouldn't see a number of products trying to do an end run around it - NX / FreeNX, RDP, VNC. Nomachine's site in particular has plenty of info explaining precisely why X is so crap and why NX shims the transport with its own protocol to eliminate roundtrips and redundancy.
Mark-t hasn't been keeping up to date
There was a time when displays did everything by passing around rendering primitives -- lines, rectangles, black and white bitmap pattern tiles. At that time it made a lot of sense to integrate network at the low level because you had to figure out how to send and decode all those drawing primitives over the wire.
Display technology moved on. Displays became rich and complex and colourful, and different applications had very different needs and took on more and more of the rendering task themselves and simply pushed bitmap buffers to the display system. Now the task of the display system was to mediate and manage and request complex bitmap buffers from the various clients.
At this point remote display was a matter of having the client send (potentially compressed) bitmap buffers -- let the clients do their own rendering. This is how most remote display systems written in the last 15 years do it. Indeed, that is how X does it these days for most applications: the applications do their own rendering via GTK or QT and Cairo and X pushes the pixmaps down the wire.
If all you are doing is throwing around bitmap buffers, and the display software is simply mediating and displaying those, then remote display doesn't need a whole lot of thought at the display level -- all it has to do is mediate and display the bitmaps it gets from clients. Now, providing a remoting system to let remote clients get their bitmap buffers to the display when requested ... well that's still a thing that needs to be done, but it the base display software doesn't have to care too much about how that gets done.
Think of it as teasing out the layers in the software. The base layer is pushing pixels to the screen (no matter where the data for those pixels came from, remote or local). That's one job: pixels on screen. Focus on that and do it well. Another job is getting the data that the base layer is going to display to it, and you can worry about remote/local differences in that layer.
Craft Beer Programming T-shirts
So running an app over the internet is a pathological configuration?
X11 is utterly garbage at remoting because it was never designed for it, it was designed for LAN use with near-zero latency. That's why the calls are syncronous.
Sure, it's possible to forward an X11 connection across 100+ ms of latency, but I wouldn't call the resulting clusterfuck 'usable'. There's a reason that the nX library is used to make it reasonable - and there's no reason that you can't do the same with a different library that's not inherently constrained by a 26 year old design with no concept of high-bandwidth/high-latency connections.
Per-window RDP is utterly trivial to implement and works better on modern connections than X11 ever has.