Linux - ServerThis forum is for the discussion of Linux Software used in a server related context.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
So I have a question. I have a desktop computer that is really fast, and a laptop that is pretty slow. I was wondering if there were any technologies/software that would help me to use the power of my desktop computer when I'm on my laptop computer (assuming the desktop computer is turned on). I've heard of different technologies that maybe relate to this question, though I don't know what they mean: desktop sharing, remote procedure call, cloud...
this is my first post in here so sorry if it's not the correct forum, and please redirect me to the correct one.
thanks
Last edited by AncestorZG; 11-24-2011 at 11:58 PM.
this is my first post in here so sorry if it's not the correct forum, and please redirect me to the correct one.
Welcome...It probably would have been better in the newbie sub-forum (or, even Desktop/Laptop), but we'll see if a Moderator turns up and decides that it is worth moving somewhere else.
Quote:
Originally Posted by AncestorZG
So I have a question. I have a desktop computer that is really fast, and a laptop that is pretty slow. I was wondering if there were any technologies/software that would help me to use the power of my desktop computer when I'm on my laptop computer (assuming the desktop computer is turned on). I've heard of different technologies that maybe relate to this question, though I don't know what they mean: desktop sharing, remote procedure call, cloud...
Well, Unix-like systems have had a way of doing this kind of thing for decades, so the answer is yes. But...
are both computers on a single physical network close to one another (ie, the network connection is not just over the internet - not impossible over the internet, but it would be an additional restriction)?
The network connecting the two is yours, in the sense that you have control over it, and you don't have to worry about, eg, corporate firewalls and QoS, over which you have no control?
Are both computers running some kind of Linux-like OS, or is there any, eg, Windows involved (not necessarily impossible with Windows, but the details of the answer will be quite different)
What is the network technology between the two (wireless/wired? speed?)?
Eliminating RPC (it is a way of allowing a computer program that you write to use resources on another PC...great if you want to write a program, and it might be used inside an application that does something that you want, but what you seem to be asking for is the system, not the way of writing the program).
The general term 'Cloud' isn't quite what you are asking for, either: the first usage seems to have been for 'El Massive Org has big servers somewhere, and you use their computers (in a similar way to the way that you are asking for, but using El Massive Org's Data Centre). More recently, the term 'personal cloud' seems to have been gaining a little traction, and that might be closer, but, personally I am finding all this cloud hype/next-big-thing-ism to be more than I can cope with, and am giving the whole cloud thing a wide berth, until some of the obvious implementation issues settle down. Someone else may be able to tell you more.
More to the point, since the X Windows system is fundamentally a network-aware system, you can run a program on one one PC (usually, the faster one) and have the display pop up somewhere else (usually, the slower one), over the network. This sounds more like what you are asking for. Of course, you have to have all of the programs that you want to run in this way installed on the remote computer and the default is to do the data storage at the remote computer (which may be an issue if you ever 'undock' your computer and work from somewhere else).
Note that while I have mentioned the faster and slower computers, it doesn't necessarily have to be this way; there may be other good reasons that a program is only be installed on one of the computers (disk space, licenses, multiple usage and data sharing, portability).
thanks for the answer.
This has brought a lot of questions, and I'm really interested with the vast range of solutions there apparently is.
So I'll try to answer your questions:
- Most of the time, the computers are on the same lan: the desktop is directly connected to the router using a wired connection, and the laptop is connected to the router using a wifi connection. That being said, I sometimes bring my laptop with me on trips, so I would rather the solution to be applicable over the internet as well.
- the network is mine and I have total control over it.
- They are both using ubuntu, but they also both have windows installed on dual boot, and I would really like this to be applicable to windows as well, since it's actually there that I have the most demanding applications.
- The configuration has been explained in the answer to the first question. The wireless speed between the router and the laptop is tje basic one, if I remember correctly it's 54Mb/s.
- Yes, I'm asking for an opportunity to differ the whole system calculations to the desktop computer, not just one application.
- As for the data storage, this is not really an issue but the one with the most space available is by far the desktop one.
Last edited by AncestorZG; 11-25-2011 at 04:10 PM.
54Mb/s is limiting for your purpose. When you are remote over the internet (rather than local to your home wireless network) things will be even slower, plus harder to set up.
There are many different ways to set up what you are requesting. In my experience the best choice (ease of setup, ease of use, speed, etc.) is VNC.
1) You install on the desktop computer a program that is both VNC server and X server. Be aware the terminology is backwards between VNC and X. The "client" end of X is where the application runs. The "client" end of VNC is where the keyboard and display are. So when combining X and VNC, the server end of each is in between the two client ends. When looking for such programs to download, they may be described as just "VNC server". The fact that a Linux VNC server typically needs to act as an X server as well may be left out of end user descriptions. There are several Linux free VNC servers available.
2) You start program (1) via a command on the desktop computer, creating a logged in desktop on that computer. You might do that manually on the desktop computer. You might set that up to happen automatically when that computer boots. In the more complicated environment where I use VNC, I need to use SSH first to remotely log in to the host system, then I give the command to create the desktop from within an SSH session.
3) You install and run a client VNC program on the laptop and connect it to the running VNC desktop, so that the VNC desktop of the desktop computer is a window on the desktop of the laptop computer (hope the two meanings of desktop aren't too confusing). You can expand that window to full screen.
A lot depends on what applications you are running that could benefit from a faster CPU. Many computer users run applications where direct rendering to the display is the major computational challenge. You aren't going to speed any of that up by doing the work on a remote computer over a 54Mb link. In fact all that would be significantly slower.
I do a significant amount of computationally challenging work for which connecting via LAN to a more powerful computer is very helpful. But most of those are terminal mode programs, so I normally just use SSH rather than a remote GUI.
If I want to recompress a video file, I would use Samba (don't have NFS installed on the computers I use that way) to move the file to a faster computer, then SSH to recompress it. But than I would use the local computer to view the result. Rendering the compressed video into a VNC desktop on the remote computer and relaying that to the local computer would be much slower.
Instead of VNC, you can use just X for remote GUI. You can set things up so the X server (remember strange terminology) and the desktop program run on your laptop computer, but the applications (which are X clients) run on the faster computer. That is a more flexible arrangement and ought to pass less info over the limited link between computers, so it ought to be faster. But when I have tried it, it has been slower than VNC and was harder to set up than VNC. It is also possible to have just the X server, not the desktop program, running on laptop. That ought to have the same feel as the VNC choice, but I have found it slower and glitchier than VNC.
I would come at this from a different perspective, namely WHAT is slow? Have you done any measurements?
Also, what are you trying to do with them? Complex builds like kernels or just email and web surfing? Lots of things should run just fine on a slower box if it has sufficient memory and reasonable disks. Some laptops have horrible disks which can quickly become a bottleneck if you're doing a lot of I/O.
I'd suggest finding a few different tasks that run at noticeable different speeds of both boxes and run a tool like collectl to see what's going on. That should at least expose where the bottlenecks are and then you can make an informed decision about what to do. Trying to solve the problem w/o knowing what the problem really is could lead to an expensive solution that doesn't necessarily do what you want.
- Most of the time, the computers are on the same lan: the desktop is directly connected to the router using a wired connection, and the laptop is connected to the router using a wifi connection. That being said, I sometimes bring my laptop with me on trips, so I would rather the solution to be applicable over the internet as well.
...if I remember correctly it's 54Mb/s.
Unless you are prepared to design (well, configure and learn, at the least) different solutions for the different situations, that limits you to solutions that will work in all of the situations. There is also, potentially, an issue with the router; not all routers are configurable to forward and block exactly the packets that you want to allow/disallow, so research what yours can do.
Also connecting to the system via the internet imposes a bandwidth/latency limitation, and this is probably an unpredictable limitation, depending on all of the usual variables (the speed of your home internet connection, the speed of your 'away' internet connection, and everythin in between); you'll need to work within those.
While you are within your own network, the situation is quite different; connecting via WiFi certainly limits bandwidth, but it is more under your control, and easier to observe what is wrong. Just don't expect to get the specification data rate if you are towards the limit of range or there are other co-channel noise sources - people commonly get about half of 'what it says on the tin' and there are certainly factors which may reduce the practical data rate to around one tenth of the spec data rate.
Quote:
Originally Posted by AncestorZG
.
- the network is mine and I have total control over it.
So, if there are any firewalls in the way, you can always reconfigure them to meet your requirements, and there is no 'Corporate God of Firewalls' to whom you have to apply, in order to get a connection made.
Quote:
Originally Posted by AncestorZG
- They are both using ubuntu, but they also both have windows installed on dual boot, and I would really like this to be applicable to windows as well, since it's actually there that I have the most demanding applications.
You'd be making life easier if, at least for the computer that acts as a server, it was always in the mode that would allow you to use the system, and if you insist on making the requirement as general as possible, you will be increasing the difficulty.
Quote:
Originally Posted by AncestorZG
- Yes, I'm asking for an opportunity to differ the whole system calculations to the desktop computer, not just one application.
Hmmm, I'll have to guess what that means; I think that you are saying is that you want to be able to run any application that exists on the 'server' on the 'client'.
You should also remember that, if you are to be able to this stuff over the internet, anyone else who had the relevant details (ip, login, etc) would necessarily be able to get at all of your data, and probably crash your machine, erase your disks and cause the usual mayhem, so this is something that you want to be careful about. Now the exact security measures depend on what you decide to do, but there is no point i, for example, saying "No one would want to break into my system...I'm not a Three Letter Agency"
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.