[X2go-user] Question about the source
John A. Sullivan III
jsullivan at opensourcedevel.com
Sat Mar 19 03:57:00 CET 2011
On Fri, 2011-03-18 at 20:24 -0600, Tyler Jameson Little wrote:
> I downloaded a copy of the source by using this command: git clone
> git://code.x2go.org/x2goserver.git
>
>
> I want to try to make a module on NodeJS, and I had assumed that I
> would get a bunch of source files written in C or C++, but what I got
> was a bunch of Perl scripts.
>
>
> Is that all the server is? Am I missing something? My goal is to
> make an NX server that can run over a simple TCP or HTTP server and I
> was going to write a client for display in the browser. From my
> research, X2Go is supposed to be the most fully featured, open source
> NX implementation out there. I downloaded the source from
> NoMachine.com for part of their server and it was as I expected, a
> bunch of C and C++ sources.
>
>
> With NodeJS, I have a couple of options:
> * Include a C++ module by exporting certain functions
> * Write the source in server-side JavaScript
> * Use the exec command to execute scripts on the command-line
>
>
> If the server really is that simple, then my project will be a lot
> less painful and will take me a lot less time than expected to make
> work with NodeJS. If the server really is this simple, how does it
> compare performance-wise with the open source version from NoMachine?
> I want to possibly have several NX servers piped through a single
> webserver where each NX server is running in it's own VM, so
> efficiency is what I'm after. I am primarily looking at just running
> this on Ubuntu, so this package looked like it was the right one
> (debian).
>
>
> Any help that any of you could offer would be much appreciated. I'm
> excited to start playing with this software!! Don't worry, anything I
> produce will be Open Source, regardless of whether I do a complete
> rewrite.
<snip>
Welcome, Tyler. I'll take a stab at explaining this in case the devs
don't have a chance to respond. Of course, take anything they say as
more authoritative than anything I say!
There is a difference between X2Go and NX. X2Go strives to be much more
than just remote screens and keystrokes. By leveraging many open source
projects (e.g., sshfs, fuse, pulseaudio, libssh, vcxsrv, nx) it strives
to create a complete desktop experience including printing, sound, local
file shares. Note that I mentioned it leverages the NX code which is
why you will not find the actual NX source inside X2Go.
The server side is largely a collection of scripts. In fact, starting
the x2goserver process really does not start the server. It starts a
cleanup script to handle maintenance of stopped/suspended sessions. The
client actually invokes the various scripts via ssh. If you download
the client, you will find a bunch of Qt/C++ code and it is this code
which calls the various x2goserver scripts to do things like set up file
shares, audio, and invoke NX with the proper arguments. Hope that helps
- John
More information about the x2go-user
mailing list