John Looney recently posted to the lkml, asking about the possibilty of one computer serving multiple users. That is to say, multiple keyboards, mice, monitors, etc, hooked up to a single server. The advantages of such a setup in a lab type environment are obvious.
The following discussion ranges through several technical issues with such a configuration, including a kernel limitation of one virtual terminal active at a time, and the typical lack of quality in long video cables. However, none of the issues raised are unbeatable. James Simmons, for example, has been working on cleaning up the virtual terminal code, with many related fixes already merged into Dave Jones' tree.
Another hack exists. Miguel Freitas has a page titled, Multiple local XFree users under Linux on which he details using multiple instances of XFree86 and a dual-head video card to support two keboards/mice/monitors.
From: John P. Looney
To: linux-kernel
Subject: linux as a minicomputer ?
Date: Thu, 11 Apr 2002 15:46:02 +0000
Sorry if this isn't the place for this question, but it's something that
came up in general office talk today.
Many many moons ago, the GGI project promised us the ability to buy a
four-processor box, four PCI video cards, four USB mice & keyboards, and
let four people use that machine at once, with benefits all around.
This would be wonderful for most people (leaving aside someone doing a
'make -j4' on the kernel, while the three others are playing Wolfenstein)
in offices and other shared environments.
Are there any plans to bring this sort of functionality to Linux 2.6 ? As
I remember, some of the problems were that the GGI code was never going to
get into Linux proper, and enumeration of multiple keyboards and mice, but
I would have thought that was there a need, these problems would have been
fixed by now.
Kate
From: Dr. David Alan Gilbert
Subject: Re: linux as a minicomputer ?
Date: Thu, 11 Apr 2002 17:43:31 +0100
* John P. Looney wrote:
> Are there any plans to bring this sort of functionality to Linux 2.6 ? As
> I remember, some of the problems were that the GGI code was never going to
> get into Linux proper, and enumeration of multiple keyboards and mice, but
> I would have thought that was there a need, these problems would have been
> fixed by now.
I'm not sure, but I don't think any code is needed if you run X. Bung
four USB mice, four USB keyboards in and four video cards. Write a
separate X config for each one specifying which PCI card should be used
and which mouse/keyboard device should be used. Now start an X server
for each one.
(Fun should form in the efforts to figure out which mouse is associated
with which keyboard and with which video output).
Dave
From: Vojtech Pavlik
Subject: Re: linux as a minicomputer ?
Date: Thu, 11 Apr 2002 18:49:23 +0200
On Thu, Apr 11, 2002 at 05:43:31PM +0100, Dr. David Alan Gilbert wrote:
> I'm not sure, but I don't think any code is needed if you run X. Bung
> four USB mice, four USB keyboards in and four video cards. Write a
> separate X config for each one specifying which PCI card should be used
> and which mouse/keyboard device should be used. Now start an X server
> for each one.
Doesn't work unfortunately. The separate Xservers stomp on each others
toes in the process. It works if you use fbcon (thus no acceleration, no
3d), USB, and hack the X servers not to switch consoles, and take
keyboard input from /dev/input/event devices. But that's still far from
the desired state of things.
--
Vojtech Pavlik
SuSE Labs
From: Ed Sweetman
Subject: Re: linux as a minicomputer ?
Date: 11 Apr 2002 13:07:44 -0400
why would they step on eachother's toes? You tell each one to goto a
separate vc and give each a separate identifier :2 vt8 :3 vt9 etc. If
each one is using a separate video card, then they should all be able to
run accelerated (no dri) and be fine.
From: Vojtech Pavlik
Subject: Re: linux as a minicomputer ?
Date: Thu, 11 Apr 2002 19:12:49 +0200
1) Only one VT can be active at a time. Even with multiple cards. Thus
only one X server will be active at a time, others will show a blank
screen.
2) If you hack out the VT switching out of X, then still each X server
will disable all PCI resources for other video cards, because it
believes it owns the system. This will freeze all other active X
servers.
--
Vojtech Pavlik
SuSE Labs
* Vojtech Pavlik wrote:
> Doesn't work unfortunately. The separate Xservers stomp on each others
> toes in the process. It works if you use fbcon (thus no acceleration, no
> 3d), USB, and hack the X servers not to switch consoles, and take
> keyboard input from /dev/input/event devices. But that's still far from
> the desired state of things.
Oh how annoying - where do they get knotted up? I'd presumed this was
the whole point of the busid spec in the config file.
Dave
From: Vojtech Pavlik
Subject: Re: linux as a minicomputer ?
Date: Thu, 11 Apr 2002 19:13:39 +0200
On Thu, Apr 11, 2002 at 06:09:10PM +0100, Dr. David Alan Gilbert wrote:
> Oh how annoying - where do they get knotted up?
See my other mail.
> I'd presumed this was
> the whole point of the busid spec in the config file.
No, it's for running one Xserver on multiple displays at once only.
Sad, ain't it?
--
Vojtech Pavlik
SuSE Labs
From: John P. Looney
Subject: Re: linux as a minicomputer ?
Date: Thu, 11 Apr 2002 17:49:42 +0000
On Thu, Apr 11, 2002 at 07:13:39PM +0200, Vojtech Pavlik mentioned:
> No, it's for running one Xserver on multiple displays at once only.
> Sad, ain't it?
Very sad. Nice to know it's not really the kernel's fault.
Is it possible to say "Any mice plugged in to this port is
/dev/input/mouse3" etc. so that if someone plugged out your mouse, plugged
in another into a different port, and you plugged yours back in, that they
wouldn't renumberate ?
Kate
From: Rene Rebe
Subject: Re: linux as a minicomputer ?
Date: Thu, 11 Apr 2002 19:59:21 +0200 (CEST)
On: Thu, 11 Apr 2002 17:49:42 +0000,
> Very sad. Nice to know it's not really the kernel's fault.
It IS the kernel's fault, because only one VT can be active. The
kernel VT stuff needs to be redesigned to hadle multiple VT at the
same time ...
k33p h4ck1n6
Ren
SGI's TKO (triple-keyboard-option)
There have been some questions on this thread about _why_ you'd want to do this since independent machines are so cheap. Based on experience from several years ago, the marketing (and resultant sales) reason showed that people wanted _big_ servers with high-bandwidth access to the shared data. Putting your own display on a big server was the best way to achieve this. If you have a terabyte of storage and 2G of RAM set up for visualization, then the PCI bus to the rendered pixels is the fastest way to access it. This is true when the data (either on disk or in memory) is dynamic. If its mostly static, then network mirroring is probably fast enough.
From a system maintenance perspective, you spend extra $$ on the shared iron vs. cheaper copies, giving a more reliable underlying machine. OTOH, if any of the replicated devices fail, it usually means a reboot for all.
In 1994, SGI added the TKO (triple-keyboard-option) to the Onyx machines. Approximately one month of work was done by a very smart engineer who happened to be both kernel and Xserver savvy and he did it because he thought it should be done (at the time, I didn't think there would be a market for it). It was turned into a real product a couple of months later and sold several (more than 20?) $500K+ machines.
As someone who just purchased a second monitor (FP) for my home machine, I revisited this since I sit right next to my daughter's machine and sharing a big machine might make more sense. Unfortunately, it'll be a CDiH before Microsoft allows a consumer OS to have server-like functionality, so I'm interested in a Linux solution. Also, these days, audio is another service that would need to be replicated.
This would be a great for demos
One of the difficulties I have when advocting linux, is explaining why a multi-user OS is usefull. Being able to show two users working on the same computer would be very helpful. Showing two people playing quake would be a great demo.
Maxspeed Terminals
The hardware and software already exist to do this. It works great.
Go to www.maxspeed.com.
Amnesia? Think minicomputers with GUI interfaces
Have people forgotten minicomputers? Barely a decade ago, we used to have multiple users working on a single box, and it was so cost-effective and easy to administer. Each user had a monitor (e.g. VT100, VT220) and a keyboard (no mouse unless it was a special graphics terminal like Tektronix), with the keyboard attached to the monitor and the monitor in turn attached to the minicomputer through a serial line.
This was a powerful way to distinguish the two reigning operating systems -- Unix and DOS. Both were command-line environments, but one was multi-user, the other was not. Developers who worked with DOS dreamed of the day when they could work in the more advanced Unix environment.
I find it hard to believe that the simple change from a text-based interface to a graphical one has killed this differentiation. Today, Linux (and indeed all of Unix) is struggling to be accepted as being as good as Windows. See? Pretty icons!
This is ridiculous! I want to see a version of Unix once again differentiate itself powerfully from its single-user rival from Microsoft. I want to see graphical Linux minicomputers that don't require expensive proprietary graphics monitors like Tektronix.
It's a simple matter of programming, after all. Make it happen. This was possible in the eighties, for goodness sake! It should be possible in the millennium, only far cheaper and more "mass-market". Isn't that the way advanced technology progresses?
Ganesh Prasad
Re: Amnesia?
Excuse me? We've had X terminals for at least a decade-and-a-half now. Adding what amounts to a separate computer to manage the display gives you an instant speedup -- I remember when I first realized that I could have X on my desktop machine (a 68000-based Apollo) and run all my programs on the Sun server down the hall. I got pretty close to a 2x speedup on programs that were both graphics- and computation-intensive.
X terminals and compute servers make perfect sense, especially when you realize that an X terminal doesn't need a disk. Two weeks ago I bought a MB (with graphics and audio built in) + 500MHz K6-2 for $50. I spent another $40 for 128Mb of RAM, $10 for an ethernet card, and $50 for a case; at that point I basically had a high-performance X terminal for a shade over $200.
Steve Savitzky
Feasibility
We already prepared feasibility study for one customer. Clients are new Athlons 1.2 GHz, diskless and with multiple TNT cards. It's good for office setup. In every office are siting 3-6 persons and with some good layouting you can do it without any special extension cables.
And trust me here are no office users which can use full power of 1.2 GHz machine with Linux.
SO.... will this be possible
SO.... will this be possible ?????
Re: SO.... will this be possible
Yes it's possible. Two video cards (one AGP, one PCI) PS2 keyborad and mouse and USB keyboard and mouse. Little bit of Xserver sources hacking. Compilation, and now it's working well for me. I spent around 3 days with this.
possible
ok how did you do it and what cards did you use and how much harder would it be to get it up and running with 3 users with only a monitor and a mouse
I have this working NOW!
I go the X hack working about 6 monts ago but my brother didnt want to play any games that worked in linux at that time. well i got Diablo2 to work in wineX and we have been playing multiplayer! it is really cool to do. Also the other night i was playing "Return to castle wolf MP" while my brother was playing Diablo2 SP.
There are problems though. I have a TNT (PCI) + GF2 64 meg (AGP) and using official NVIDIA drivers, and it will only work if I boot up off PCI then start AGP as second. it also will not go full screen on the AGP. Though i do get OpenGL to work on both (gears) but they both 1/2 in frame rate when i have them running at same time. Also if i change VT after they are both running Linux freezes up (cant even telnet in). also if i us GDM as log in manager, when the main display (PCI) logs out there is a 33% chance of freezing up the second (AGP). This X hack will also not work on evey video card. I tried a ATI all-in-wonder and Trident (or somethign like that.. not gum :-) with no sucess.
As for the future when i take Operating Syatems in school and read some kernel book, i plan to look at the " http://www.solucorp.qc.ca/miscprj/s_context.hc " (Virtual private servers). This program allows you to create multiple linux sessions (i think that is the correct wording). I was hoping on being able to "show" the sessions my PCI video card, sound card, USB keyboard, and mouse address while ignoring all the rest, then install X in THAT session avoidion the whole VT problem? then systemlink to home dir. This may not be impossible (likley is but i dream...) but i like the idea.
wire problem? just put the computer int eh middle of a + and you have 4 users in the middle of the room.
btw a computer than can play Diablo2 server+ 2clients in wine is:
Athlon 1.33
256 meg DDR
(you know my video)
VIA KT266
(built in sound, will get SB for 2nd some time)
Mandrake 8.1
if Linux ever supports this in a reliable way and not a "hack that JUST works" i can get a dual AMD (Mother board 200-250 + 100 each CPU) and if no one is on the 2nd, all the more power to me! and i wont be throwing it away in 2 years (maby 3.5 years)
alot of games dont stress the CPU it seems, why not get 2 ok video cards to?