Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Google Businesses The Internet Displays

Google Releases Open Source NX Server 257

wisesifu writes with news of a new open source NX server, dubbed NeatX, that was released by Google and promptly lost in the shuffle of the Chrome OS announcement. "NX technology was developed by NoMachine to handle remote X Window connections and make a graphical desktop display usable over the Internet. By its own admission, Google has been looking at remote desktop technologies for 'quite a while' and decided to develop Neatx as existing NX server products are either proprietary or difficult to maintain. 'The good old X Window system can be used over the network, but it has issues with network latency and bandwidth. Neatx remedies some of these issues,' Google engineers wrote on the company's open source blog. NoMachine had released parts of the source code to its NX product under the GPL, but the NX server remained proprietary. [...] Neatx is written in Python, with a few wrapper scripts in Bash and one program written in C 'for performance reasons.'"
This discussion has been archived. No new comments can be posted.

Google Releases Open Source NX Server

Comments Filter:
  • by Anonymous Coward on Monday July 13, 2009 @04:57PM (#28683331)

    Poor NoMachine... now they don't have a product

  • Was ( is ) open source i thought.. Either way, another player isn't a bad thing. Especially if its painless to setup on FreeBSD.

    • Re:FreeNX (Score:5, Informative)

      by MBCook ( 132727 ) <foobarsoft@foobarsoft.com> on Monday July 13, 2009 @05:00PM (#28683391) Homepage

      It's mentioned in the article. It says that Google rejected it because it's a mess of Bash, Expect, and C and very hard to maintain. Their implementation is mostly Python, with a little C and Bash.

      • Re:FreeNX (Score:4, Funny)

        by oldhack ( 1037484 ) on Monday July 13, 2009 @05:25PM (#28683627)
        BASH, Expect, C ... sounds suspiciously like the hairballs I cooked up back when I was slaving away with sysadmin monkey duties.
      • Re: (Score:3, Funny)

        "It says that Google rejected it because it's a mess of Bash, Expect, and C and very hard to maintain. Their implementation is mostly Python, with a little C and Bash."

        I would certainly expect some serious C bashing from a Python-using company. Or did I just C them bash expect?

  • NIH (Score:5, Insightful)

    by FrankSchwab ( 675585 ) on Monday July 13, 2009 @05:01PM (#28683407) Journal

    From TFA:
    "There is a free implementation of an NX server based on NoMachine's libraries named FreeNX, but this did not appeal to Google.

    "FreeNX's primary target is to replace the one closed component and is written in a mix of several thousand lines of Bash, Expect and C, making FreeNX difficult to maintain," according to Google.

    Neatx is written in Python, with a few wrapper scripts in Bash and one program written in C "for performance reasons". "

    It was unmaintainable because it was written in Bash, Expect, and C, so they rewrote it in Bash, Python, and C?

    • Re:NIH (Score:5, Funny)

      by CannonballHead ( 842625 ) on Monday July 13, 2009 @05:06PM (#28683459)
      Maybe they didn't know how to program Expect (tcl). This would make Python much easier to maintain. ;)
    • Re:NIH (Score:5, Funny)

      by Red Flayer ( 890720 ) on Monday July 13, 2009 @05:19PM (#28683575) Journal

      It was unmaintainable because it was written in Bash, Expect, and C, so they rewrote it in Bash, Python, and C?

      Well, they started to rewrite it in a mix of Haskell, Visual Basic, and Perl. But the project managers kept spontaneously combusting, so they had to go for a language combo that was a little more commonplace.

    • Re:NIH (Score:5, Informative)

      by Abreu ( 173023 ) on Monday July 13, 2009 @05:26PM (#28683639)

      Well, it would depend on how much code was written in each language in the original.

      NeatX appears to be 90% Python, with only a few stuff in Bash and C, so its basically just a Python app

    • Re:NIH (Score:4, Informative)

      by kormat ( 88510 ) on Tuesday July 14, 2009 @04:02AM (#28688001) Homepage

      Good question -) However, have a look at the different language breakdowns between the codebases.

      FreeNX:
      5.4k lines of bash
      233 lines of C
      102 lines of expect

      Neatx:
      5.7k lines of python
      400 lines of C
      54 lines of bash

      The bash in neatx is there to provide wrapping of the python code, so that any unhandled errors etc are logged. It's a belt-and-britches approach.

      Steve, Neatx project lead

  • XWindows was remote window graphics developed at Stanford and fortified at MIT during the 1980s.
    • wasnt that the whole point of XWindows?

      Yes. But it failed to account for future advancements in graphics technology. Thus regular desktop usage became too heavyweight for wide deployment. Thin clients splintered in the directions of Citrix, NX, and VNC. Microsoft also screwed over Citrix and developed RDP.

      NX basically is the X11 protocol with many of the issues that make it suck removed. This is accomplished through imperceptible delays to bunch up commands, compression of packets, and caching of previously

      • by spitzak ( 4019 )

        Much more of a problem is that the X design assumed latency would be small compared to bandwidth.

        Far too many X calls require a value returned by the server, which means two latencies no matter how tiny the messages are.

        I suspect most of NX's speedup is due to it emulating a lot of the server on the local end so that a lot of answers are sent back from the local copy. Unfortunately this can't be used for everything, as it will defeat the cooperative nature of X, for instance you can't get an answer that dep

  • Beats Web-apps (Score:2, Interesting)

    by ickleberry ( 864871 )
    Well this sure beats HTML+HTTP and Javascript for displaying remote applications. Web browsers are horribly inefficient for running remote applications and its good to know somebody is working on a replacement

    Of course the obvious problem with this is finding a way to block the ads running in a remote application. Maybe not if they always appear in the same places, but knowing Google I doubt they will.
    • by tenco ( 773732 )
      My guess is, they will develop an AJAX based NX client ... BETA.
      • Re: (Score:3, Interesting)

        by AKAImBatman ( 238306 ) *

        You joke, but between the Canvas [whatwg.org] and Web Socket [w3.org] standards, I don't see any reason why they couldn't.

        Granted, WebSockets have yet to be implemented in browsers, but I hear Google owns a fairly popular one...

    • Re:Beats Web-apps (Score:4, Insightful)

      by Teckla ( 630646 ) on Monday July 13, 2009 @09:48PM (#28685759)

      Well this sure beats HTML+HTTP and Javascript for displaying remote applications.

      I'm so tired of people comparing web apps and X. They are completely different beasts.

      Web apps are downloaded to your local PC and run there. Many web apps make frequent HTTP calls to sync with, or access resources, on the server, but that's completely optional. Web apps are often the right solution compared to X apps because they leverage the power of your local PC. While writing this comment, my local PC did the spell checking, it handled the keyboard events, and it updated the display, all without any communication to, or from, the server. It was fast and responsive and efficient because it all happened entirely on my local PC. The only communication that will occur with the server is when I click on Submit.

      In contrast, X apps are run on the server and merely displayed on your local PC. Slashdot could not possibly function that way without enormous hardware and bandwidth upgrades, and even then it would probably be an annoying experience for many users on connections that experience frequent lag.

      Web apps and X apps are not really competitors. They serve two different purposes. Web apps leverage the local PC and can also leverage the server where it makes sense. X apps are basically entirely run on the server with only display updates being sent to the client. This setup made sense a long time ago when servers were extremely powerful and client PCs were weak. Now that even modest hardware is extremely powerful, X makes very little sense.

  • Long time user (Score:5, Interesting)

    by bhsx ( 458600 ) on Monday July 13, 2009 @05:10PM (#28683513)
    As a longtime NX user, this will be very well received. I feel like I'm one of a couple dozen NX users, however, meaning that I think this will go largely unnoticed by mainstream users. The non-proprietary NX-server packages are very non-trivial to install and all attempts thus far at a completed server setup have remained inadequate and completely fly-by-night/unmaintained. I hope people start to use this more and thus perhaps even push the technology farther.
    • NX is awesome. it's performance has pissed on Xorg for a long long time.
      • Almost anything beats the X11 protocol over the Internet, it's no good. But what does NX have over VNC? VNC works well for me and has both windows and linux clients and servers, with both console and background sessions on linux. But if NX is better, I'm open to it...
        • Re:Long time user (Score:4, Informative)

          by keeboo ( 724305 ) on Monday July 13, 2009 @06:21PM (#28684201)
          The problem with VNC is that it's horribly slow, even running it over a LAN is a joke.

          Even DXPC (NX is a fork from that software) kicks VNC's ass.
        • Re:Long time user (Score:5, Informative)

          by marm ( 144733 ) on Monday July 13, 2009 @06:27PM (#28684255)

          But what does NX have over VNC?

          The performance is an order of magnitude or five better? Honestly, unless you're on something with REALLY high latency, even raw, unmassaged X is frequently better than VNC performance-wise. NX however is hands-down the best performing remote display protocol I've seen. Decently performing (very usable for basic office tasks) full modern desktops when the link has 400ms+ latency and 10kbps bandwidth. It knocks ICA and RDP into a cocked hat.

        • Re:Long time user (Score:4, Informative)

          by timmarhy ( 659436 ) on Monday July 13, 2009 @08:24PM (#28685191)
          what does it have over VNC? speed,audio,printers and image quality. the reason being it's not a compressed image but screen instructions being sent.
    • Re: (Score:2, Interesting)

      I too am a huge fan of NX. It blows the pants off of any other remote access technology (RDP, LogMeIn, VNC).
      • Re: (Score:3, Interesting)

        by afidel ( 530433 )
        Really? Does it map printers, serial, and USB devices? Does it support drive mapping? Does it work with 80+% packet loss? These are all things that RDP supports or does. I know there is a design philosophy difference between Unix and Windows (do one thing in a small package and do it well vs everything and the kitchen sink) but honestly for the vast majority of users out there having one tool do it all is much more convenient.
        • "Does it map printers, serial, and USB devices? Does it support drive mapping?"

          Yes, as far as I know, all of these are supported.

          • Re: (Score:2, Interesting)

            by blackpaw ( 240313 )

            I think the GP means printer, serial and USB devices at the *client* end. With RDP you can make a printer or drive attached to your local PC accessible to the application running in your server session. Very handy for local stuff.

            I don't think NX supports that.

            • Re:Long time user (Score:4, Informative)

              by K. S. Kyosuke ( 729550 ) on Monday July 13, 2009 @10:43PM (#28686207)

              I assure you that I *can* read, and I am sure you can too [nomachine.com]:

              - Prints from within the X11 session to printers installed on the client

              - Lets applications access any file system on the client as if it were on the server

            • by armanox ( 826486 )
              Just verified the printing and file sharing personally. Any smb share on the client can be shared with the server. Printing works for on my end too (Windows Vista Client, Fedora 10 Server)
    • by tzanger ( 1575 )

      NX Free edition is non-trivial to install? There are three packages to download and install off of nomachine's website. It just works once they're installed. What are you talking about?

      • NX Free Edition is free as in beer, not open-source. They only open-sourced the protocol compression libraries. The actual open-source server, FreeNX, is very brittle. When it works, it works fine, but it's difficult to install and maintain.
        • I should add that I'm not being critical of NoMachine for not open-sourcing the rest of their client or server code. I think it's great that they open-sourced the protocol compression libraries, as that's the part that would be most difficult to replicate.
        • I haven't had any trouble installing or maintaining freenx. it was the same as any other package I installed.

          what troubles might i have had?

    • Re: (Score:2, Interesting)

      by salimma ( 115327 )

      One possibility is if it's taken up by OS vendors (Linux distributions, Apple) as their remote windowing solution. Red Hat/Fedora is heavily VNC-focused -- with the installation process doable over VNC, and both full desktops (GNOME and KDE) coming with their own VNC servers. Apple's OS X also has a VNC server, AFAIR. Microsoft, naturally, has their own solutions...

      Google will most likely use this in some way within Chrome OS -- if it shares many innards with Android, the graphics obviously won't be X11-bas

    • Re: (Score:3, Informative)

      by rduke15 ( 721841 )

      I feel like I'm one of a couple dozen NX users

      I don't know if many people use NX, but I sure do install it on all my servers now. And while I had trouble with FreeNX, the NoMachine version was really easy to setup [alma.ch].

      (I use it with meld and sshfs to compare /etc trees between similar servers.)

  • I wonder whether there are environments where technologies like NeatX can be regarded as "God sent" solutions.

    I know the technology and have used it several times but I still fail to see how it could be useful given the enormous power today's systems have.

    I guess I am calling for serious implementations...anyone?

    • Think schools, students and homework. I work in the world of Linux and LTSP in education. LTSP has already given schools the gift of easily maintained, green, FOSS computing. NX would be *perfect* for kids needing access to their desktop from home, for, say, homework. Like telecommuting, but for school. =)

      • by tepples ( 727027 )

        NX would be *perfect* for kids needing access to their desktop from home, for, say, homework. Like telecommuting, but for school.

        Not if the parent doesn't allow the kid to access the Internet for more than the thirty minutes a day in which the parent can directly supervise the kid. Homework often takes longer than that to complete.

        • That would be an issue of the household, not the technology. Parents should know if the child is using computers for school. Computers are getting everywhere - that's an old way of thinking about computers (I.E. putting them on the same plane as television or video games).

    • by fuzzyfuzzyfungus ( 1223518 ) on Monday July 13, 2009 @06:03PM (#28684019) Journal
      I'd say that, these days, it is more about session persistence, network location, and access to local and/or network resources that make these technologies most useful.

      VNC/RDP, for instance, make it really easy to have your entire desktop session, with all open programs, program state, etc. on one computer available over the network from another computer. If you have a whole bunch of windows open, with lots of tabs, and a half finished document, and some other stuff you are referring to, it is way more convenient to just connect to your session, rather than try to recreate it on another machine.

      Citrix, X, and NX are really convenient for situations where a program's context matters. If I just want to type out a shopping list, or check a web page, it doesn't really matter where the program I use runs(which usually means that I should run it locally, because latency sucks). If, though, I'm opening my bittorrent client, or trying to edit some documents at work, it matters where the program is running. I want my bittorrent client to be running on a computer with a fast pipe and a big disk, even if I'm controlling it from my cellphone. If I'm trying to edit some work documents, I want Word running on my work's LAN, so all my documents on the fileserver will be available(without the risks involved in just copying stuff to my laptop, then leaving it on the train).

      I worked at a school where the latter use was common and fairly highly valued. We didn't want to deal with the hassle of hundreds or thousands of potentially infected machines belonging to students and faculty having VPN access to the LAN. We did want students and faculty to be able to access their documents and email when they were at home. To solve the problem, we used Citrix to offer remote access to all the common programs that students and staff would use to view or edit documents, set up so that the programs would have access to the files of the user that logged in.

      It wasn't perfect; but it largely worked. The user would go to a web portal, enter their credentials, and get a bunch of clickable icons. Click on "Word" or whatever and it would(after a few moments of Citrix doing its thing) pop up, looking modestly like a local application. If you hit "Open", though, you'd have access to all your documents from our fileserver. Super easy.
    • This might be extremely useful if one wanted to implement a server component of thin client, or a web based OS. I seem to recall a lot of stuff about one of those in the news lately. (It may be completely unrelated, but they may have some plans for it).
    • NX is great for programmers. When I'm coding, I have 30 emacs windows open, 10 terminals, 50 tabs in Firefox, etc., spread across several virtual desktops. It takes a while to recreate that state, especially when it's not just the windows, but a lot of useful stuff in each one. With NX, I can grab my laptop for a while and within 5 seconds I'm accessing the same desktop, with no perceptible latency. I just need to scroll a bit since I'm viewing a large desktop on a small screen - but it's much better to

    • by moosesocks ( 264553 ) on Monday July 13, 2009 @10:12PM (#28685963) Homepage

      Because NX on modern hardware can provide a user experience that is virtually indistinguishable from a local desktop.

      Even X or VNC on a fast connection with fast machines on both ends will feel a bit sluggish. NX works great on old hardware with slow connections -- if you've got multiple clients, you can squeeze more clients out of the same hardware/bandwidth. This can be a *huge* deal.

      NoMachine's products aren't cheap, but can be totally worth it given the cost savings in hardware, bandwidth, and support. Their free version also works great for anything but a terminal server.

      You can chalk me up as a *huge* fan of NX.

  • I love FreeNX and have used it for a long time, I can't wait to try this...

    I also love Python as a language and I used to be an it's C/C++ or Java or it's not worth it.

    After falling in love with Python, it is let me see if python can handle this with speed, if not, I'll write a class in C and use python to Access if needed.

    I don't really see why they even really need the bash scripts though.

    If you use any POSIX system remotely and like GUI's, NX is a must. VNC and Plain X are slow (even with ssh compressio

    • After falling in love with Python, it is let me see if python can handle this with speed, if not, I'll write a class in C and...

      You have some serious C skillz.

  • by thatkid_2002 ( 1529917 ) on Monday July 13, 2009 @05:28PM (#28683663)

    It might be worth mentioning to some people who are no doubt confused; there is a difference between FreeNX and NX Free. And on a futher side note, I have tried installing FreeNX two or three times and the packages seemed to be unavailable from distro repo or even from the berlios FS (Weird!). In any case if this Google NX server isn't a piece of junk I will be over the moon!

    In my opinion NX is #1 remote display (also sound and printing) technology there is. You get a great quality image over a very slow DSL connection! VNC doesn't come anywhere near it - and for the $0 price tag you can't beat it!

    The trouble with NX Free is that it can only allow a few simultaneous connections at a time - I'm hoping Google's server changes this.

  • by Lemming Mark ( 849014 ) on Monday July 13, 2009 @06:09PM (#28684099) Homepage

    This is excellent news, I've really enjoyed using NX but always found it slightly temperamental to use. Still, it gave me high performance rootless application access over a dodgy wifi link in Germany, back to my machine at uni in the UK - with the ability to resume every time the wifi dropped. I've known people have trouble resuming dropped sessions, though it worked when I needed it. Anything which is well-supported and makes NX nicer to work with is very welcome - I hope Google press on with making this better and better. It's be real nice if they'd make an open source client available too, preferably with a choice of front-end widget libraries ;-)

    Another project, which I actually head about on Slashdot and am very impressed by is Xpra: http://partiwm.org/wiki/xpra [partiwm.org]

    Xpra = X Persistent Remote Applications, i.e. connect to your xpra server (tunnels through ssh by default) to get rootless applications delivered to your desktop, disconnect and reconnect somewhere else and get the same apps back. Like screen, for X. It's not meant for fast-changing displays, e.g. video. But it's a nice, compact approach that largely consists of a few thousand lines of Python. It uses modern X extensions cunningly to get the job done without having to understand most of the X protocol itself. And, somewhat like NX, it's better suited to high latency links than simple X11 protocol is. These days I think Xpra is starting to get more advanced features such as Windows client support, theme matching for remote and local apps, some clipboard sharing, etc. It's a nice little app that has its uses, particularly if you want something simpler than NX to set up and administer. The server can also be easily run by an unprivileged user whereas I'm not sure if that's the case for NX (?).

    • Actually, replying to myself: what I'd *really* like to see is some funky modern window manager that leverages X11 extensions in a similar way to Xpra to enable forwarding of apps I started *locally* over some network protocol. Perhaps there's a reason this can't be done but I'm not really sure what it could be? I don't want to have to decide in advance which apps I might want to migrate - and I don't want to suffer performance penalties whilst I'm not remoting them.

      Xpra, sadly, can only display apps you

  • neatx client (Score:3, Interesting)

    by catmistake ( 814204 ) on Monday July 13, 2009 @06:29PM (#28684277) Journal
    a free oss server... that's good news. Is there source for the neatx client somewhere?
  • by amirulbahr ( 1216502 ) on Monday July 13, 2009 @06:34PM (#28684325)
    A link to the announcement from Google [blogspot.com].
  • So who wants to guess they'll use this with their newly announced "Chrome OS" along with a custom URI scheme handler (ex: "telnet://xxxx" or "apt:xxxxx") where following that link launches the appropriate program. Chrome OS would basically only need 2 or 3 apps for the user to interact with - X-server, Chrome, and NeatX. You wanna use an actual office suite instead of Google Docs? Launch K-Office via the a custom Google homepage, it runs remotely on cloud servers (which you may or may not need a subscriptio
  • You could use X over a dial-up connection on Motif or Athena. Of course it's not the bandwidth, it's the latency. And the latency of a 14.4K connection is pretty acceptable if you turn off MNP5 and other compression junk, even though X protocol compresses very well the modems tend to have worse latency with the built-in compression. LBX (low bandwidth X) was usually a better compromise than running the general purpose compression, if you were lucky enough to have hosts with the LBX patches installed.

  • Congratulations Google, you've re-invented Low Bandwidth X [wikipedia.org]!
    Also see, An LBX Postmortem [keithp.com].
  • I work for a large corporation that uses VNC,and several years ago I tried to install NX at work, hoping to get a speed boost when working remotely. Unfortunately, the creation of a user "nx" was required. I'm not in the IT department, I don't have root access, and they IT department had no interest in deploying NX. So I gave up.

    I saw this announcement and hoped that an "nx" user would no longer be required, but it appears this is still necessary. If I could get it installed and it actually worked bette

  • I work with both MS and Linux servers and, when setting up my own home server, I had a choice between the platforms. Seeing as how I have a TechNet subscription for work/testing purposes Server 2008 is basically free for me so the choice was not one on price but on ease of use and applicability to my needs.

    I ended up installing Server 2008 with Linux running under a VM for the occasional usage mostly because of how great Terminal Services is. It gives me a remote desktop through a fast, secure, and very fun

  • by Marc_Hawke ( 130338 ) on Monday July 13, 2009 @10:45PM (#28686227)

    I'm a VNC user, but I realize some of the benefits of NX. (Sound...performance...etc.)

    However...I couldn't get past the start-up times. With VNC, I'd 'click' and poof, my applications would be right were I left them, continuing on as if I'd never left. If I closed the window, the applications didn't even know I was gone.

    With NX, I'd connect, I'd go through a big start-up process, I'd log in, and wait for my windows to open.... If I wanted to leave, I'd click on the 'I'm leaving now' and it would put everything into a state to where I could come back to it, etc etc. (granted my remote machine was no speed demon.)

    So, finally I went back to VNC. I tend to have the window go up and down quite frequently, and the startup/shutdown times of NX were just a deal breaker.

    If I was going to use it as more of a truly 'remote terminal' when I'd have it up for hours at a time, then perhaps the heavily loaded ends wouldn't bother me.

    • Re: (Score:3, Informative)

      by pembo13 ( 770295 )

      > my applications would be right were I left them, continuing on as if I'd never left

      That's because you never left. That's just how VNC works by default.

      > With NX, I'd connect, I'd go through a big start-up process

      That's just how NX works by default. It creates a new session every time, while VNC creates sessions on start up and keeps them open. Did you consider looking this up at all? I believe that NX can be made to act like VNC however.

  • NX via SSH (Score:3, Informative)

    by kenp2002 ( 545495 ) on Tuesday July 14, 2009 @08:16AM (#28689837) Homepage Journal

    Let us not forget that FreeNX and NX in general appears to use SSH as it's only needed port allowing not only normal SSH terminal activity but also NX connectivity using only 1 port with default SSH encrypted packets so they cannot easily reconstruct the transmitted data in the event of an interception.

  • by Junta ( 36770 ) on Tuesday July 14, 2009 @09:39AM (#28690971)

    So first, this still requires nomachines nx core, seems like, so it cannot claim to be completely pure.

    Secondly, though they don't use Tcl expect, they are still doing the same exact thing, but in python. The problem here is when writing expect stuff, you are already in a bad spot as unexpected input comes up. For example, in trying neatx, I already noted their expect code wasn't expecting a password prompt common in a kerberos environment. And when things go off-the-rails in an expect context, you return to the client an extremely unhelpful, obscure error.

    Thirdly, it is all trying to interoperate with NX's rather unfortunate mode of operation where the service is accessed via ssh to another user, even though the goal is just to 'su' to the user you want to be. Considering nx requires you ta have a normal *nix account anyway, I don't get why they implemented this goofy nx user.

    NX has long been a source of some frustration to me. FreeNX has been promising, but subject to all sorts of weirdness (sessions suspended being lost because they go to closed, suspneded sessions that cannot be resumed for unknown reasons, etc). I really really want the technology NX has to offer, but all the implementations I've tried thusfar have design decisions that are unfortunate and implementations with mysterious bugs and a user community that is unfortunately weak.

    Almost all of this is the fault of the code at the NeatX/FreeNX layer rather than the core. But given the inherently goofy design they are having to emulate, I can't blame them. I would *LOVE* to see an implementation throw out Nomachine's architecture and do a more sane, per user scheme.

This restaurant was advertising breakfast any time. So I ordered french toast in the renaissance. - Steven Wright, comedian

Working...