X-Window is one of these display technologies that is network transparent. That means you can run a program on a computer and have it displayed elsewhere over the network. I do that quite often, when connecting to another machine at the office, with ssh, to have an editor like gvim or emacs, or to have for one of the servers, YaST (yes, it run SuSE for some obscure reasons, and it is not a PC).
In fact this is the way I started using UNIX the first time at IUT d'Orsay back in 1993... (I feel old now) We had 3 servers running AIX and HP-UX (the X clients), and a whole bunch of X terminals (the X servers), a mix of HP and NCD (rebadged by Bull). We ended being over 100 users logged in doing various things, and even if being sometime painfull when the 3l33t3 hax0r didn't know how to use fork()
or running some other X11 bandwidth wasting software (like mpeg_play
to watch pr0n or xpilot
), it did work quite well. This is why X-Window was designed for at a time were CPU cost more than display.
I have also done remote X forwarded by SSH over ADSL when I was working at an ISP. It was usable. The biggest problem, like for any interactive protocol, is not the bandwidth, but the latency. And ADSL is know to not be good at that, mainly because of the ATM encapsulation.
So I have setup this kind of architecture at home given that there is a PII 266 PC with 256MB of RAM on one side, and that there is an old HP Laptop with a Pentium 266 and 96MB of RAM with the help of the XDMCP Howto. Both run Linux Ubuntu Hoary.
Believe it or not, this setup is not slower than just running the desktop PC. It is even somewhat faster as the supplementary CPU and memory that X does not use on the main machine but on the laptop for display counterwight the network overhead : the desktop PC no longer run X, just gdm
. This was not the main motivation, the main motivation was being to be able to use that laptop as a "workstation", but given its hardware capabilities, making it decently usable without installing Debian potato...
The only pain I had was to figure out why the Xserver was rebooting. It appears that using xdm
to manage it is not the right solution. Starting X manually with X -query prague
(prague is the hostname of the X client) is the way to go.