Remote Desktop Backend Merged into Wayland
New submitter Skrapion writes "One month ago, an independent developer submitted patches to the Wayland's Weston compositor which adds support for FreeRDP, an open-source remote desktop protocol. Now, after six revisions, the remote desktop code has been merged into the trunk. While remote desktop has been prototyped in Weston once before by Wayland developer Kristian Høgsberg, this is the first time Wayland/Weston has officially supported the feature. For a summary of why we can expect Wayland's remote desktop to surpass X.Org's network transparency, see Daniel Stone's excellent talk from Linux.conf.au."
For the past 10 years I have been repeatedly lambasted for complaining that RDP and ICA were superior to X11 transparency and VNC with seemingly nothing being done to address the issue. Naturally, this made me a clueless troll. Blah, blah blah.
Now, with RDP copied and inserted into Wayland "we can expect Wayland's remote desktop to surpass X.Org's network transparency".
Fan boys are pathetic. LOL. I for one, welcome any improvement over X11 transparency and VNC. Anything at all.
This is excellent news and has changed my mind regarding Wayland. A successor to X11 really needs good remote control functionality, but it doesn't have to be done the way X11 did it. I now look forward to a future with Wayland.
Quantum hacker.
Presumably RDP can handle rootless windows. VNC does not have that option at this moment. That means that RDP will work much like xforwarding and be usable over ssh, whereas with VNC you need to start a VNC-session and click around on the desktop to start programs.
You would be wrong then. RDP 6.1 along with Windows Server 2008 introduced RemoteApp which allows a single application to be forwarded rather than a whole desktop.
We don't Salute You!
For the next 100 posts whining about how this isn't exactly like forwarding an Xterm over an SSH tunnel (think about how stupid that is for a second)... X IS NOT NETWORK TRANSPARENT
What? That a lie! 1985 sez X is network transparent!
Well guess what: Modern versions of X are *not* network transparent anymore because to use any of the modern features of X that make using a modern Linux desktop even remotely enjoyable, you are breaking the classic backwards server-client paradigm of X. Sure, there's still a fallback mode for transferring data over networks, but lots and lots of modern features that you expect in a modern desktop GUI break in the process, which is *not* transparency, but is instead more of a network fallback.
Frankly, having tried to use both X and RDP over real connections using the real Internet, I'd take RDP any day of the week. I still remember the finger-pointing amongst developers of different projects when I pointed out that packets were being sent over the network each and every time my cursor blinked. Get over it guys, 1985 wasn't the be-all end-all pinnacle of graphics development.
Still don't believe me? How about clicking the link to Dan's talk about X where he says the exact same thing I just said. He's only been working on X development for over 10 years though, so I'm sure that some guy who sorta got X forwarding working over a gigabit link is much much more informed that he is....
AntiFA: An abbreviation for Anti First Amendment.
Nobody understands X11 then, because Wayland devs are also X11 devs. Enjoy.
Does this allow per-application forwarding? (All sorts of people blasting that Microsoft can do it, not many people speaking to whether *this* specific implementation can).
Does this allow remote applications to cleanly appear in things like notification areas? That was one problem I had with NX, even the rootless mode failed to properly incorporate that.
Does Wayland+FreeRDP provide a more unified approach to audio+video being grouped together? That's a large gap in X, where audio is consider just completely unrelated to the remoting...
XML is like violence. If it doesn't solve the problem, use more.
You're misinterpreting... I was agreeing with you about X fanboys who always cry about "network transparency" when X hasn't been network transparent for years & years. Any modern X server is just shooting bitmaps over a network link in a less efficient manner than RDP.
AntiFA: An abbreviation for Anti First Amendment.
Whatever it does RDP is far, far faster and more versatile than X forwarding. X forwarding is slow and buggy to the point that I use vnc on my unix servers and vnc is awful.
Nobody understands X11 then,
A true statement has just been spoken...
Because VNC is slow and sucks.
A few things :
- Microsoft RDP clients are pre-installed on every Windows based client since Windows XP/Server 2003. This means that a majority of non-slashdot-reading admins have all the tools they need to connect to it already installed.
- Microsoft RDP is a lot faster than VNC/X11 forwarding. For one, they do smart bitmap-caching. VNC is screen-shots only (using some sensing of what has changed on the screen to send the diffs), and X11 forwarding were pretty much just UI elements, which made interacting with certain applications difficult or ackward.
- Later RDP versions allow you to forward just specific applications, in addition to the entire workspace. I don't know if FreeRDP supports this feature yet, but it is built into the protocol.
I've used it on LANs. I've used it across my crummy IDSL link. And I've even used it on dial-up. Only when using very graphics intensive applications on dial-up did I find the performance awful (and, fortunately, I only needed to resort to dial-up during those rare times that the VPN access was down). Caveat: I'm not trying to play games via X11 connections which may be why it works well for me and so badly for the folks who are in favor of Wayland.
I find it amusing that some people are touting how wonderful the implementation of RDP is on Windows 2008 server. I need to access remote UNIX systems, not Windows servers. Those of us that use UNIX (almost exclusively or as exclusively as I can pull off) don't want something that is useful only for Win2008 Server systems. How will an RDP plug-in for Wayland accommodate UNIX/Linux desktops connecting to UNIX/Linux servers? Oh... I guess the people running UNIX servers will have to install a non-native layer to allow the Wayland folks access. That's just nuts.
(Personal opinion time: It seems there is a group of Linux developers who grew up developing for Windows and won't be happy until they've turned Linux into the Windows they would have liked to have seen. Too bad they never used UNIX/Linux as they were developing their programming skills.)
CUR ALLOC 20195.....5804M
Non-native?
Rdesktop is a native linux app I use for when I have to deal with windows servers. The other way around I don't see why someone running wayland could not use X over SSH like the rest of us.
I cut my teeth on Solaris and my caplock key position proves it.
For one, the programming language should naturally support the notion of doing stuff in a non-blocking way (C/C++ does not naturally support this; simulating this requires working with threads or tinkering with even more low-level machinery).
You what?
Unix has offered non blocking calls more or less since forever, and C was basically invented in order to write unix.
read() can operate in non blocking mode just fine. You might want to check the man pages for read() and select().
SJW n. One who posts facts.
Aside from one major security vulnerability (Microsoft Security Bulletin MS12-020), RDP has been rock solid and secure. But perhaps most interesting is that it performs the best. I've tried just about all the major remote desktop protocols out there. VNC, LogMeIn, WebEx, GoToMyPC, TeamViewer. None of them compare to RDP in terms of responsiveness and ability to hold up under excessive gateway saturation of an ISP connection.
Life is not for the lazy.
I think what the poster was referring to is that client-side rendering is now the norm. This has brought us nice fonts and compositing, among other things. So yes, most X11 apps are just sending bitmaps to the server. No longer are modern X-based applications asking the server to render text and buttons and shapes for it. Yes this does decrease remote performance. And modern toolkits like GTK do require a lot of server round trips, which makes things hard to deal with over a high-latency link.
I remember running Xemacs over a modem and it ran great remotely, since it was mostly just asking the server to draw in its behalf. Worked very well, but compared to modern apps, was very ugly.
RDP has been able to forward the display of a single application for 5+ years.
So the cure to remote performance is to rewrite modern applications to 80 era style, because writing a display server that handles modern apps is doomed to be implemented badly...
Dude, just listen to yourself.
X with compression and caching can work very well actually.
Across the Internet, it runs circles around what VNC can do locally on a gigabit network.
VNC is nothing to hold up as a solution for not having the networking features of X anymore.
A Pirate and a Puritan look the same on a balance sheet.
So what you're saying is that X11 isn't network transparent, at least from the perspective of developers. And the example of inefficiency that you provided (drawing bitmaps) is something that all modern GUIs do extensively today. Your defense of X11 seems to be out of touch with the reality of modern GUI development. This is precisely why the people that actually do development on X11 or using X11 want a new graphics stack while the people that don't do any X11 development say that X is good enough.
RDP on windows at least outperforms VNC by a wide margin both on fast and slow network connections.
"I use a Mac because I'm just better than you are."
wrong.
all that needs to happen is enough of us to care less about your precious remote X functionality and you'll be forced to ditch it, support it yourself or program it yourself.
so people mindlessly fleeing from X, might not even care about a feature they never used......ever
all that needs to happen is enough of us to care less about your precious remote X functionality and you'll be forced to ditch it
Sigh. Linux used to be the world of possibilities where unusual behaviour was expected and no one in their right mind would put up barriers to their fellow hacker.
What happened?
SJW n. One who posts facts.
Hi, I am Marc-Andre Moreau, founder and leader of the FreeRDP project. I was not directly involved with the FreeRDP Wayland backend. First, definitely take this backend as a first step. There is a *lot* more than can be done in the future, and I can tell you it has the potential to make your best dreams come true in terms of remote desktop. Here is a screencast I took about a month ago showing FreeRDP on Linux connecting to Windows 8 with RemoteFX, playing videos with sound smoothly: http://www.youtube.com/watch?v=JUF8xPKBQJM Even if this is impressive at this point, it is just a fraction of what we're going after in the future. RemoteFX was introduced in RDP 7.1, and is what FreeRDP implements. It basically encodes everything on-the-fly for fast encoding on the server and fast decoding on the client. This means the videos played in that remote desktop session I've recorded are re-encoded to RemoteFX, they are not sent as H264. RDP also provides a functionality allowing the redirection of the compressed video stream for local decoding and playback, but from experience RemoteFX provides a better user experience. RDP may be a protocol designed by Microsoft, it is part of the Microsoft Open Specifications. The long term goal of the project is not to make it a "FreeRDP to Microsoft" technology, but really to make it a "FreeRDP to FreeRDP" technology, where high quality clients and servers will be available for all platforms in existence. Like it or not, RDP is an extremely powerful protocol that has all the potential necessary to compete with leading commercially-supported alternatives, except that this one is open specification and open source with FreeRDP. We are also considering the possibility of defining our own community extensions to the RDP protocol to fill in the gaps left by Microsoft. We currently have clients on Linux, Windows, Mac OS X, Android and iOS. We have servers (still in their early stage) on Linux, Windows, Mac OS X and now Wayland. All of this is available under the Apache license. One common mistake about RDP is to compare only in terms of the core feature set, which is graphics remoting and input. RDP provides support for disk redirection, audio input and output redirection, multimedia redirection, smartcard redirection, printer redirection, usb device redirection, multitouch input, serial & parallel device redirection, etc. It has a very rich set of security features which we work very hard on supporting well (Network Level Authentication, TS Gateway, etc). As for graphics remoting, it is very elaborate in the RDP protocol, and it just keeps getting better with newer versions of the protocol. The next step for us is to jump on RDP8 support, which will bring many new features such as a progressive graphics codec, dynamic adaptation based on changing network conditions, a high performance codec for anti-aliased fonts, support for multitransport (TCP + UDP), enhanced support for WAN and higher-latency/low bandwith environments, etc. All of this can be brought to all platforms with the FreeRDP project, for the benefit of all. Brace yourselves, FreeRDP is coming.
Lennart Poettering
(Grin, Duck, and Run)
Ah yes, the ever intelligent commentary on Slashdot.
What video did you watch? Was it made within the last few months? You do realize (if the video is covering Weston) that Weston is not only new but also a reference implementation and not intended for production use, right?
This has not a goddamn thing to do with why "Linux on the desktop has failed."
I think you have misunderstood the intent of the original post. The poster was not saying that X doesn't work over a network - as you have pointed out, anyone can easily prove that X technically works over a network. The point was that the efficiency of "network transparency" in X is no longer a reality. That is because the intent of X was that a request could be made to render a primitive, such as text, by providing a few parameters over X (networked or local) about the text that should be rendered and the result can be displayed with minimal protocol chatter. However, since many elements of modern GUIs use bitmaps for display elements, many of the transmissions over X are simply bitmap requests instead of requests to render X primitives. At that point, X is basically behaving like a glorified rootless VNC server - just sending a series of bitmap updates that can be costly over slow or high-latency networks. Perhaps the original poster should have said the "efficiency of network transparency" is no longer a reality to make the point a little clearer.
1. As I told another poster, Network Forwarding != Network Transparency. You know how modern X servers operate over a network? By pushing a bunch of bitmaps in a less-efficient manner than RDP. I really don't care if some dusty design document from 1985 says otherwise, you're irrational wishes don't create a new reality. Unless you are a real fossil, I was probably doing X forwarding before you even new what Linux was, and I know much much more about its limitations than you do.
2. If you're calling me a liar, you're also calling the main developers of the X server and Wayland liars because they agree with me and not with you.
If arrogance, ignorance, and disrespect for people who do hard work could be trasmuted into display server code, you would control the market!
AntiFA: An abbreviation for Anti First Amendment.
VNC is a rather inefficient protocol. It basically works by sending periodic screenshots of the host system to the remote one, whereas RDP sends just enough information to the other end to render the screen on its own. Basically it is just a hell of a lot more efficient on bandwidth and CPU usage.
Careful with names containing L slashdot.org/~AiphaWolf_HK slashdot.org/~AlphaWoif_HK slashdot.org/~AiphaWoif_HK
RDP on windows at least outperforms VNC by a wide margin both on fast and slow network connections.
It should -- VNC is doing screen scraping. RDP is hooked in deep into the GDI and can see the underlying API calls. (Technically speaking, VNC could do the same thing, but doesn't.) Its a lot closer to how remote X works than VNC.
No. What he's saying is that X11 is still perfectly network transparent, but that the clients are using the protocol in a manner that only works well over very high bandwidth, very low latency links, like a local socket. The only time network transparency goes away is when you're using extensions like SHM or DRM, which typically means you're doing things like video playback, games, or other intensive rendering; tasks which will never function well over slow, laggy links.
Essentially, the client can request a bitmap representation of an element, or the native UI component. For example, common UI components are sent as UIElements and SkinParts. SkinParts can be sent as vector items (like gradients, lines, etc), or bitmaps themselves. So, for example if you run calc.exe, the client can request the app as a stack of UI elements (essentially, how the GDI plans on drawing the components to the screen). All the buttons, etc. are sent as a component package which describes how the element should look. If it uses a bitmap as a part of its chrome, it is sent as a separate SkinPart.
You can also get bitmap representations of components if the OS thinks it is too difficult to draw them (or the developer just threw a bunch of bitmaps together to represent common UI components). When this happens, calls into the GDI update the RDP server to let it know that a component of size X/Y at X/Y has updated. It's a lot smarter than VNC which has to watch the screen and updates the screen in a 1/x method.
X11 is a bit more primitive... It expects the UI components to be created and skinned by the client. This is really only useful/consistent if both the client and the server are running the same WM. Users of RDP get the same experience regardless of their client.
So if you want your app to be reasonably usable over connections slower than LANs, you need to design your app in a very specific manner. That doesn't sound unreasonable, but it also doesn't sound transparent, which was my original point.
I don't care about RDP either, but have you ever used NX/X2Go instead of straight X forwarding? I find it is much faster and usable even over slow(ish) connections.
God is imaginary
I'm always curious about this attitude: how does being a developer make you an expert on something. Does someone who builds a highrise know everything about the building once it's full of people using it? How does that logic work?
AB HOC POSSUM VIDERE DOMUM TUUM