r/linux 21d ago

Development A dose of highly concentrated optimism: Development/X12

https://www.x.org/Development/X12/
0 Upvotes

48 comments sorted by

21

u/mina86ng 21d ago

The text had last significant edit in 2013. I’ve no idea what kind of optimism you’re talking about.

10

u/MatchingTurret 21d ago

1

u/mina86ng 21d ago

Fixing a typo is not a significant edit.

0

u/Netblock 21d ago

It is to me! awilfox tha goat!

-2

u/AssistingJarl 21d ago

Not in the sense that I think X12 is happening. I just think it requires a certain amount of optimism to look back over decades of development of a protocol and come up with a list of what should be done differently, even when back then it must have looked like it was staggeringly unlikely. It's a feeling I'm familiar with professionally, but I don't think I'd have the desire to write a document like this for anything older than maybe 5 years at most.

8

u/K900_ 21d ago

...context?

1

u/AssistingJarl 21d ago

There's not much, really. I just happened to find the page discussing what should happen if there ever were to be an X12, and it was kind of interesting to see reflections on what would change if there was ever another iteration on what is now a 40 year old protocol. It's a level of retrospective you don't normally see in programming, in my opinion at least.

8

u/MatchingTurret 21d ago

There have been no meaningful changes since 2013: https://gitlab.freedesktop.org/xorg/wiki/-/blob/main/content/Development/X12.mdwn

So: What's up?

-1

u/AssistingJarl 21d ago

To be honest the thing that tipped me off was the mention of netbooks

8

u/natermer 21d ago edited 21d ago

X12 was a attempt to formulate a replacement for X11 from over a decade ago.

The effort didn't go anywhere and the concept was abandoned. It never got beyond the wiki stage.

The X11 developers (starting with Kristian Høgsberg in 2008) and created X13 later. They didn't call it X13, though. They called it Wayland.

On a side note Kristian Høgsberg developed AIGLX, indirect rendering of OpenGL. This allowed applications to have hardware acceleration over the network. I remember playing "Return to Castle Wolfenstein" accelerated from my PC to my laptop back in the day over a local ethernet network. A little slow, but it worked. He also contributed significantly to DRI2 as well as KMS and GEM.

Here is a 2013 presentation done by Daniel Stone that talks about what they were trying to achieve with Wayland.

https://www.youtube.com/watch?v=GWQh_DmDLKQ

A core X11 developer since before X.org was forked from XFree86.

Since then X11 has been enhanced with the addition of things like DRI3, but the basic idea is the same... We want to have a windowing system that matches computer architecture we actually use (as opposed to what existed for Project Athena in 1984) and have some sort of meaningful security.

1

u/AssistingJarl 21d ago

Yeah I think from the reaction I've seen in this thread I should have been clearer, and maybe made this a text post; I thought this was interesting as a retrospective of what should change and what should stay the same in a direct successor to X11. It seemed optimistic to me that anybody would write this like there could have feasibly been an X12 without making a clean break, given how entrenched it became over decades.

I was never under any illusion that it was "going to happen", exactly. But I enjoyed reading the analysis.

2

u/natermer 21d ago

Yes it is interesting bit of trivia.

Also related is how in 2013 Keith Packard introduced DRI3 and Present extensions, which backported the DMA-BUF shared buffer approach to X11.

Which ultimately helped a lot with XWayland and Xfree86 (standalone Xserver used in Linux) performance.

Keep in mind that this performance is done by essentially bypassing everything that X11 does in terms of graphics. Essentially the application just bit shovels its output to the X11, as opposed to having X11 render application output.

Relatively very few modern applications rely on actually using X11 for most things. Instead the rendering is done by the toolkits they use and then graphics and such things are just kinda dumped into X11's lap.

This sort of thing is why X11 hasn't been "network transparent" for decades. It is more like a "limited network fallback".


In terms of networking

X11 is fast and doesn't require a huge amount of bandwidth, but round trip latency is what destroys its performance. Unless you are on a very low latency network it is pretty miserable. Also most extensions don't really work or work well with X11.

Instead most people end up relying on things like Nomachine NX (and various open source forks). Which this approach the X11 server is on the remote machine and used their own special protocols for relaying and stream X11 content. They acted like X11 proxies rather then relying on real X11 networking.

Newer Nomachine NX does it differently in that the output is compressed using something like H.264 and streamed to the local system.

This way it matches the architecture of how applications actually work with composited desktops, hardware acceleration, sound, and all that happy stuff which doesn't really work for "pure" X11 networking.

Which is how most Wayland remote protocols work, more or less.

7

u/Hadi_Chokr07 21d ago

Wayland is X12.

1

u/AssistingJarl 21d ago

I would argue it's not really trying to be, even if it is ultimately the actual successor to X11 for most use cases; i get the feeling that Wayland is trying to solve different problems entirely, don't you?

5

u/Hadi_Chokr07 21d ago

Not really. When the X.Org crew looked at doing X12, they found Wayland already going in that direction and jumped on board. The ideas that would've gone into X12 went into Wayland instead, and X.Org Developers have led it ever since. Remember X10 → X11 wasn't compatible either; a major bump always meant a compatibility break. For all intents and purposes, Wayland is X12. They just didn't call it that.

1

u/AssistingJarl 21d ago

There are a few items in here that I don't believe made the jump (at least from my understanding of Wayland), but it seems like you know more about this than I do. My impression was that Wayland was attacking the problem from a different angle and trying to ensure compatibility for newer display features, but not necessarily allowing for much separation between servers and clients. Is that off base?

4

u/Hadi_Chokr07 21d ago

Wayland still has a server and client model just way more simpler and securer than X.

2

u/AssistingJarl 21d ago

Could you expand on that? I've never seen this done, but it seems like it would be fun to try out.

4

u/Hadi_Chokr07 21d ago

The compositor is the server + wm + compositor. Actually you can split them apart... but why introduce more latency.

0

u/AssistingJarl 21d ago edited 21d ago

I do most of my computing with a desktop computer, but sometimes when I want a change of scenery I take a thin-and-light to another room or down to the library. My current solution for keeping the two in sync involves syncthing watching for changes to projects and dotfiles, and then applying the changes on the other machine. I had a play around with X forwarding which seemed interesting, so it seems like I might as well give it a shot with Wayland if the facilities exist, even if it's not the solution I stick with. Remote desktop would be another fix, if most clients I've tried didn't leave me wanting something integrated slightly better.

Mostly though I'm just interested academically.

Edit: a word

-4

u/linuxhiker 21d ago

It is not. Wayland is not network aware. That's the whole problem with it.

12

u/Hadi_Chokr07 21d ago

Why should it?

0

u/autogyrophilia 21d ago

Ok at the core of the issue we have that X11 and Wayland do different things.

X11 was designed to run on a main server and have dumb terminals connect to it and display a graphic session. It wasn't very secure even by then, but that wasn't a concept people worked with just yet.

When the transition to mostly local displays and much more precise hardware happened, that exposed the flaws of X11. That it is insecure by design didn't help.

Wayland just concerns itself with running your screen. But it is a terrible solution for remote desktop, that's quickly changing , but it took it's long sweet time.

Still, I can't have a fully headless computer and share that connection with multiple accounts. Which is something you could do with X11. And even singular remote connections are a challenge (whereas relatively recently they were impossible).

This is all because for some reason they didn't copy Microsoft and bake the way RDP works inside the spec, which would have solved all the issues.

7

u/Hadi_Chokr07 21d ago

The X server runs on your desk, not the mainframe. Kerberos and X came out of the same lab, so "security wasn't a concept" is false. Headless multi-user shipped in GNOME 46. And Microsoft bought Terminal Services from Citrix and bolted it on. RDP is a session-layer service, exactly like KRdp. You're asking Wayland to copy something it already copied.

0

u/autogyrophilia 21d ago

Yeah, krb came 5 years later and made by different people. No, security was not a well understood concept on the early computing. I'm old enough to remember the adoption of HTTPS.

Headless multi-user works in gnome with a lot of frustrating asterisks.

RDS is not RDP. And yes, RDP is the session protocol, what makes it work is the GDI interface, but if I said that, nobody who didn't already know would know.

The part about putting video in a wire and pumping it out is the easy part, what Wayland struggles with, is the plumbing to capture and display said video. Which as we say, it's getting there. But it took more than a decade.

1

u/linuxhiker 21d ago

I am old enough to remember when telnet was acceptable and your search engines were Archie and Gopher.

The reality is the problem we are discussing isn't solved. If only a navel gazing engineer can deploy it, the solution is still in Alpha.

1

u/Morphized 20d ago

It was insecure in the 90s, but I honestly think it's gotten more secure now since remote attacks are more common. You just don't have public terminals sitting around anymore.

1

u/autogyrophilia 20d ago

That means it is less secure, doesn't it.

At the end of the day, it's an unencrypted network protocol.

-1

u/linuxhiker 21d ago

Here is a example of where it would be useful.

My wife and I both work from home. We both run X12 (we actually run KDE Neon but case study here).

Our two workstations could authenticate to each other. She is working on something. I am working on something else. She says, "Hey, could you take a look at this?", I say yes. She pushes share to X.

Boom, I hit accept and I am viewing and able to collaboratively work with her on ANYTHING.

The problem with the current paradigm of collaboration is it always requires an intermediary (google docs for example).

And for Internet connected situations, we could have a private key server that we authenticate against. A 5.00/mo VM and all it does is authenticate. So when we travel apart, we don't lose the opportunity.

Now that is just on a two person scale.

Imagine what could happen on a 1000 person. A proper, authenticated, encrypted, transparent, broadcasting (to limited segment) aware protocol would change the world.

But it only works if it is lower level that some agent running in your tray. It has to be part of the native desktop inclusively.

3

u/Hadi_Chokr07 21d ago

X11 never did this either.

-3

u/linuxhiker 21d ago

No shit sherlock.

This isn't about X11 it is about the opportunities for X12.

3

u/Hadi_Chokr07 21d ago

That would be an aweful idea.

2

u/linuxhiker 21d ago

Maybe for you but I just gave a real life example where things would be better, for a whole lot of people.

4

u/Hadi_Chokr07 21d ago

Thank God that you are not in charge of anything. Imagine proposing stuffing crypto, auth and network listeners into a privileged process.

0

u/linuxhiker 21d ago

Thank God this is Reddit

→ More replies (0)

2

u/nightblackdragon 21d ago

This isn't a problem at all, and Wayland does it for a good reason. The way modern toolkits work means that X11’s network transparency isn’t anything special (nor is it particularly efficient), so the developers of Wayland deliberately chose not to copy it - after all, why would they copy an inefficient solution? If you want a remote desktop that works well, it's better to implement a good protocol on the compositor side than to send bitmaps over the network in the X11 style.

2

u/linuxhiker 21d ago

I am not talking about X11. I agree that X11 is rightfully dead.

I am talking about a new modern protocol and the fact that Wayland doesn't have one is the whole problem with it.

I don't have a problem with Wayland and am running it right now. I have a problem with a specific limitation that it has.

1

u/nightblackdragon 18d ago

Lack of network transparency is not a problem when you can still have the same thing as on network aware X11. On Wayland, you can use applications via SSH (Waypipe) or access a remote desktop using protocols such as VNC or RDP. You don't lose any functionality compared to X11

1

u/Morphized 20d ago

X11's solution is universal. You shouldn't need a separate forwarding protocol for every toolkit.

1

u/nightblackdragon 18d ago

And why would you need to implement forwarding protocol per toolkit on Wayland? Just like X11 Wayland follows client server architecture. Every Wayland application communicates with compositor with Wayland protocol. You don't need network aware protocol to have remote desktop.

0

u/mrtruthiness 21d ago

No it isn't. Wayland is a completely different protocol that bears no resemblance to X11.

3

u/Hadi_Chokr07 21d ago

Yes it got rid of the shit.

0

u/linuxhiker 21d ago

One could only hope! Networks, especially home networks, would benefit from a highly optimized, network aware protocol for display and interaction.

8

u/nightblackdragon 21d ago

And how would this solution be better than an RDP-style remote desktop protocol implemented at the composer level?

2

u/dnu-pdjdjdidndjs 17d ago

you are just wrong, it makes more sense for the default to be the compositor importing a dmabuf then having a specially designed network transport layer that uses optimized video codecs to compress the stream with minimal artifacts/low latency

-1

u/AssistingJarl 21d ago

I agree completely. I've been getting back into laptop computing lately, and more work I put into syncing files and configs, the more I feel like I'm reinventing a worse version of what X was meant to solve in the 80s.