Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I need to connect to a headless X Windows server (running on Ubuntu) from my MS Windows 7 computer over a 100 Mbit network. I could use VNC (or any other remote viewer) but the 3D graphics performance would be lousy I imagine. I used to have it hooked up to a monitor, but that's broken now and I can't afford a new one. A friend advised that I could try and use an X client, and that the 3D graphics wont suffer too much over 100 Mbit. Cygwin seems to be an option, but I was wondering if there were any more lightweight options.

share|improve this question
1  
There is something I call the physical terminology, that is servers (think of the machine) have a keyboard and a screen (and sometimes a mouse). However, they provide services to other users and machines (dhcp, dns, mail...), but that is what I call the virtual terminology. In the case of X, the server is taking your input (physical) and providing you with access to remote applications and services (virtual). So applications you run (on Linux) connect to the server (on Windows), and send their commands to the server, which draws them on the screen for you. Hence why it is a server you need. =) –  Wolf Jan 22 '10 at 16:02

4 Answers 4

up vote 14 down vote accepted

Xming is popular and free, although since I use the rest of Cygwin anyway, I tend to use Cygwin's X server.

Oh and by the way, the client/server terminology in X seems backwards until you think about it the right way: servers are the things that provide a display service; they display the graphics and take mouse/keyboard input (like your Windows box); clients are the programs (running on Ubuntu in your case) that need the display service.

share|improve this answer
    
Nice thanks for the info. Installed that now, just need to figure out how to use it. –  nbolton Jan 22 '10 at 15:38
2  
To use Xming, SSH into your Ubuntu box with PuTTY, but make sure to check "Enable X11 Forwarding" under the Connection > SSH > X11 section. Set the display to localhost:0 (IIRC), and then startup the programs you want. Good luck! –  Steiv Jan 22 '10 at 17:27

I tried transmitting 3D graphics over the network one time and figured out one thing: performance is bad. This happens because all accelerated graphics drivers do not really transmit any 3D data through the network (even if this is loopback or even UNIX abstract socket) but do some direct rendering.

The configurations I tested included both Xming (Xming is really ported Xorg) on Windows + X clients on Linux and both Xorg and clients on Linux. Network was 100Mbit, graphics card was NVidia GeForce FX 5200 (that's not a very recent card, but it definitely can handle glxgears), and both computers have PIV class processors and around 1Gb of RAM through for these two limits were not reached.

I started glxgears as a client. In both cases it displayed very chopped animation and FPS values around 30 or 50. To compare, I also run glxgears native and it showed around 8000 on Linux host and IIRC 500 on Xming with ported glxgears (that was about a year ago and Xming performance may be better now). So network performance is definitely the bottleneck for 3D graphics.

Also I must note that VNC operates only with 2D graphics: it has a very simple protocol that consists mostly of commands like "show this rectangular image on that coordinates", so it definitely won't show any 3D performance.

share|improve this answer
    
Nice answer. I wonder if gigabit ethernet improves performance... –  nbolton Jan 27 '10 at 17:08
    
It should: multiply everything by 10. –  whitequark Jan 27 '10 at 17:49

You might want to try Xming. Also, check out this LinuxJournal article, which gives a lot of info on the subject.

Note that on Linux, for security reasons, xdmcp is not enabled by default. For added security, I recommend you encrypt your connection using SSH. See this section from TLDP for more information about how to set everything up.

share|improve this answer

It sounds like VirtualGL is the kind of thing you're looking for, though I know even less about it than the Wikipedia article. Good luck!

share|improve this answer
    
+1 didn't knew about it. –  whitequark Jan 23 '10 at 20:11

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.