2

I have several computers with 2 and 4 GB RAM, not upgradeable anymore, with decent 1080p monitors that in terms of CPU are starting to show their age.

My job is basically office desktop usage. I do not require a lot of CPU resources, but 4GB RAM is starting to be insufficient to me.

Is it possible/crazy to buy a new computer, let's say AMD A10-7850K or i7-4770k with fast 16GB or 32GB RAM and get it to act as some kind of server using it's CPU resources, rendering the screen (for each client), and using its RAM and sending the rendered screen through gigabyte ethernet to the old computers, who would only display the screen rendered by the main computer? So the old ones basically only display video sent by the server and provide input from mouse and keyboard.

So the main computer is really the only one who runs libreoffice, Gimp, the webbrowser, the file manager, produces sound, uses its RAM, renders the screen, and accesses hard disk. The clients only display the image rendered by the server and provide input from mouse and keyboard

I do not know very much about VNC, but I guess this would be similar to VNC but serving several computers at the same time. Is is possible?

What would I need (programs) and how to set up the network?

Linux is multitask and multiuser, how could I make use of it so I have to buy only 1 very powerful computer?

Thanks in advance.

AlexN
  • 493
  • The technology to do this is called "thin client" - the client handles input and output, but nothing else. With a good server, you can handle many such clients, possibly dozens. I'm on my tablet right now, but I'll see if i can add a real answer from my computer later on. – Moshe Katz Jul 11 '14 at 22:35
  • @Moshe Katz, yes please. – AlexN Jul 14 '14 at 08:41

3 Answers3

3

If you are on a fast local network, you can simply forward X server with ssh. Establish an ssh connection with X forwarding enabled like ssh -X user@host Then simply run the application remotely like gimp, librewriter, gedit within the ssh session to have it shown over the remote computer.

Ruraj
  • 942
  • 9
  • 9
  • Does this way send sound and everything to the client? Your answer is beyond my knowledge. I barely know about ssh and do not know if this does what I wish. Thanks anyway. – AlexN Jul 11 '14 at 19:39
  • 2
    No, if you play sound from a ssh session, it is not forwarded. Anyway I'd like to talk about a less known ssh option (IMHO): I always do ssh -Y user@host instead of -X since it solved a weird problem with X11 forwarding and security I had once. – CijcoSistems Jul 11 '14 at 21:15
  • I am going to investigate about your ssh -X and ssh -Y user@host. Thanks to both. – AlexN Jul 13 '14 at 11:16
2

What you're looking for is a remote desktop session, there's a Citrix presentation server available for Ubuntu that would do this, or you could try to use the method this guy did in Ubuntu 10.

Tom Damon
  • 477
  • 3
  • 8
  • I was concerned about security of NX, there is a default key in the server which is the same for every installation (you can change it manually if you want). It seems the issue is not so problematic after all: http://serverfault.com/questions/64189/how-bad-is-it-to-use-the-nx-server-default-ssh-key – CijcoSistems Jul 11 '14 at 21:33
1

The technology to do this is usually called "thin client" (or sometimes, in enterprise-speak, you might hear "Virtual Desktop Infrastructure", though that term actually means a lot more1). Basically, the client collects input and sends it to the server, then displays the output which the server returns. With a good server, you can handle many such clients, possibly dozens on a powerful modern computer.

The platform I have used the most in the past is the Sun Ray, but it's a proprietary hardware solution, which is not what you want. Just for reference, there are also other commercial offerings, like VMWare Horizon / VMWare View, Microsoft RDS, and Citrix XenApp / XenDesktop which work on thin and thick clients.

There are a number of open-source projects that enable you to set up a thin client; each has its own strengths and weaknesses, so I'm going to list all the ones I know of and you will have to evaluate them based on your needs. (Note that if you are doing anything graphics-intensive, you will likely need to tune your settings and network for best performance.2)

DIY

  • This guy did it by connecting to an RDP server automatically on boot.
  • You could also do it with SSH and X Forwarding. In this setup, you would boot to a regular desktop on the client, but all programs would be links that run the command through SSH with the -X flag instead of running the programs locally.

Packages

  • Linux Terminal Services Project (LTSP) - This is one of the more well-known projects, though I have found the documentation to be lacking in some areas. They do have a community, including an email list and IRC chat, if you have questions.
  • Open ThinClient - This one is a bit more "enterprisey" and may be a little more of a management headache for simple environments. It also has a user email list.

1. VDI also includes other "Remote Desktop" technologies, like RDP, VNC, and Citrix, running on "thick clients" - a.k.a. full computers.
2. If you are doing anything graphics-heavy, you might be better off with a Thick client - running some programs on the computer itself and others on the server. If you are using one of the DIY solutions I mentioned, this is pretty easy - just do some stuff on the remote server and some locally. I don't know how to do it in any of the packages that I mentioned.