Multiseat configuration

Last updated
A laptop with an HP USB Multiseat adapter, running Linux Laptop with HP T100 Multiseat Adapter.jpg
A laptop with an HP USB Multiseat adapter, running Linux

A multiseat, multi-station or multiterminal system is a single computer which supports multiple independent local users at the same time.

Contents

A multi-seat assembly encompassing four "seats", running Linux. Tetrahead1.jpg
A multi-seat assembly encompassing four "seats", running Linux.
A two-seat system using Windows Multipoint Server. Multipoint Server 2012 dual station.jpg
A two-seat system using Windows Multipoint Server.

A "seat" consists of all hardware devices assigned to a specific workplace at which one user sits at and interacts with the computer. It consists of at least one graphics device (graphics card or just an output (e.g. HDMI/VGA/DisplayPort port) and the attached monitor/video projector) for the output and a keyboard and a mouse for the input. It can also include video cameras, sound cards and more.

Motivation

Since the 1960s computers have been shared between users. Especially in the early days of computing when computers were extremely expensive the usual paradigm was a central mainframe computer connected to numerous terminals. With the advent of personal computing this paradigm has been largely replaced by personal computers (or one computer per user).

Multiseat setups are a return to this multiuser paradigm but based around a PC which supports a number of zero-clients usually consisting of a terminal per user (screen, keyboard, mouse).

In some situations a multiseat setup is more cost-effective because it is not necessary to buy separate motherboards, microprocessors, RAM, hard disks and other components for each user. For example, buying one high speed CPU, usually costs less than buying several slower CPUs.

History

In the 1970s, it was very commonplace to connect multiple computer terminals to a single mainframe computer, even graphical terminals. Early terminals were connected with RS-232 type serial connections, either directly, or through modems. With the advent of Internet Protocol based networking, it became possible for multiple users to log into a host using telnet or – for a graphic environment – an X Window System "server". These systems would retain a physically secure "root console" for system administration and direct access to the host machine.

Support for multiple consoles in a PC running the X interface was implemented in 2001 by Miguel Freitas, using the Linux operating system and the X11 graphical system (at the time maintained by XFree86). [1] This was done using a patch in the display server to execute several instances of X at the same time such that each one captures specific mouse and keyboard events and the graphical content. This method received the name of multiseat or multiterminal.

In 2001, Thinsoft BeTwin offered a multiseat solution for Windows, utilizing multiple graphics cards and peripherals attached to a single host PC. [2]

In 2002 a Canadian company, Userful Corporation, released Userful Multiplier, a multiseat Linux software solution that enables up to 10 users to simultaneously share one computer. [3] Earlier they worked on a kernel-based approach to a multi-station platform computer, but abandoned the idea due to a problem with multiple video card support.

Other solutions appeared in 2003, such Svetoslav Slavtchev, Aivils Stoss and James Simmons worked, with the evdev and Faketty [4] [5] approach modifying the Linux kernel and letting more than one user independently use the same machine. In that time, the Linux Console Project [6] also proposed an idea to use multiple independent consoles and then multiple independent keyboards and mice in a project called "Backstreet Ruby". [7] Backstreet Ruby is a kernel patch for the Linux kernel. It is a back port to Linux-2.4 of the Ruby kernel tree. The aim of the Linux Console developers is to enhance and reorganize the input, the console and the framebuffer subsystems in the Linux kernel, so they can work independent from each other and to allow multi-desktop operation. The Backstreet Ruby idea was never finished.

In 2005, the C3SL team (Center for Scientific Computing and Free Software), [8] from the Federal University of Parana in Brazil, created a solution based on nested display servers, such as Xnest and Xephyr. [9] With this solution, each nested display server runs in each screen of a host display server (e.g. Xorg) and a modification to the nested servers let each one exclusively acquire its mouse and keyboard. In 2008, the C3SL group released the Multiseat Display Manager (MDM) [10] to ease the process of installation and configuration of a multiseat box. This group, also in 2008, conceived a live-CD [11] for test purposes.

In 2007, NComputing entered the market with a Windows-based multiseat product, the X-series [12] or Xtenda system, which uses a PCI add-in card to connect terminal units containing video, keyboard, mouse, and audio jacks, allowing 3 to 6 additional user seats to be added to a PC. [13] The X-series also offered Linux compatibility. [14]

In 2010, Microsoft began offering Windows MultiPoint Server, allowing one machine to host multiple users utilizing separate graphics cards and peripherals.

Automatic multiseat with USB docking stations is a feature of Fedora 17. [15] [16]

Time line, commercial multiseat software evolution

Requirements

Hardware requirements

Each user will require a monitor, keyboard and mouse connected to the host machine. For example, to make a four-head (four users) system would require four monitors, four keyboards, four mice and two dual-output, or one quad-output video card. USB keyboards and mice are typically recommended instead of PS/2 connections, as they can be connected to a USB hub. Additional devices and peripherals such as cameras, flash storage drives, card readers and touch screens could also be assigned to each seat. An alternative to multiple physical video cards and connections is DisplayLink over USB.

Software requirements

Linux

Multiseat on modern Linux systems is provided by systemd-logind [19] and configured through the loginctl command [20] or through ID_SEAT or ID_AUTOSEAT udev variables. [21]

Certain specialized USB hubs, when connected, automatically results in a seat without any configuration required. [22]

Microsoft Windows

For Windows 2000, XP and Vista operating systems, there are several commercial products to implement multiseat configurations for two or more seats.

An operating system designed specifically for multiseat setups entitled Windows MultiPoint Server was announced on February 24, 2010. It uses Remote Desktop (Terminal Services) technologies in Windows Server 2008 R2 to provide multiseat functionality. This functionality was incorporated into Windows Server proper as of Windows Server 2016 in a new server role entitled MultiPoint Services, but this server role was removed in Windows Server 2019 owing to Microsoft ceasing development of the service in 2018.

Virtualization-based setup

Instead of relying on operating system support for multiseat configuration, a hypervisor can be configured to run multiple virtual machines, each configured to interface one connected seat by I/O virtualization methods. Input devices can be attached to the virtual machines through USB Redirection, and entire GPUs can be attached through Intel VT-d.

The virtualization-based 2-seat [23] and 7-seat [24] systems with Unraid as the host operating system has been demonstrated. Each seat has exclusive control of one of the Windows guest operating systems running on the host. There is a dedicated high-end graphics card for each guest, which it takes full advantage of via the use of VT-d, making the system capable of hosting demanding video game sessions at full quality simultaneously on all seats.

Case studies

World's largest multiseat computer deployment

In February, 2009, The Brazil Ministry of Education committed to deploy 350,000 Linux-based multiseat computing stations in more than 45,000 rural and urban schools across the country. The chosen companies to implement this project were the Canadian multiseat Linux software company Userful Corporation, and its Brazilian IT partner ThinNetworks. [25]

Paraná Digital project

One of multiterminal's successful cases is happening at Paraná Digital project. It is creating multiterminal laboratories on 2000 public schools of the state of Paraná (Brazil). More than 1.5 million users will benefit from the 40,000 terminals when the project is finished. The laboratories have four-head multiterminals running Debian. The cost of all the hardware is 50% less than the normal price, and there is absolutely no cost with software. This project developer is C3SL (Center for Scientific Computing and Free Software).

Michigan State University research in Tanzania

Since 2008, electrical and computer engineering students from Michigan State University have installed multiterminal systems with internet access in three schools in Mto wa Mbu, Tanzania. The purpose of the project is to study the impact of having computer systems with internet access in an education system that cannot afford other educational resources such as books. The computer systems run Ubuntu 8.04 32-bit and utilize the open source Multiseat Display Manager created by C3SL. The research will eventually be used to present to government officials of third world countries in effort to showcase the positive impact of having cost-effective computing systems in schools. The project is sponsored by George and Vickie Rock and the Dow Chemical Company. [26] [27] [28]

Notable installations

See also

Related Research Articles

<span class="mw-page-title-main">Thin client</span> Non-powerful computer optimized for remote server access

In computer networking, a thin client is a simple (low-performance) computer that has been optimized for establishing a remote connection with a server-based computing environment. They are sometimes known as network computers, or in their simplest form as zero clients. The server does most of the work, which can include launching software programs, performing calculations, and storing data. This contrasts with a rich client or a conventional personal computer; the former is also intended for working in a client–server model but has significant local processing power, while the latter aims to perform its function mostly locally.

<span class="mw-page-title-main">X Window System</span> Windowing system for bitmap displays on UNIX-like systems

The X Window System is a windowing system for bitmap displays, common on Unix-like operating systems.

<span class="mw-page-title-main">Terminal emulator</span> Program that emulates a video terminal

A terminal emulator, or terminal application, is a computer program that emulates a video terminal within some other display architecture. Though typically synonymous with a shell or text terminal, the term terminal covers all remote terminals, including graphical interfaces. A terminal emulator inside a graphical user interface is often called a terminal window.

<span class="mw-page-title-main">Windowing system</span> Software that manages separately different parts of display screens

In computing, a windowing system is a software suite that manages separately different parts of display screens. It is a type of graphical user interface (GUI) which implements the WIMP paradigm for a user interface.

freedesktop.org (fd.o), formerly X Desktop Group (XDG), is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operating systems. Although freedesktop.org produces specifications for interoperability, it is not a formal standards body.

Fast user switching is a feature of a multi-user operating system which allows users to switch between user accounts without quitting applications and logging out.

X.Org Server is the free and open-source implementation of the X Window System (X11) display server stewarded by the X.Org Foundation.

Linux Terminal Server Project (LTSP) is a free and open-source terminal server for Linux that allows many people to simultaneously use the same computer. Applications run on the server with a terminal known as a thin client handling input and output. Generally, terminals are low-powered, lack a hard disk and are quieter and more reliable than desktop computers because they do not have any moving parts.

NX technology, commonly known as NX or NoMachine, is a remote access and remote control computer software, allowing remote desktop access and maintenance of computers. It is developed by the Luxembourg-based company NoMachine S.à r.l.. NoMachine is proprietary software and is free-of-charge for non-commercial use.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

QEMU is a free and open-source emulator. It emulates a computer's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can interoperate with Kernel-based Virtual Machine (KVM) to run virtual machines at near-native speed. QEMU can also do emulation for user-level processes, allowing applications compiled for one architecture to run on another.

<span class="mw-page-title-main">Terminal server</span> Device that interfaces serial hosts to a network

A terminal server connects devices with a serial port to a local area network (LAN). Products marketed as terminal servers can be very simple devices that do not offer any security functionality, such as data encryption and user authentication. The primary application scenario is to enable serial devices to access network server applications, or vice versa, where security of the data on the LAN is not generally an issue. There are also many terminal servers on the market that have highly advanced security functionality to ensure that only qualified personnel can access various servers and that any data that is transmitted across the LAN, or over the Internet, is encrypted. Usually, companies that need a terminal server with these advanced functions want to remotely control, monitor, diagnose and troubleshoot equipment over a telecommunications network.

<span class="mw-page-title-main">Virtual console</span> Computer user interface

A virtual console (VC) – also known as a virtual terminal (VT) – is a conceptual combination of the keyboard and display for a computer user interface. It is a feature of some Unix-like operating systems such as Linux, BSD, illumos, UnixWare, and macOS in which the system console of the computer can be used to switch between multiple virtual consoles to access unrelated user interfaces. Virtual consoles date back at least to Xenix and Concurrent CP/M in the 1980s.

General Graphics Interface (GGI) was a project that aimed to develop a reliable, stable and fast computer graphics system that works everywhere. The intent was to allow for any program using GGI to run on any computing platform supported by it, requiring at most a recompilation. GGI is free and open-source software, subject to the requirements of the MIT License.

The following is a timeline of virtualization development. In computing, virtualization is the use of a computer to simulate another computer. Through virtualization, a host simulates a guest by exposing virtual hardware devices, which may be done through software or by allowing access to a physical device connected to the machine.

Remote Desktop Services (RDS), known as Terminal Services in Windows Server 2008 and earlier, is one of the components of Microsoft Windows that allow a user to initiate and control an interactive session on a remote computer or virtual machine over a network connection. RDS was first released in 1998 as Terminal Server in Windows NT 4.0 Terminal Server Edition, a stand-alone edition of Windows NT 4.0 Server that allowed users to log in remotely. Starting with Windows 2000, it was integrated under the name of Terminal Services as an optional component in the server editions of the Windows NT family of operating systems, receiving updates and improvements with each version of Windows. Terminal Services were then renamed to Remote Desktop Services with Windows Server 2008 R2 in 2009.

<span class="mw-page-title-main">Windows MultiPoint Server</span> Operating system based Microsoft Windows Server using Remote Desktop Services technology

Windows MultiPoint Server is an operating system based on Microsoft Windows Server using Remote Desktop Services technology to host multiple simultaneous independent computing stations or terminals connected to a single computer. Windows MultiPoint Server 2012 was the final release as an independent SKU and has been superseded by the MultiPoint Services role in Windows Server 2016.

<span class="mw-page-title-main">Linux console</span> Console of the Linux kernel

The Linux console is a system console internal to the Linux kernel. A system console is the device which receives all kernel messages and warnings and which allows logins in single user mode. The Linux console provides a way for the kernel and other processes to send text output to the user, and to receive text input from the user. The user typically enters text with a computer keyboard and reads the output text on a computer monitor. The Linux kernel supports virtual consoles – consoles that are logically separate, but which access the same physical keyboard and display. The Linux console are implemented by the VT subsystem of the Linux kernel, and do not rely on any user space software. This is in contrast to a terminal emulator, which is a user space process that emulates a terminal, and is typically used in a graphical display environment.

MultiSeat Desktop Virtualization is a method by which a common desktop PC, with extra keyboards, mice, and video screens directly attached to it, can be used to install, load, and concurrently run multiple operating systems. These operating systems can be the same across all "seats" or they can be different. It is similar to server based computing only in the fact that one mainframe is supporting multiple users. On the other hand, it is different because the "terminals" are composed of nothing more than the regular keyboard, monitor and mouse, and these devices are plugged directly into the PC. USB hubs can be used for cable management of the keyboards and mice, and extra video cards may need to be installed.

kmscon Userspace virtual console for Linux operating system

Kmscon is a virtual console that runs in userspace which David Hermann created to replace the Linux console, a terminal built into the Linux kernel. Kmscon uses the KMS driver for its output, it is multiseat-capable, and supports internationalized keyboard input and UTF-8 terminal output. The input support is implemented using X keyboard extension (XKB). Development of Kmscon stopped in March 2015. There was a successor project called systemd-consoled, but this project was also later dropped in July 2015.

<span class="mw-page-title-main">Qubes OS</span> Security-focused Linux-based operating system

Qubes OS is a security-focused desktop operating system that aims to provide security through isolation. Isolation is provided through the use of virtualization technology. This allows the segmentation of applications into secure virtual machines called qubes. Virtualization services in Qubes OS are provided by the Xen hypervisor.

References

  1. Multiuser PUC-RIO - Pontifícia Universidade Católica do Rio de Janeiro
  2. ThinSoft Annual Report (PDF). 2001. p. 11.
  3. eChannel Line - Userful Upgrades Multi-Seat Linux Desktop Virtualization Solution
  4. Faketty LTN - SigmaNet klientu mājas lapas Archived 2009-05-11 at the Wayback Machine (in Latvian)
  5. XFree Local Multi-User HOWTO
  6. Linux Console
  7. LTN - LATNET klientu mâjas lapas Archived 2012-02-20 at the Wayback Machine (in Latvian)
  8. Universidade Federal do Paraná Archived 2006-11-05 at the Wayback Machine
  9. Multiterminal com Xephyr Archived 2009-02-03 at the Wayback Machine
  10. MDM Universidade Federal do Paraná Archived 2008-12-02 at the Wayback Machine (in Portuguese)
  11. Multiterminal live-cd from C3SL/UFPR for tests Archived 2009-02-03 at the Wayback Machine
  12. Inc, Ziff Davis (2007-11-06). PC Mag. Ziff Davis, Inc.{{cite book}}: |last= has generic name (help)
  13. Abate, Tom (2007-07-08). "A lesson in technology sharing / Many PCs can use one microprocessor, helping schools reduce computer costs". SFGATE. Retrieved 2021-09-14.
  14. Dawson, Christopher. "NComputing X350 = classroom labs in a snap". ZDNet. Retrieved 2021-09-14.
  15. ConsoleKit Removal / Automatic Multi-Seat Support
  16. "The Most Awesome, Least-Advertised Fedora 17 Feature".
  17. "Open-sense Solutions" . Retrieved Nov 6, 2010.
  18. "BoXedVDI". LISTEQ. Retrieved 2014-03-25.
  19. "systemd-logind.service(8)". freedesktop.org . systemd . Retrieved 5 March 2022.
  20. "loginctl(1), Seat Commands". freedesktop.org . systemd . Retrieved 5 March 2022.
  21. "sd-login(3), udev Rules". freedesktop.org . systemd . Retrieved 5 March 2022.
  22. "src/login/71-seat.rules.in". GitHub . systemd . Retrieved 5 March 2022.
  23. Linus Tech Tips (2015-10-19), 2 Gaming Rigs, 1 Tower - Virtualized Gaming Build Log, archived from the original on 2021-12-14, retrieved 2019-04-27
  24. Linus Tech Tips (2016-01-02), 7 Gamers, 1 CPU - Ultimate Virtualized Gaming Build Log, archived from the original on 2021-12-14, retrieved 2019-04-27
  25. "Backbone Magazine - Green Teach: Canadian virtualization technology for students in Brazil". Backbonemag.com. Archived from the original on 2014-02-21. Retrieved 2014-02-17.
  26. "ECE 480 Team 3 - Project Overview". msu.edu. Retrieved Jun 16, 2010.
  27. "ECE 480 Team 4 - Project Overview". msu.edu. Retrieved Jun 16, 2010.
  28. "Michigan State University College of Engineering Study Abroad ICT Development in Tanzania". msu.edu. Retrieved Jul 19, 2010.
  29. "Userful and ThinNetworks today announce that they have been selected to supply 356,800 virtualized desktops to schools in all of Brazil's 5,560 municipalities". Userful.com. Retrieved Feb 17, 2008.
  30. "All Macedonian students to use Linux desktops". Archived from the original on 2008-12-20. Retrieved 2009-05-24.