|
Have you ever thought about the enormous waste of resources that it means, for example in an office, to have several modern machines running just to open basic desktop applications? One solution could be to "recycle" compus and use older machines. Sure, this will surely not be to the liking of many. However, there is a second, lesser-known solution that can keep everyone happy. Yesterday I was thinking about precisely this topic. With the enormous advance of technology, an interesting alternative could be to connect several monitors, mice and keyboards to the same PC, allowing all users to optimally use the resources of that PC and thus generate significant economic savings and a reduction in the carbon footprint. In addition to finding a way to connect everything, the question remains of how to make the operating system work independently for each of the users.
Let's see what Linux can do to help us. |
Introduction
With the growing increase in hardware capacity, both in processors and memories, plus the rapid advancement and development of GNU / Linux systems, increasingly robust and with better resource management, a high number of tasks can be done on a computer. tasks without getting slow. However, when using the standard configuration of a desktop PC, only one user can use the computer at a time, limiting the effectiveness of the system as it remains idle most of the time, it keeps its resources idle.
With the multi-user configuration, several users can share the resources of the same computer, so a greater percentage of its total capacity would be used, thus having a better use of the system.
For example, in the traditional scheme, if someone is just using a web browser or writing a letter in a word processor, or working with a spreadsheet, or with a billing, inventory, or accounting program, the team it is wasted, as a large part of the system's capacity is unused. But with the multi-terminal configuration, other people will be able to use the resources that would otherwise be idle.
However if someone is using all the resources of the machine (with 3-D games or something like that), the other users will have a very slow system.
Another great advantage that comes with the multiterminal is the price: it is not necessary to buy different motherboards, microprocessors, RAM memories, hard drives, cases, voltage regulators, and other components for each user. You only need to buy a good computer. Usually buying a fast microprocessor costs much less than buying several slower ones.
History
In the 1970s, it was very common to connect multiple terminals, and even graphics terminals, to a single central computer (mainframe).
However, the idea of using the more contemporary X11 interface to support multiple users appeared in 1999. It was implemented by a Brazilian named Miguel Freitas, using the Linux operating system and the X11 graphics system (at that time maintained by XFree86). The way Freitas did it was a patch on the X server to run many instances of X at the same time, in such a way that each captured specific mouse and keyboard events and graphical content. This method received the name of the multiseat or multiterminal.
After Freitas, other solutions appeared in 2003, such as those of Svetoslav Slavtchev, Aivils Stoss and James Simmons who worked on the approach to evdev and faketty, modifying the Linux kernel and allowing more than one user to independently use the same machine. At that time, the Linux Console Project also came up with an idea to use multiple independent consoles and then multiple independent keyboards and mice in a project called "Backstreet Ruby." Backstreet Ruby is a Linux kernel patch. It was porting the Ruby kernel tree back to Linux-2.4. The goal of the Linux Console developers was to improve and reorganize the input, console, and framebuffer subsystems in the Linux kernel, so that they could work independently of each other and allow multi-desktop operation. The Backstreet Ruby idea was never finished.
In 2005, the team of C3SL (Center for Scientific Computing and Free Software), of the Federal University of Paraná in Brazil, created the solution based on nested X servers, such as Xnest and Xephyr. With this solution, each nested X server runs on every screen of a host X server (for example Xorg) and a modification to the nested servers allows them to have the uniqueness of each mouse and keyboard set. These solutions were the most used today due to their stability. In 2008, the C3SL group launched the Multiseat Display Manager (MDM) to facilitate the process of installing and configuring a multiseat box. Also in 2008, this group conceived a LiveCD for testing purposes.
Requirements
It is important to have a computer with a good motherboard, a powerful CPU and a good amount of memory (512 MB or more). This will depend on the number of positions that you want to connect.
In order for several users to work on a computer, several monitors, keyboards and mice need to be connected to it. For example, to form a four-station multiterminal (for 4 users), 4 monitors, 4 keyboards and 4 mice are required.
Each monitor needs to be connected to a video output. Some video cards have multiple outputs and support multiple monitors. Additionally, several of these video cards can be installed in the computer, but most modern machines only have a PCIe or AGP slot, so, in general, these cards must be PCI.
Most computers have only one PS / 2 connector for the keyboard and one for the mouse, so connecting multiple keyboards and mice must be done using USB connectors and USB HUBs.
In summary:
- I compute with a motherboard, a powerful CPU, and a good amount of RAM.
- HDD.
- Multiple PCI / AGP / PCI-E video cards.
- Various PS / 2 / USB keyboards.
- Multiple PS / 2 / USB mice.
- Optionally, several sound cards.
- Favorite GNU / Linux distribution.
- Xorg 6.9 or higher.
Benefits
A multi-terminal configuration has significant advantages, including:
- Saving space and costs in computers.
- Savings on software licenses.
- Better use of computing resources.
- Lower energy consumption.
- Lower maintenance cost.
Uses
A multi-user computer can be used in places where several people are working close to each other, such as in computer labs, Internet cafes, office cubicles, customer service departments, etc. Some of these places are:
- Schools.
- Universities
- Offices.
- Internet cafes.
- Libraries.
- Hospitals.
- Households.
Implementación
Currently, there are several ways to make multiterminals, and new ways are constantly being developed. There is no "best version," but some versions are better than others.
GNU / Linux
In Unix-like operating systems, such as GNU / Linux, interaction with the user is carried out by the X Window System. This system is based on the client-server architecture, where the client sends requests to the server and receives events from the input devices (keyboards and mice). X servers have the definition of a resource, such as an input device or a window, which is given to their clients. These resources are associated with a screen, which belongs to a user. Therefore, a GNU / Linux-based multiterminal must provide a screen for each user.
The Xorg server, the latest implementation of the X server, does not support multiple displays. This follows the model of the personal computer, which assumes only one user at a time. Its data entry is implemented on the standard Kernel input, called virtual terminals (VT). These are so named because they simulate the old input methods of the old Mainframes. The VT is fully implemented using software, simulating a TTY, a device that was connected through serial ports. The Linux kernel supports multiple terminals, but they can only receive events from one keyboard at a time. If more than one keyboard is connected to the computer, the events will be sent to the active VT. That removes the possibility of running 2 or more X servers, since they can only activate one server at a time, even if they use different video cards. To solve these problems, several different solutions have been created, listed here in chronological order:
- Multiterminal with ruby (applying a patch to the kernel).
- Multiterminal with evdev (a protocol).
- Multiterminal with faketty (a kernel module).
- Multiterminal with Xnest.
- Multiterminal with Xephyr (an improvement to the previous one).
The most used are the faketty and Xephyr. The Xephyr solution is hardware independent, while the faketty only works with a more restricted set of video cards such as those from NVIDIA and SiS.
If you are interested in implementing the multi-user system using Linux, I highly recommend reading the Xephyr manual, perhaps the best alternative so far. Also, we are fortunate that this manual is entirely in Spanish!
Windows
For Windows 2000, XP, and Vista operating systems, there are several commercial products that allow the implementation of multiseat configurations for two or more workstations. Among these products are ASTER, BeTwin, and SoftXpand.
Success stories
Paraná Digital project
One of the successes of the multiterminals is happening in the Paraná Digital Project, which is creating a laboratory in 2.000 public schools in the state of Paraná, Brazil. More than 1.5 million users will benefit when the project ends, and there will be 40.000 terminals. The labs will have 4-head multiterminals running Debian. The cost of all hardware is 50% less than the normal price, plus there will be no cost for software. This project is developed by the Centro de Computação Científica e Software Livre (C3SL). The project is not finished yet, but the benefits of multiterminals are really great.
Notable facilities
In February 2009, Userful announced the world's largest desktop virtualization deployment, with 356.800 desktops in schools across Brazil. This project is a commercial Linux-based multiseat implementation.
NComputing provided 180.000 positions for primary school students in the Republic of Macedonia.
Source: Wikipedia.