FourHead: One PC, Four Users
LoganGD writes "A reseach group from UFPR university in Brazil, C3SL has managed to make one Linux box run four terminals at the same time. That means four mice, keyboards, displays and users with just one CPU. The way they managed to do that can be found at the FourHead project webpage. The fact that one computer science laboratory can suport up to 60 users whit only 15 PCs is really attractive for low-resource groups and countries."
I wonder what, if any, heat issues would come from running 4 video cards, and the cpu at relatively full power, in a seemingly normal sized case. I would imagine it would get pretty toasty(or very loud with all the fans running, think of the poor power supply!)
I would be interested to see how they handle it!
Where's the economy in this? The "box" (cpu/ps/hdd) is relatively cheap compared to the display. I guess every dollar/peso/dinar counts.
Wasn't this what Unix (and/or its predecessor, Multics) was designed for?
~ Aero
This has been done a long time ago...i user/
http://cambuca.ldhs.cetuc.puc-rio.br/mult
But if one uses XGGI, its easy to get eight or more users on a single PC.
- A.C.
I would be interested to see how they handle it!
Since they are in Brazil, the easiest way would be to move to a colder country.
For terminal services server to work, you'd need one computer for the TS server, and four computers each with their own operating system for this to work. So to get the same result with Terminal Services, you'd need atleast 4 (one of the computers in use is also the terminal services server) and ideally 5 computers.
Hi there,
1975 called. They want their computer headlines back.
Best regards,
Chairboy
Also, you don't need 4 cards, You could do it with two. NVidia's twinview allows you to run two seperate X-servers off of one card (provided of course that it has two outputs).
Initially it is necessary to catch the code source of kernel 2.4.25. Makes it sound like an adventure.
-- The morphemes of your disquisition are ascertainable, but they have eschewed an ambit of transpicuous exposition.
Heh, there was once a time where I had three mice (only 1 cursor though) - I had a normal PS2 mouse plugged in, an old COM port (I think.. never been too sure what port it was) mouse and a wireless USB mouse all plugged in at the same time, and they could all control the cursor.
Hehe, it was good for playing tricks on my parents when they were sitting at the desk with the PS2 mouse and I'm sitting a few feet behind them with the handy wireless USB mouse.
*evillaugh*
It's not like the graphics cards are going to be pushed to the limit - I mean, the CPU wouldn't cope with them all playing ut2004 at the same time. :-) So they shouldn't be generating all that much heat, couple of case fans should cope with it no problems.
As for the noise, it'll still be quieter than 4 separate boxes.
I don't think anyone could argue that these create massive amounts of heat. What heat they do create can easily be exhausted by a case fan.
This is definitely a setup for an environment where people are literally running on a shoestring budget. This is a really nice ability, and I'm glad someone has done it.
Man, this is old news. We did this few years ago with five or more people on one machine. All we needed was a really small computer class, some free chairs, one PC, one keyboard, one mouse and one display.
Fastest (or strongest) got the best seats and the one with specs got the keyboard.
Talking about multi-tasking...
So I guess four heads are better than one eh?
(ba-dum-ching!)
(ducks impending flame doom)
it doesn't involve a mainframe?
Ranging from:
'xterminals are cheaper' -- anyone care to back that up?
to:
'Windows terminal services can do this' -- don't know where to start on that one, suffice it to say: it can't.
to:
'This is just serial terminals' -- it isn't. RTFA.
I'm sure I missed a few...
"I assumed blithely that there were no elves out there in the darkness"
Mainframes used dumb terminals (that is, effectively a seperate machine connected to the mainframe via serial).
This is a standard computer handling several video outputs, keyboards and mice by itself. Just the same as any one person system, but handling multiple persons instead.
Or something.
And what if one person writes an important document and another wants to press reset?
;)
I suggest 4 CD-ROM drives and correct permissions set in fstab so everyone can use -their own- drive only
45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
Ok, so by the time you spend all of the time and effort to do all of this, you could deploy a fully self contained thin client in what, 10 minutes?
The only way I see this as a good idea for any low budget organization is if they get donated lots and lots of monitors, keyboards, mice and computers with graphics cards for this project.
clearly you need 4 reset buttons as well in that case.
This sounds like a multiplayer gamer configuration. Unlike most shared-CPU systems, everybody has a 3D video card, although they have to be PCI boards. With everybody on the same CPU, latency is a non-issue. Fast FPS games should synchronize perfectly. That tightly synchronized feel will make for much better head to head gameplay.
Observations that "this has been done before" are really missing an important point, that it's being done in a new way. When there are hundreds of software solutions for everything, all for free, then there will cease to be a market for overpriced proprietary solutions. Not only that, but instead of thinking "where can I buy ___," the first thought to come to mind will be "where can I get this in Open Source."
Well, you can, but it's third party, very hardware specific and leaves you stuck with M$ XP. The Linux system demonstrated is a clear winner for schools, libraries, banks, casinos and other places where economical use of hardware is desired. While the Linux system might be difficult to maintain, it can be done. The Windoze solution leaves you dependent on the vendor. The people at Jetway have done an outstanding job but such is the world of proprietary software.
Anyone know of a better system? If you say citrix terminal services, I say, Linux Terminal Project and, cool as those things are, get thee back to 1975.
Friends don't help friends install M$ junk.
multiple comments that mention this was being done for years are all true - for Linux. Serial terminals, remote X access, VNC, network boot, diskless workstations, all that stuff depended on ancient (though still great) UNIX multi-user multi-session framework - multiple users work on the same machine at the same time.
And now Microsoft woke up.
After NEXT, GECOS and a couple others, PC has a GUI! Windows 1.0! Years after Amiga with real multitasking introduces Task Switching and later ('95) first Multitasking. Then the puny '98 "multi-user" (Amiga had that some 5 years earlier, UNIX machines way before that). And now, in 2004 we hear that after users of XP are tired of the pseudo-multisession of Switch User, SP2 is to include REAL MULTISESSIONING! Yeah, right! Two users can work on the same computer at the same time! Yay!
Noticed the catch? The keyword is "two". Yeah. Two sessions ought to be enough...
45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
" Mainframes used dumb terminals"
Not always. The IBM 3270 architecture (I think it had another name as well) could use graphics terminals with high resolution rendering, mouse etc. Quite a bit of local processing could be done.
Actually just a monitor, mouse and keyboard would have to rate as a dumb terminal. Even acsii terminals had some intelligence for cursor positioning etc.
Indeed, you're right, UNIX mainframes were before my time. My first computer was a pizzabox LC from Apple - and I've never touched a terminal (except perhaps at the library). But I still hold to my position - as the world becomes more networked (and this mesh becomes easier to manage), it will only make sense to reduce the amount of duplicate hardware in our setups. From a resource pespective, it makes a lot more sense to have a bunch of users share on piece of hardware and software than spread it out across a network. I guess what it then comes down to is convincing people of the benefit - like carpooling, some people will keep buying their Dell SUVs no matter the price of gas. This "news" about this being ported to linux is indeed news, because it signals the move from mainframe to mainstream.
TCO depends a lot on wages vs. hardware/software costs. If the wages are high, it can make sense to spend more money on hardware/software if that causes less downtime and less work for the adminstration. But if the wages are low, work-intensive solutions with slightly more downtime can become acceptable and have a lower TCO in the end. In countries like brazil I wouldn't be so sure if the TCO of a LTSP is really lower.
Not unlikely hardware is more expensive than in the US and the wages are a lot lower for sure. And students are working on these PCs, so downtime is almost free. I believe such a four head solution also provides better response than a LTSP installation. Video playback and similiar stuff should be possible on a four head installation.
Jan
Most of the time, your PC sits idle while it waits
for you. Every now and then, you sit idle while you
wait for the PC.
Now get a 4x faster PC, and share it 4 ways.
Very seldom will all 4 users need the CPU at once.
So, nearly all of the time, you'll get better
performance. When you need the CPU, most likely
the other 3 users are reading, thinking, chatting,
drinking, picking their nose, or whatever. The
fast hardware is all yours.
Could it be that windows doesn't support multiple monitors? No.
Or that it can't support 4 different users on them (as opposed to 1 user getting a big display)? Probably not, at the very least, it would be hackable.
Maybe it can't support multiple keyboards, or mice? Again, the most it would need is some hacking.
Or maybe, just maybe, if you posted a webpage, telling someone how to use a single windows license for 4 users, M$ legal would go apeshit on you, and stomp you into a tiny, tiny greasestain?
BINGO!!
Are you talking about PCI Express cards (which is not PCI-X)? Do they make PCI-X graphics cards?
PCI-X is 4.3 GB/s (maximum!), and AGP 8X is 2.1 GB/s. Four graphics cards talking on a PCI-X bus would probably saturate it, especially given that it's shared-bus, so the number of bus arbitrations would be huge.
PCI-Express is point-to-point, so provided you could find a motherboard with 4 x16 links (good luck!) or at least had 4 x16 slots (again, good luck) you could do it.
But a 4 processor motherboard with 4 x16 slots doesn't exist right now (it'd be a *huge* motherboard!), so no, you can't do it.
In fact, we installed 10 workstations using this system on 5 PCs for a client of ours recently--replacing 10 old iMacs--to lower the TCO for a small call center.
It's been working great, no problems whatsoever.
Best Buy can have you arrested
My machine has been running for a few weeks and is not noticeably hot, however they are not the latest state of the art graphics cards, especially the PCI one which I found difficult to obtain. I would like to get a twinhead PCI to have 4 monitors, but they are rarer than hen's teeth in the UK.
BTW the graphics setup is OK in Linux or FreeBSD, once the Nvidia drivers are loaded, and with SuSE you must forget all about SAX and edit XF86Config by hand, as per the comprehensive info from Nvidia. The same file, with possibly minor tweaks can then be ported across to the FreeBSD partition, and the FreeBSD version of the Nvidia driver loaded, for those who want to dual-boot it with two decent OSs.
BTW I did this just to get lots of working space on my screens, 3 cheap LCDs at 1280*1024, great for programming and debug, and whatever else you need to do at the same time such as reading manuals, but takes less desktop than the two 1600*1200 CRTs I had contemplated. The Athlon is nothing special, 1600+ I think (not at that machine right now) but it has 2 HDDs, / on one, swap on the other, the usual speedup trick, not that it needs much swapping with 768MB RAM. Definitely not a top performer or games machine, but it works great, and most of the cost was the monitors.
This concept would be great for schools, it may be how Linux or BSD, or both, can make serious inroads into a big market, currently filled by the Criminal Monopoly. I think 6 screens might just about be viable with a top of the range Athlon, and some extra fans in the case, but I will not be building one of these for myself, it would be very OTT.
It is going back to the mainframe in a sense, but in areas where maintenance of the software is a major burden, this reduces that by a factor of 4, approximately. I would love to see this concept trialled in schools in the UK, it could free up money to be spent on other important things. If using a fairly basic PC, and cheap CRT monitors, it ought to be possible to get the cost to a very competitive level indeed, with no extortionate licence fees to you know who.
I t would also be good in offices where they do mainly word processing, hardly a heavy load, one PC for 4 secretaries.....
My 3-head monster has spare disk partitions, but I have not dared to try loading my redundant copy of Windoze 2000. It is rock-solid in Linux, FreeBSD is getting there (I am using 5.2.1 which is not a "stable" version, and have lots of apps loaded, so there is still a bit of tweaking needed, although the GUI etc are solid.)
Just had a thought, did Matrox not do a 4-head AGP card some time ago? Maybe that would do the job also, and leave slots free. I hope we are going to hear more of this sort of thing, on one front we have those who need, or want, performance goimng for multiple CPUs, all the way up to Beowulf clusters, and on the other hand the economy version has several users on one PC. Now whose OS is the scaleable one? Here is the proof!
I figure that buses would be a bottle-neck. PCI is far less than ideal for 3D gaming, and with four cards, the problems get much worse still.
I love C++
This is a standard computer handling several video outputs, keyboards and mice by itself. Just the same as any one person system, but handling multiple persons instead.
and has way more overhead and cost than using old P-I233 computers or dirt cheap x terminals on a network.
I can support 10 users on one machine using Linux Terminal server for 1/4th the cost of their supporting 4 people on one machine.
and I have a overall lower processor load.
It's neat, but nothing more than that right now.
Until the supply of free Pentium I class laptops and desktops dry up or the sources for dirt cheap xterminals dry up, it's nothing more than a expensive wy of doing things.
Do not look at laser with remaining good eye.
Just here to let you know, this 4-user setup defined in this forum's topic is using four nVidia TNT2 graphics accelerators! These are better than GeForce graphics accelerators for driver-related reasons. Way back in the maturation of XFree86, with version 3.3.6, it is possible then and a throughout the 3.x XFree86 branch to configure XFree86Config to "Load """ Utah-GLX's nvidia driver to attain hardware-accelerated openGL. This is a completly different driver approach than DRI's openGL SAL. Utah-GLX provides X Server modules rather than its various competitors providing a /usr/lib/libGL.so.* and any non-standard patch cludged into the X Server. DRI project's openGL acceleration architecture at the moment may also allow mutliple local X Servers, albeit that of the various non-XFree86 such as the capable technology at DirectFB project (which allows accelerated openGL without a X Server; directly using the DRI without an X Server).
Backtracking to Utah-GLX's driver (project page here, this will allow many complex openGL-phile programs to run at the same time given its architecture. I, however, doubt that older XFree86 3.3.6 will scale to this feat; I simply don't know. Yet, the Utah-GLX driver system has been ported to XFree86-4.x; it is a openGL GLX driver package in the form of dynamically loaded X Server modules/extensions and can be manipulated into and without the X Server without having to restart the X Server. It's somwhat parallel to the DRI driver, to provide an alternative, but it is not being maintaned anymore; Utah-GLX is dead and someone needs to commandeer!
I am using three Athlon Thunderbid 700MHz computers with a total 9 nVidia TNT2 adaptors total (three per computer), S-Video composite output to NTSC televisions, and quad-bonded 100BaseTX ZNYX LAN adaptors for verry low-latency threaded shared openGL rendering; I use as Chromium 3D videowalls, by using XFree86 4.3 and Utah-GLX's nVidia openGLX driver.
And yes, Quake3 looks hot!
Has computing gone forwards or backwards when it takes thousands of times the compute power to support fewer users, doing dumber things. We used to run whole research departments developing mathematical modelling, computational physics programmes on a single DEC VAX 11/750 with 8 MB of main memory and like 80 MB of hard disk space. It was so underutilised that astrophysics would rent out time on the darn thing to geophysics and chemistry.
This was on 4.2 BSD, the mother of all open source operating systems. And we had access to supercomputers at Argonne, NCAR, LANL, LBL and Cornell over the ARPAnet. in the freaking early 1980's.
AND we produced beautifully typeset scholarly papers and theses, full of equations using TeX. Try doing that with Office. Hnf.
Personally, I used to use maple to do the algebraic manipulations, and export to either fortran (to run a numerical simulation to get the results that formed my thesis) or to TeX (in order to publish it). Sure as hell can't do that with the stupid Office (open or MS) programmes you need 15 64MB computers to support only 60 users on in this model. Even if you insist on running a pointy-clicky GUI, with X10 we used to run dozens of graphics terminals off of one VAX
This article just proves that the net progress of computing is actually backwards because the computers certainly are getting bigger/faster/better more slowly than the intelligence and creativity of the users -- now they all need a GUI just to edit text and compile programs. To the point that it's a miracle when you can have more than one person using a computer at a time now. Sheesh!
four users, one pc? :|
:D
in my room it's 4 pcs, one user
i'm lucky i guess. IM A FAT PIGGLY WIGGLY NORTH AMERICAN!
*SQUEEELSSS!*
-judging another only defines yourself
I have a multi-user setup at home (I'm using it right now) which is described here... it has 3 heads (video/keyboard/sound/mouse for each). I've found it to be an economical approach that involves far less administrative work than any other multi-user configuration -- separate systems with NFS file shares, X terminals, you name it.
There are several significant challenges involved in setting up a multi-head, multi-user system:
The 'normal' kernel USB setup merges multiple keyboards and mice into a single queue. This makes sense when you're using an external keyboard and mouse with a laptop, but it a pain in MHMU. Patches to the USB system are required.
The 'normal' console/virtual terminal system is not MHMU-aware. This has to be patched with the Backstreet-Ruby patches to work properly.
The 'normal' X server can handle a multi-head configuration, but expects all the heads to be used by one user. The prefbusid patch or similar must be applied to fix this.
Apps that use sound are a nightmare-- it's painful trying to get apps to send their sound to the right speakers. With three of us on the system, I regularly get blasted by sound from Flash websites that my kids are visiting. There is no standard for defining *where* sound should go -- yes, there are soundservers such as esd and artsd, but they are not used by all apps (and try finding current documentations for esd!).
If we made a concerted effort, the MHMU patches could be merged into the main source trees for X.org and the Linux kernel, and the distros could be set up to offer MHMU configurations at installation time.
However, the number of people using MHMU configurations is currently too small to really make a push for the integration of these features into the main source trees and distros.
So if you're using this type of system, or would find it beneficial, then let's work together to make this a mainstream option!
(I think that MHMU would be useful for: tellers in banks; kiosks such as library catalogs; computer labs and learning commons in colleges and universities; and family computing setups).
If you go back some 30-35 years, you find some HUGE mainframe installations, supporting dozens or hundreds of online users simultaneously.
Do a bit more research, and you find that those mainframe installations had processors that ran at clock rates somewhere between 1 and 20 MHz, with typically a few megabytes (equivalent) of RAM, and a few hundred megabytes of hard disk. (And a few tape drives, but the tapes were not really used that much, by comparison.)
As a convenient example, consider the Control Data 6600 supercomputer at UT Austin in 1970. The CPU clock was 10 MHz, and it had just 131,072 words of main core memory, at 60 bits/word (which works out to about 1 Megabyte). It had two disk subsystems, one of which stored 168 million characters, the other storing 241 million characters.
Compare this with a 486/33, with 4 megabytes of RAM, a 200 Mb and a 340 Mb hard drive. 4 times as much RAM, probably comparable CPU throughput (the 6600 CPU was a master of parallel execution: it could be running as many as 10 instructions simultaneously).
The 6600 was heavily time-shared.
Late in the 1970s, things started getting interesting. The magic point was called "3M", which stood for "1 MIP, 1 Megabyte, 1 million pixels", and the price on that was JUST BARELY within reach of an individual.
Now look today. Our LOW END personal computers come with HUNDREDS of megabytes of RAM, hundreds of MIPS, tens or hundreds of gigabytes of disk storage, and several million pixels. (The limit on pixels is what you can get onto a display and refresh at a reasonable rate.)
What limited these guys to "only" four users per PC wasn't processing power or video bandwidth. It was the number of PCI video cards they could physically stuff into a PC motherboard.
They'd handle it with water cooling.
Got time? Spend some of it coding or testing
My very first home computer was a Radio Shack TRS 16B+ in the mid 1980's.
It had a Z80 CPU to handle I/O housekeeping chores and an MC68000 main CPU running XENIX (a flavor of UNIX).
It supported four users at the same time - each at their own terminal - with no additional goodies needed at the 16B+.
Mine did have a full load of memory, a larger hard drive, and a few Hayes modems so the other users could be remote, but the modems hooked right into the existing multiple ports on the machine.
For several years it was a minor mail and news server on the web (named tijil).
In what major way it this "new" thing astonishingly different from what I had 20 years ago on my desktop at home?
Take care,
Tomas
well im running a 1000 megasquirtle doobydoo with a megakilo double widget interface and a pseudo-terrafilter. its got 2 million hexafurtles with a 10 kiloplex wobblywoo and a rechargable virtual combo-backplate monitor. i also fitted an optical finglyfangle with predictive threshold monitoring. its also got a touch sensitive keyboard and a temperature sensitive thermometer.
Built it my self.
------
beware he who would deny you access to information, for in his mind he dreams himself your master
Can you literally run something on a shoe-string budget? What, exactly, can you get in exchange for a shoestring? Or did you mean a budget literally equal to the value of a shoestring?
Drives me nuts every time someone says 'literally' to modify a phrase that it is literally impossible to construe in any way but figuratively.
~Sub
-1 Troll
-1 Flamebait
+1 Linguistic Merit
+1 Crankiness
Well, this would be comparable today to giving a bunch of users accounts and allowing them to use telnet or ssh to get to a shell account. In a setting like that, I bet your average computer today would support hundreds if not thousands of simultaneous users. With X terminals, I bet you could have a bunch of gui interfaces too.
This is a lot different than that - this is about taking an interface that has been designed assuming there is one user in front of it, and hacking it to support multiple users. Multiple keyboards, mice, and displays on one box, don't normally work this way.
Cool? yes... Practical? probably for someone... but in a world where people hack web servers onto commodore 64s and overclock their Sega Genesis, rank this toward the top of the list.
While I am not the young man from whom you demanded an explanation, I can offer you som insight on why I do not use Xinerama for my dual-head setup.
I use a standard (non-Xinerama) dual-head config and a dual-head aware window manager (Openbox 2.x). This setup has but one serious flaw, and that is the inability to move windows between the screens. What it offers over xinerama is that it does not require xinerama-aware applications. Popup notifications never show up in between the monitors, for example. The big thing I dislike with Xinerama is that windows can be split over the two screens. I have never wanted to do this. I much prefer the ability to slide parts of windows out of view.
Another big nuisance with Xinerama is that I have yet to find a Xinerama-aware window manager that I like.
My vision of the perfect multihead desktop (which coincides with my vision of a reasonable X architecture) is pretty much X with something like xmove (which I have yet to get working on XFree86/Linux). The window manager could then be told to throw a window to the other screen when dragged to the edge, just as with virtual desktops. The bonus of using an X proxy, or preferably separating the display and server parts of the X server, is that you can move windows between computers, keep gui apps running on servers when the workstation is turned off, restart your X server (e.g. to upgrade drivers) without losing your apps, and so forth.
...ceterum censeo Carthaginem esse delendam.
While the Linux system might be difficult to maintain, it can be done.
.dotfiles, and it Just Works.
... re-formatting every PC in the office, re-installing c:\winnt32\, removing IE, 'fixing the e-mail system', installing new Virus patches, etc. will now be free time you can apply to actually customizing your -one computer office system- to the task of your business, easily, and maybe learn a few Open Source skills on the side, as well.
...) focused on computerizing his/their business process, paired to a single cheap PC that 4 people can be using at the same time, is good Starter Business Manna ... put a smart business app on a Single PC which is dead-easy to maintain (hint: it just runs), make sure Single PC is cheap, and it works, and you've got a 3rd world economic power-station.
... whereas having everything 'local', on a single system with sufficient power (RAM) to cater to the needs of busy people, is entirely feasible, and cuts out a -lot- of the reasons for most modern PC maintenance ...
Every user gets their own session, their own homedir, their own
Once this is set up, and X is running, its done. No maintenance. Multi-head is actually "X" and Unix at its greatest.
Put OpenOffice.org on there and you've got what you need to run the average office, for whatever business.
All that time you're wasting now, in the "difficult to maintain" department, you know
An Apache/PHP/MySQL-based business app being developed by an enthusiastic software hacker (it could be the whole group, with their own PHP scripts
Think of the rows and rows and rows of low- to middle-class businesses you can see in any average big-city, and now add a small, affordable computing system that -4 people can play with at once- in each box in the row.
Most people buy multiple-PC's for the office just so that they can have access to a 'broader computing system' that they then try to tie together with all kinds of other bone-dead 'systems' like 'shared Access databases' and whatnot, over some network (which requires even more hardware and maintenance)
Its gotta get easier to multi-head PC's. It just does. The single-user hardware paradigm needs to be shifted. Microsoft -need- new licenses from new 'complete system' hardware to propel their buggy OS, whereas Linux only -needs- you to use it.
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
Even if you insist on running a pointy-clicky GUI, with X10 we used to run dozens of graphics terminals off of one VAX
Yes, but the X server was running on the terminals. The X apps running on the VAX only sent X primitives down the wire to the terminals, and the terminal bore the burdon of rendering stuff on the screen and processing kb/mouse input, turning them into events to send down the wire back to the app running on the VAX.
This article is about plugging the monitors/kbs/mices directly into the box with the X primitives processed on that box.
Think about the difference for a while before you reply to this.
You make the mistake of thinking you can educate the fundamental stupidity out of people. You can't.