Supporting multiple uswes on a single PC base unit

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Supporting multiple uswes on a single PC base unit

Post by Combuster »

Nor does it always make sense to have multiple driver instances for multiple video cards, when they're linked by SLI and drive the output on just one display.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
cxzuk
Member
Member
Posts: 164
Joined: Mon Dec 21, 2009 6:03 pm

Re: Supporting multiple uswes on a single PC base unit

Post by cxzuk »

Most replies seem to jump from monitor to video driver, and omit the video card?

I would have a drive instance for each video card. I don't know why SLI would make much of a difference to this, The possibility of mixing models and makes of cards with SLI implies you'd still want a driver instance for each card.
User avatar
Owen
Member
Member
Posts: 1700
Joined: Fri Jun 13, 2008 3:21 pm
Location: Cambridge, United Kingdom
Contact:

Re: Supporting multiple uswes on a single PC base unit

Post by Owen »

cxzuk wrote:Most replies seem to jump from monitor to video driver, and omit the video card?

I would have a drive instance for each video card. I don't know why SLI would make much of a difference to this, The possibility of mixing models and makes of cards with SLI implies you'd still want a driver instance for each card.
The mixing of SLI video cards is VERY limited. They are run by the same driver instance.
User avatar
mathematician
Member
Member
Posts: 437
Joined: Fri Dec 15, 2006 5:26 pm
Location: Church Stretton Uk

Re: Supporting multiple users on a single PC base unit

Post by mathematician »

Gigasoft wrote:Except that it doesn't make sense. The OS doesn't even know how many monitor outputs there are, only the video driver knows. Once the video driver "detects" a monitor output, what driver should be loaded and what would be the purpose of such a driver? Should it load more copies of itself? Which one would be responsible for managing VRAM and issuing commands to the card? What would the others be doing?
The operating system would need to identify the logically distinct devices which occur on the PCI, ISA and USB busses. Then it would need to have a way of tying together particular keyboards to particular monitors. Of course, it would have no guarantee that a monitor was actually plugged in to a video card, or that it was switched on. That is just an assumption that it would have to make.

The kernel or boot loader can "know" anything a driver can "know". Probably more. My name isn't Microsoft, so nobody is going to be writing proprietary drivers with hard coded "knowledge" for my system.
The continuous image of a connected set is connected.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Supporting multiple uswes on a single PC base unit

Post by Combuster »

The good thing is that you can't have false positives with connected monitors: if it responds to DDI you know it's connected. if it's not connected, the result is obvious. Several monitors don't respond when unpowered, but finding a monitor these days that doesn't respond at all is rare.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
mathematician
Member
Member
Posts: 437
Joined: Fri Dec 15, 2006 5:26 pm
Location: Church Stretton Uk

Re: Supporting multiple users on a single PC base unit

Post by mathematician »

Brendan wrote: Multiple user, single monitor, single video card (split screen?):

Code: Select all

                                _________      _____      _______
                               |         |    |     |    |       |
   _________      ________     | Virtual |----| GUI |----| App/s |
  |         |    |        |----| Console |    |_____|    |_______|
  | Monitor |----| Video  |    |_________|
  |_________|    | Driver |     _________      _____      _______
                 |________|----|         |    |     |    |       |
                               | Virtual |----| GUI |----| App/s |
                               | Console |    |_____|    |_______|
                               |_________|
Of course more bizarre setups could be possible - e.g. 3 users sharing 4 monitors (with 1.33 monitors each). Mostly; each video card would provide an interface for each (real or virtual) monitor, and you only really need a flexible way to map "monitor interfaces" (and keyboard, mouse, joystick, touchscreen) to virtual consoles.


Cheers,

Brendan
I wouldn't even try to cater for the last one. The line has to be drawn somewhere, unless you have 6 million lines of code to spare.
The continuous image of a connected set is connected.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Supporting multiple uswes on a single PC base unit

Post by Combuster »

The line has to be drawn somewhere,
Horizontally or vertically?

Splitscreen has been used in many games, so it must have some merit, no? :wink:
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
mathematician
Member
Member
Posts: 437
Joined: Fri Dec 15, 2006 5:26 pm
Location: Church Stretton Uk

Re: Supporting multiple uswes on a single PC base unit

Post by mathematician »

Combuster wrote:
The line has to be drawn somewhere,
Horizontally or vertically?

Splitscreen has been used in many games, so it must have some merit, no? :wink:
If I was doing this as a money making project, rather than a hobby, then I would have to think about the market segment I was aiming at. And, if I was really really intent upon making money, trying to dethrone Windows as the world's general purpose (and game playing) operating system, probably would not be the wisest course of action.
The continuous image of a connected set is connected.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: Supporting multiple users on a single PC base unit

Post by Brendan »

Hi,
mathematician wrote:
Brendan wrote:Multiple user, single monitor, single video card (split screen?):
I wouldn't even try to cater for the last one. The line has to be drawn somewhere, unless you have 6 million lines of code to spare.
Realistically; this is likely to be the first "multi-user" variation an OS is able to support; because it can be done on top of a plain framebuffer (before the OS has any native video drivers) and can be tested in emulators.


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
User avatar
chase
Site Admin
Posts: 710
Joined: Wed Oct 20, 2004 10:46 pm
Libera.chat IRC: chase_osdev
Location: Texas
Discord: chase/matt.heimer
Contact:

Re: Supporting multiple uswes on a single PC base unit

Post by chase »

mathematician wrote:I wonder whether anybody has toyed with the idea of writing a multi user OS for the PC. Modern base units ought to be easily capable of supporting at least two users. I am not asking whether there is a demand for such a thing (although it might be cheaper than two complete systems), but just whether it could be done just for the hell of it. Apart from pairing off keyboards with monitors, to form "dumb terminals", I can't see any obvious problems.
All major OSes for the PC are multi-user. Solaris, *BSD, Linux, etc. (I'd say Windows but they crippled the non-enterprise versions). So what I'm talking about is multiple users can SSH in and run commands while you are talking about two or more people sitting at the same PC but think about it, what is the difference? The difference is how input and output are handled. Can we eliminate the difference between local and network input/display (within reason)? Maybe if you abstract the input/output handling to a network protocol (maybe rewrite it eleven times) - we'll give it a name like X11 for giggles. Physically local users would each get their own X server (either one per video card or even nested X servers for split screen action). Remote users could have a very low power device that only handles running an X server (think raspberry PI).

The common term for a multiple physical user configuration is https://en.wikipedia.org/wiki/Multiseat_configuration. You can find docs on how to set it up for most distros - https://help.ubuntu.com/community/MultiseatX
Post Reply