Interview: NX – Revolution of Network Computing?

Golem.de talked to Fabian Franz and Kurt Pfeifle. NX, developed by the NoMachine aims for nothing less than to revolutionize network computing. The software allows to connect and work on remote desktops even across low bandwidth links such as ISDN or modems.

FreeNX, presented as a preview
during LinuxTag2004 by Fabian Franz (Knoppix Developer) and
Kurt Pfeifle (KDE Project), is a Free Software NX Server based
on the GPL’d libraries from NoMachine. After the aKademy week (where for
nine days more than 400 KDE contributors and visitors plan to
work on the next generation KDE) Fabian and Kurt plan to
release a first snapshot of the FreeNX server under the GPL
license for the first time. During aKademy, a few KDE hackers
are working on the integration of an NX Client into the KDE
framework. Knoppix-3.6 also will contain a first preview on
FreeNX. Golem.de, a German
IT news site talked to Fabian and Kurt just before aKademy.
Daniel Molkentin provided us with a translation.

Fabian Franz and Kurt Pfeifle
(Photo courtesy Pro-Linux.de)

At LinuxTag the two of
you showed off your free NX implementation which will also be
included into the next Knoppix version…

Fabian Franz: It wasn’t only
Kurt and myself – at least four people were involved 😉

KDE’s Joseph Wenniger developed the first kNX/FreeNX client,
assisted by Torsten Rahn.

Out part was to get the FreeNX Server running.

Kurt Pfeifle: The actual
code of the FreeNX server was written by Fabian alone….

We basically showed two components at LinuxTag:

  • the FreeNX Server and
  • the FreeNX/kNX Client.

Only the interaction of both pieces allows remote GUI
connections even over “slow” physical links. Even with
low-bandwith techniques like an analogue modem or ISDN, both,
NX and FreeNX achieve a good performance — even across
operating system borders. A very verbose description on the NX
interna can be found at: Pro-Linux
(german).

Another one will appear in the next few days on OSNews.

Fabian Franz: In fact, our
FreeNX implementation is only the last piece of the mosaic.
99,9% comes from NoMachines’s GPL/NX components,
that we simply use unchanged in FreeNX.

Gian Filippo Pinzari developed the core in several years of
meticulous work. These are the NX components which his company
NoMachine.com offeres as Free and Open Source software under
the terms of the GPL (link?). The exactly same components used
in the commercial products of
NoMachine
. NoMachine currently offers several commerical NX
server variants (Personal, Small, Business and Enterprise)
which base on the Free NX libraries.

If NX was already put
under the GPL in March 2003, why did it take more than a year
until a Free version of NX was published?

Kurt Pfeifle: In the last 15
months, there have been servere misunderstandings concerning
the whole NX software, which was considered to be “non-Free” by
several Open Source developers, just because NoMachine also
based its
commercial products on top of it
.

Without having a deeper look, rejecting NX as “practically
unusable, if only the libraries are released under the GPL
whereas the NoMachine NX Server remains proprietary”. These
biases simply overlooked, that a commandline tool was shipped
by NoMachine almost from the beginning, including the source code which
allowed everyone who was interested to build an completely
working NX tunnel.

Fabian Franz: I first saw
the commerical NX version with my own eyes at CeBIT 2004, when
Kurt showed it to me. I was immediately impressed. But even
when I saw Kurt’s very simple “nxtunnel” shell script (which
didn’t include a “server” functionality, but only merely
provided a peer-to-peer NX proxy tunnel) I didn’t instantly
start to write the FreeNX code. First my laptop display had to
break and die, before NX became a personal necessity. to me.
With a broken display but without money for a quick repair, the
only help was to access the machine via NX. That was the final
kick for starting to code on FreeNX…

How does NX compare to
methods used up to now?

Fabian Franz: What do you
mean with “methods used up to now”? VNC? Citrix Metaframe?
Remote Desktop? PC Anywhere? Tarantella?

In comparison to all of those, NX performes better while
being cheaper. Additionally it is future-proof, since the
source code is freely available. And it’s much more flexible,
since it covers several platforms.

Kurt Pfeifle: If you meant
to compare FreeNX and NoMachine’s NX product: The performance
is not any different. On the other hand you won’t get a support
contract for FreeNX by us anytime soon. For that, you should
contact NoMachine.

Or, if if you need a new client plattform (e.g. Symbian),
you won’t find it here. And if you need extended administration
tools with graphical user interface or a web interface: Ask
NoMachine. Or find a developer, who develops that kind of stuff
for you…

NX was published by
NoMachnine more than a year ago. But only with your
presentation at LinuxTag, the technology became visible to the
broad public. How is NoMachine involved in the KDE/Debian
integration?

Fabian Franz: NoMachine
totally supports our activities. Gian Filippo Pintari keeps us
informed about planned NX protocol changes and keeps us aware
of bugs in our implementation.

NoMachine values the compatibility between our Free and
their commerical version just as much as we do. Users should be
able to use the FreeNX/KDE client to connect to a commerical NX
Server in the same way NoMachine NX clients from all operating
systems should be able to access the KDE/Knoppix FreeNX
server.

Kurt Pfeifle: NoMachine
committed themselves to use the exactly same libraries for
their commercial products as they are releasing under the GPL,
not different or “improved” variants. In my opinion, this
fundamentially distinguishes their business model from those of
Codeweavers/WINE or artofcode/Ghostscript.

What possibilities
arise for the developers from the implementation of
NX?

Fabian Franz: Our
implemementation was intentionally kept simple. It’s a simple
Bash script…

You are surprised? Yeah, right: FreeNX Server is a Bash
script, which glues together GPL library and executable
components of NX to a working whole. All that stuff existed for
15 months untouched.

The fact that it is Bash means that every Linux developer
can fix errors in our FreeNX server. 😉

Kurt Pfeifle: I was merely a
mentor for the FreeNX development and I do the documentation.
But I can confirm: Fabian isn’t lying… 😉

FreeNX consists of less than 500 lines of Bash code
(additionally to the NoMachine/NX source code parts, which are
under the GPL).

Fabian did the implementation of the FreeNX server all by
himself. First of all, Fabian is a true Bash wizard.

Secondly, this implementation should prove how “complete”
the GPL components of the NX are already since 15 months.

Third, it should prove all the sceptics among the FOSS
developers wrong, who ignored NX and claimed a free NX
implmentation would be “too difficult” without looking at all
at the NX source.

And last but not least, we practially don’t lose any speed
by using shell scripts, since the primary work is done by the
precompiled GPL/NX components.

Fabian Franz: Should I
reveal a little secret? The first working version of FreeNX was
the result of merely one night of programming and the source
code was only 180 lines… 😉

The GPL components of NX are really complete and not just a
“crippled decoy”, like many predicted prematurely after they
looked on the NoMachine website, but not at the NX source
code.

The Open Source community should really be thankful to
NoMachine for this great gift!

Kurt Pfeifle: Developers can
use NX and FreeNX for many occasions — just like every end
user. We hope that FreeNX will also attract developers for NX
core development. There’s a lot of amazing potential.

How is the data stream
of an NX connection protected, especially when operating via
open networks?

Kurt Pfeifle: Using SSH.

The connection initiation always uses SSH. No NX server can
work without an SSH daemon. After authentican, you are free to
decided wether you want encryption of not. Disabling session
encrytion can help older CPUs on NX clients, but should only be
used within self-contained and firewall-protected LANs.

Fabian Franz: An NX server
installation is always as secrure as the respective SSH
installation. NX does not run a seperate daemon on an own port
but uses the ssh daemon for connections.

How can NX be used in
large instllations with a high number of clients? Where are the
limits?

Kurt Pfeifle: Every KDE
fullscreen session takes about 40 kBit/sec of bandwith to work
fluently. This of course allows using non-KDE applications
inside the session too, like OpenOffice, Mozilla or Acrobat
Reader.

Per running KDE user session, an NX server takes about
40MByte of RAM and 100Mhz of CPU. A current standard PC as sold
today, with 1 GB of RAM and 3Ghz CPU should allow 25 sessions
in parallel without any problems. It would probably get flanky
at 35 parallel sessions.

Fabian Franz: Since NX is
distributable among application servers on multiple node, one
could imagine a blade center as offered by HP or IBM, to allow
several hundreds of parallel sessions.

Anyway, a NX application server busts the borders where a
Citrix MetaFrame server prostrates.

Is a Free windows
client planned, based on the NoMachine code or is that left for
others to do?

Fabian Franz: A Free windows
client is not yet planned. That is left as a task for others.
As soon as KDE works flawlessly on Windows, the current kNX
client will automatically also work on Windows, without any
additional effort.

The NoMachine client for Windows is available already today
free of charge — even freely redistributable… So there is
not a very high interest or incentive. By the way, there are
also free NX clients available from NoMachine for Linux,
Solaris, Max OS X, Zaurus, iPAQ, ThinStation and other
operating systems. Those are “free as in beer”.

Kurt Pfeifle: The
interesting aspect about the KDE client for NX is the goal to
integrate it into KDE as tightly as possible, thus using the
full power of the superior KDE internal architecture. That
includes the implementation of an “nx://” kio-slave and an NX
KPart just like the storage of NX passwords into KWallet.

With the opportunity to testdrive
Linux without installing it to harddisk, Knoppix Live CDs have
certainly contributed very much to Linux’ popularity and
propagation. A broad availability of NX should make it even
easier to dive into Linux as a desktop and workstation
operating system. Will we be able to get a taste
of brandnew KDE features via NX?

Kurt Pfeifle: Yes.

And that’s possible already today. Since several months I
“abuse” a root server from “1&1” to do nightly builds of
the most recent KDE CVS HEAD branch, which is rapidly
approaching to become KDE 3.3, using an automatic build
script.

The KDE project will use the NX technology in a broader way
after akademy, to foster and speed up its own development.

Fabian Franz: You have to
understand that KDE consists of more than 1000 more or less
active contributors. Only about half of them are “technically
inclined” C++ programmers. A huge and also crucial part of the
work is done by artists, translators, documentation writers and
beta testers, who can’t necessarily do programming.

The non-technical develoeprs don’t tend to use bleeding edge
versions of KDE for their daily work. Neither do they rebuild
their own KDE from the HEAD branch of the KDE CVS repository on
a weekly basis. They tend to wait for official releases and
don’t install it until their favorite distribution ships
precompiled update packages.

With every KDE release cycle in the past this resulted in a
big gap: Documentation authors, translatiors and artists lagged
behind the current C++ programmer sourcecode by months with
their work.

Kurt Pfeifle: NX can change
that. An automatic, but supervised script builds a fresh KDE
HEAD every night which is supervised by a group of experienced
developers. The result can be tested, used, translated,
documented, polished, bugfixed (or even rejected and reverted)
remotely by hundreds of KDE activists “in real time”, very
early in each development cycle.

NX even allows to install several KDE versions in parallel
in a conflict free manner. So in the future we will have a
reference installation available to verify bugs as well as
report and fix them. This can increase the process of bugfixing
tremendously, making it a lot more efficient.

Please keep in mind that it can be very time consuming to
start a system with KDE 3.2.3 to verify or investigate a small
bug, since many developers actually run KDE HEAD for their
daily work.

We will set up one or more FreeNX servers on strong hardware
which is permanently accessable to all KDE developers and
prooven contributors to work on it. This includes KDE HEAD as
well as the last stable release. Especially the contributors of
the new KDE Quality Team
will belong to the privileged circle of users.

Although we are already in contact with potential hardware
and bandwith sponsors, the talks are not finished. Whoever
wants to support us, can still jump aboard… 😉

”*On first sight, a broad integration of NX could surely
lead to new opportuniteis of server-based desktops in
enterprise, government, public administration and schools. What
is the potential of NX here for the next few years
ahead?*”

Kurt Pfeifle: NX will change
the way we think of “network computing” entirely. A lot of
different use cases in a dozen of different areas come to my
mind…

Fabian Franz: First of all,
NX will mean a new boost to server based computing — not only
for classical server applications, but especially for the
personal desktop (though without making the “personal computer”
superfluos and without degrading everything to small diskless
“thin clients”).

NX-driven application servers are the keyword here.

They’ll not only be attractive to companies, government
agencies and schools — if Familiy Smith owns a root server,
they can easisly turn it into an NX application server
including maintainance, backup, software updates, etc. done by
their service provider.

In the future, “root servers” will not only be on lease with
Apache and PureFTPD, but also with (Free)NX.

Kurt Pfeifle: Secondly, NX
allows for interaction of completely different hardware
components: A Siemens Mobile and a Sharp PDD with a Fujitsu
Mainframe or an AMD Athlon cluster; an Apple iBook with IBM
zSeries, Sony Playstations with Solaris Enterprise
Servers…

Fabian Franz: Thirdly, NX
melts down the frontiers between operating systems. It will
become unimportant what system I am current using: on Linux, on
Windows, on Mac OS X, on Solaris, on Zaurs, or on a Knoppix
booted from an USB stick. No matter which application or which
desktop, on which operating system I want access: to KDE
complete, to OpenOffice, to KMail or to Windows with Photoshop:
The only worry is to have a running network. NX will care about
the access across plattforms.

Kurt Pfeifle: Fourthly NX
raises the importanance of software compared to hardware by
virtualizing servers and applications.

Fabian Franz: Fifthly, NX
will make the increasing number of wireless networks
(bluetooth, GPRS, GSM, UMTS…) in the next years much more
useful. The buzzword “ubiquitous and pervasive computing” will
first come true with NX. And IBM will probably be very
surprised about a new meaning of “grid computing”.

Kurt Pfeifle: Sixthly, KDE
will help to create a new kind of World Wide Web. Where up to
now you had to use static, “thin” and low performant HTML
pages, one can now use dynamic and “rich” applications in both
server-centric and peer-to-peer environments.

Fabian Franz: Seventh: NX
allows the better and more efficient use of hardware. “Big
irons” can serve as application servers with many prallel user
sessions, “weak CPUs” can serve as thin clienta to whom NX
allows access to almost inifinite CPU power from anywhere.

Kurt Pfeifle: Eigthly, NX
will create a new migration wave to Linux. That is because with
NX, a migration plan can be seperated into managable steps.
Distributed in small doses, the Linux medicine often considered
to be bitter will be much easier to take in: NX can get single
applications like KMail or Kontact on a
Windows screen
. In reality, the applications are running on
remote Linux computers, completely transparent to users. This
reduces today’s permanent administration efforts like backup or
virus protection by many magnitutes; and it is the first step
of a complete migration.

Let me give only one example:

The project “bring KMail/Kontact onto the Windows screen
using NX” comprises even more hidden possiblities: two years
ago, “Project
Aegypten”
was started as a contract work by the BSI
(‘Bundesamt für Sicherheit in der Informationstechnik’ —
the German federal agency for the security in information
technologies). This is a now completed and secure email
communication using well-estabilished encryption standards.
According to my information, less than 1000 federal government
employees currently use KMail — simply because there aren’t
more desktops converted to Linux/KDE yet. With the help of NX
one could offer KMail access (refined with Project Aegypten
algorithms) to every employee in the public sector. Almost
instantly, all problems emanating from Windows’ viruses and
worms would be eliminated if this quite easy transition would
come true.

FreeNX and NX can not only help with the first step of migration to Free Software. But
they can also support projects, that are postponed now only
because 90 steps could be done safely, but the last 10 couldn’t
be done currently so far. NX builds a “bridge” back to legacy
yet important special purpose applications. This is especially
important for those public sector departments and offices that
didn’t start a migration yet because they were afraid of the
last 10% of non-ported applications. NX can get applications to
the Linux/KDE Desktop that run on Windows Terminal Servers
(WTS) or Windows XP Professional workstations.

Fabian Franz: Ninth… I
guess we don’t get the dozen full today 😉

Kurt Pfeifle: Yeah, ok,
let’s not shoot out all our ammunition, and keep some powder
dry 😉

When will we see the
first stable release 1.0 of FreeNX? What features will be
included?

Fabian Franz: Such a thing
as version 1.0 will “never” exist… 😉

This is because Knoppix 3.6 already includes a snapshot of
the 1.4 release. That’s because the versioning sheme is
attached to the one of NX to keep the maintainance in sync with
NoMachine thus making it easier for users and administrators
who might switch back and forth between the GPL NX and the
commercial version of NoMachine, and who want to have use both
on different hosts while keeping intact mutual
interoperation.

Kurt Pfeifle: With NX 1.4.0,
NoMachine introduces two important features:

  • printing to the local printer from remote applications,
    and
  • session suspending, session reactivation and session
    migration

The new features are currently under development API-wise.
They are especially important for professional use cases…

Despite of things being “in the flow” there, we will release
a “Snapshot 4” of the NX-1.4 based FreeNX Server during aKademy for the first
time — ready for a broad beta test. At least Debian and SUSE
users should have fun with the “aKademy” edition of FreeNX.

Commercial NX 1.4.0 will probably be released in its final
shape by NoMachine during September. FreeNX will update and
releas as soon as possible after this too. The FreeNX Snapshot
is available for download after aKademy.

74 Comments

  1. 2004-08-30 9:37 pm
  2. 2004-08-30 9:42 pm
  3. 2004-08-30 10:07 pm
  4. 2004-08-30 10:29 pm
  5. 2004-08-30 10:36 pm
  6. 2004-08-30 10:39 pm
  7. 2004-08-30 10:45 pm
  8. 2004-08-30 11:06 pm
  9. 2004-08-30 11:17 pm
  10. 2004-08-30 11:20 pm
  11. 2004-08-30 11:25 pm
  12. 2004-08-31 12:03 am
  13. 2004-08-31 12:19 am
  14. 2004-08-31 12:26 am
  15. 2004-08-31 1:21 am
  16. 2004-08-31 1:26 am
  17. 2004-08-31 3:29 am
  18. 2004-08-31 3:58 am
  19. 2004-08-31 4:00 am
  20. 2004-08-31 4:06 am
  21. 2004-08-31 4:10 am
  22. 2004-08-31 5:14 am
  23. 2004-08-31 5:51 am
  24. 2004-08-31 6:17 am
  25. 2004-08-31 6:17 am
  26. 2004-08-31 6:36 am
  27. 2004-08-31 6:38 am
  28. 2004-08-31 6:45 am
  29. 2004-08-31 6:49 am
  30. 2004-08-31 6:49 am
  31. 2004-08-31 6:55 am
  32. 2004-08-31 6:57 am
  33. 2004-08-31 7:00 am
  34. 2004-08-31 7:54 am
  35. 2004-08-31 8:15 am
  36. 2004-08-31 8:20 am
  37. 2004-08-31 8:56 am
  38. 2004-08-31 10:09 am
  39. 2004-08-31 10:14 am
  40. 2004-08-31 10:18 am
  41. 2004-08-31 10:47 am
  42. 2004-08-31 11:43 am
  43. 2004-08-31 12:16 pm
  44. 2004-08-31 12:32 pm
  45. 2004-08-31 1:04 pm
  46. 2004-08-31 1:35 pm
  47. 2004-08-31 2:00 pm
  48. 2004-08-31 2:12 pm
  49. 2004-08-31 2:21 pm
  50. 2004-08-31 2:33 pm
  51. 2004-08-31 2:38 pm
  52. 2004-08-31 2:44 pm
  53. 2004-08-31 2:53 pm
  54. 2004-08-31 4:13 pm
  55. 2004-08-31 4:56 pm
  56. 2004-08-31 5:05 pm
  57. 2004-08-31 5:35 pm
  58. 2004-08-31 7:12 pm
  59. 2004-08-31 7:28 pm
  60. 2004-08-31 7:50 pm
  61. 2004-08-31 8:29 pm
  62. 2004-08-31 11:34 pm
  63. 2004-09-01 12:04 am
  64. 2004-09-01 12:10 am
  65. 2004-09-01 1:44 am
  66. 2004-09-01 4:50 am
  67. 2004-09-01 5:35 am
  68. 2004-09-01 7:32 am
  69. 2004-09-01 10:41 am
  70. 2004-09-01 12:03 pm
  71. 2004-09-01 1:10 pm
  72. 2004-09-01 2:41 pm
  73. 2004-09-01 3:33 pm
  74. 2004-09-01 10:44 pm