This Time Self-Hosted
dark mode light mode Search

Dual seat need development

So yesterday I started fiddling with bringing up a dual seat system. It’s not really bad as it is, it’s actually quite interesting to have it working. I’ve also been suggested to try Synergy, which could solve also the need for two keyboards, bringing a similar effect than xinerama even if ran with more than one X instances, and I probably will try it out in the next weeks.

I’ve been thinking a lot about dual seat lately. With today’s CPU power, with multicore systems, and high memory, most users are going to waste CPU power. Beside the users of Vista that need a last-model system just to make the desktop appear, graphic artists, developers and gamers use their CPU power. Most home and office users have a false need for more powerful boxes: browsing the web, writing letters, downloading photos from a camera are all tasks that require very little CPU power and not so much memory.

Think for instance of a family with two kids, both of which want their own computer: why not setting up a single computer with two seats? Then both kids can do what they want with the computer (or almost) with just one more monitor, keyboard and mouse, which is a limited cost compared to a whole new computer. Now of course doing this with Windows is quite… impossible, I suppose, so the kids will have to use Linux, but that’s not the point anyway, right?

Another place where this could certainly be useful is schools. I didn’t know it, but reading the Wikipedia article on Multi-seat, this is actually being used in Paraná. This is quite an interesting fact, especially for people like me who are concerned with the waste of money in the educational system, like I wrote (in Italian) yesterday .

Education is not free, there is a cost tied to that, but education is what can improve society. Better education helps people on the long run, if it’s proper. In Italy for instance I have a lot of reserves over the working state of universities, especially after seeing the mess I actually tried to get into myself.

Computers can improve the quality of education, but they don’t come free; even when they seem to come free as they are provided by a manufacturer, they have a cost behind them. Free Software can cut the cost on software (license-wise), but it can’t cut the cost of hardware up to a certain point (you can avoid the requirement for newer systems that Vista puts on everybody), alone. Multiseat can cut this cost as you can easily have four students working with a single computer. Even in a computer science class like I had in my high school, the power of the computers could easily divided in four without any problem with the users.

Unfortunately multiseat is not yet easy to handle in modern Linux systems. While it’s certainly possible, and thanks to modern hardware like multi-head videocards and USB keyboards and mouse there is no need for strange hardware anymore, the software support for multiseat seems to me quite lacking.

The only way I could get it to work on my system was to use evdev for the keyboards. But latest release of evdev didn’t like me to tell it to use a Device, nor it liked the use of Phys. I had to take the latest GIT version, and that worked, but still required me not to change the order of connection of the keyboards and mice. Also it’s quite an incomplete support what we have now, for instance I can’t get F13 to F19 to work on evdev without using xmodmap.

Input hotplug is a pretty nice need for modern desktops, but it will be pointless or even broken for multi-seat arrangements. I’m afraid of what might happen when Xorg will relay on that.

But even without going into Xorg itself, there is need for better support for multiseat in software, by for instance understanding that even if there is usually just one instance of a software per-user, there might be more than one user on the system logged in at once, and so it makes sense to be able to share as many pages as possible by using properly .rodata and similar.

I think it would be nice if there was a more focused look into this kind of possibilities in the Free Software communities. For instance it would be nice to provide better tools to developers to even test multiseat without having to create one in true hardware. Sun: you bought InnoTek and are now taking care of VirtualBox. Give us a properly-working virtualised environment with two or more video cards, so that developers can actually test their code on multiseat, that might be good for your karma too 🙂

I think I’m already working toward this goal myself, even if I didn’t understand that before. My work toward reducing Copy-on-Write pages will make better use of memory in multiseat environments, and I’ll continue with it for a long time.

I’ve seen there are similar work in progress for improving support to multiple video cards. It’s also a piece of the puzzle. Making better use of disk space is also an important task. Even if the cost of disk space is falling down, employing it in the right way will reduce the cost on education, too.

Don’t ask me how I started being so concerned with education, probably it depends on the fact I see a lot of bad things happening that could be solved even just with a bit more knowledge of how processes work…

Comments 5
  1. Hi,there’s another possibility:Using an thin client setup, where every process runs on the server and X-output is forwarded to the clients.This works really beautifully, because schools often have a lot of old pcs that would be waste, but now can be used as thin clients.We setup such a system in our school using LTSP and it works very well.

  2. Input hotplug might work if you put each “seat” in its own vserver, connect 2 usb hubs to the machine and make only 1 of them visible to each vserver.

  3. And then you’re fucking up the whole concept of dualseat. The idea is to share everything, operating system included, to avoid wasting memory and harddisk resources.vservers can’t share pages (data and code) between processes of the same executable, and they require more harddisk space.

  4. Input hotplug *already* is a feature of Xorg and others servers (e.g., Xephyr). I designed a sw to deal with this beauty under multiseat — using the Xephyr solution, which is the todays most stable one — but it isn’t in a good state to spread to the world. Keep in touch with my blog that I’ll probably announce it soon :)thanks,

  5. Well, Xephyr works as long as you have a main X server running, as far as I can see, wouldn’t work in my case as the monitors can’t all stay under a single X instance at the moment.What I meant about input hotplug was about relaying on it, rather than having it.. as long as it’s an option to not use it, I don’t see any problem with multiseats, but I do see one if we’re all forced to use it…But I’ll surely follow your blog, I’m looking forward for it 🙂 And I’m more trusting that the things with Xorg will continue to work properly now that I know that there is someone actively working on them with multi-seat in mind! 🙂

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.