NX - A Revolution In Network Computing?
Anonymous Coward writes "Judging from this interview, it looks like KDE developers have
found a new toy to add to their desktop's networking capabilities. They claim to be able to cram a fullscreen KDE session -- KMail for mailing, Konqueror for file management, Mozilla for web browsing and OpenOffice for word processing -- into a 40 KBit/sec modem connection without losing responsiveness for the user experience. At aKademy, the 9 day KDE Community World Summit, a group of core developers started to work on NX/FreeNX integration to help facilitate the "re-invention of the KDE desktop environment" for KDE4. Knoppix-3.6 is the first Linux distribution to ship an integrated FreeNX server (created by Fabian Franz) with the NoMachine NX Client."
Introduction to NX technology
A brief introduction to NX motivation and technology
This document outlines the background and the design decisions that guided NX development. It explains why NX is different from similar technologies and states the goals the NX project is set to pursue.
You are completely right in that, mate!
However, please take note of the fact that virtually all (meaning 100%) of all X11 programs already support it. I have used NX successfully with KDE (each single damn program of the lot), GNOME (most of their programs -- I have abandoned GNOME as my default desktop a year ago), ICEwm, OpenOffice.org, Acrobat Reader, Mozilla, Firefox, Abiword, and a bunch of others. They all worked.
The reason is simple: NX uses the X11 protocoll (which each X11 program uses) and translates it into its own NX calls to bridge the remote link distance. After the bridging, it re-translates it into X11 and, voila!, the local X-server displays the X app's GUI without a hitch...
It's a remote graphics protocol based on X11, but with considerably less round-trips, due to aggressive caching on both sides.
Trying to be more plain:
imagine the work when you click on a button (exaggerated):
server: move your mouse position to x1, y1
client: move your mouse cursor to x1, y1
.
.
.
server: move your mouse position to x2, y2
client: move your mouse cursor to x2, y2; highlight button(button 1)
.
.
.
server: move your mouse position to x3, y3;
client: move your mouse cursor to x3, y3;
server: mouse down
client: display pressed button
server: mouse up
client: display pressed button (client will now do the ON_CLICK event)
under NX:
server: button(button 1) was clicked
client: does the ON_CLICK event
It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
I think the app has to be NX-aware for it to work, however...
/. thread on hardware IP KVMs the other day though. Sounded great, but I don't have one to play with. But hey if KVM over IP works for hardware, why not software. Sounds crazy, but you never know.
I don't think you're right on that point. I downloaded the Knoppix3.6 iso with Bittorrent almost a week ago and I've been using Fabian's NX server the whole time since then. It gives you everything you get in a regular Knoppix KDE desktop. You can burn DVDs using K3B from a machine in another room among other things I've been doing lately.
I just wish there was some way to make it work at boot time so I could ditch my KVMs.
I did see that small
"They claim to be able to cram a fullscreen KDE session -- KMail for mailing, Konqueror for file management, Mozilla for web browsing and OpenOffice for word processing -- into a 40 KBit/sec modem connection without losing responsiveness for the user experience."
./'ers to comprehend?
No, they do NOT. The interviewed persons state that a responsive NX session requires a 40kbps link, and about 25MB of RAM. This allows you to run a KDE session remotely and also allows non-KDE apps like Open Office to run remotely.
They do NOT say that you can cram ALL of those programs SIMULTANEOUSLY INTERACTING into that 40kbps.
Obviously they mean you can interact with all of those programs over that link - one program at a time, switching between programs, just like any other remote-control software.
They estimate that a modern PC with 1GB of RAM and a 3GHz CPU could support 25 simultaneous fullscreen KDE remote sessions, crapping out at 35 sessions.
As for usefulness of this technology, they list at least nine scenarios and benefits of using it.
One of which is that it eases Linux adoption on the desktop by allowing Linux clients to access Windows apps running on Windows servers and vice versa, thereby allowing companies to migrate from Windows to Linux at their own pace and not forcing them to find equivalent Linux programs for various Windows-only mission-critical programs. In other words, migration doesn't have to be all or nothing.
Is this too hard for
Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
NX is a compression and caching layer on top of the X11 protocol. It takes the basic X protocol and performs compression of protocol requests, caching of server responses, compression of images, etc.
A deep unwavering belief is a sure sign you're missing something...
It works at the X protocol, rather than frame buffer level, which allows it to perform optimizations that VNC cannot. It also doesn't require a special graphical client... NX acts as an X protocol proxy, so your remote app displays locally like any other X application (as opposed to being contained in a separate desktop within a VNC session).
...as X is to frame-buffer.
VNC runs an app remotely, displays it remotely, and sends bitmap movie of the display actoss the network. It can't scale, because the server has to do 100% of the work, and because sending bitmap diffs is bandwidth heavy.
NX runs an app remotely, displays it locally. Only the unavoidable parts of X protocol travel over the network. It can scale well, because the server only does the bit-crunching; the "thin client" draws the display.
I switched my company over to citrix and we ended up saving alot.
1) I could use our legacy pc's in a locked down state as clients. This avoided having to buy new pc's just because our accounting app needed a faster processor.
2)with centralized administration, we were able to avoid having to hire another staffer to handle support calls.
3) When a piece of hardware dies, I can replaced it with a QUALITY thin client appliance for a less then it would cost for a QUALITY commodity box. Sure I could buy cheaper no name hardware, but I wouldn't stake my job on it.
4) Our customized software does not need to be rewritten for different platforms. Doesn't matter if the client is running Windows, OS X, Linux or an embedded OS. they work exactly the same on each platfom. Not kind of the same, not sort of the same, but exactly the same. This saves on training the monkeys, I mean end users.
We can also provide secure remote access to our data without worrying about whose using what license, and whether their offsite machine is compromised.
At our current growth rate, we save almost 40% with thin clients over commodity boxes. That's not some number pulled from a marketing whitepaper, that's an apple to apples comparison from our department budget when we looked at both scenarios.
Let's be clear. This is not KDE. This has nothing to do with KDE, any more than KDE having an AIM client ties AIM to KDE.
NX is not toolkit-specific, it's just a way of compressing the X protocol for displaying applications over low bandwith connections.
That said, the KDE folks are talking about "integrating NX" into their KDE application framework, which would presumably mean having desktop tools that make the use of NX more convinient, and perhaps wrapping some of KDE's out-of-band data into the NX protocol (such as inter-application communication).
This is all good, but people are missing the mark if they think this is a special way of moving KDE (that is, Qt) widgets across the wire. It's simply not.
I'm pretty sure the parent is BS or I just can't read what its saying. NX takes the X protocol and uses various caching and compression methods to make it more efficient. Unlike VNC which essentially takes a picture of you desktop and sends that, so its easy to see why NX works so much better. It is desktop environment anogistic more or less The client and whatnot I think are written using KDE widgets for the config menu, it uses artsd for sound. The folks developing the Free version are KDE people, thus its under the KDE category. But the server certainly doesn't know anything about KDE or Gnome or whatever, it just deals with X.
X when using xeyes, xconsole and twwm might be a quick bandwidth-efficient drawing canvas... but it isn't with any modern program, thus the need for something like NoMachine.
Why do you want to mix KDE and Xlib? Folks developing KDE don't even use Xlib, they leave that up to Trolltech. The only program I can think of thats still developed (sure there are others) and uses Xlib is the mplayer GUI, and I think everyone accepts its a POS, it mixes xlib and GTK last I heard. I just use mplayer from the console, sometimes with one of its KDE frontends.