Многопользовательская система
Многопользовательская система — это особая конфигурация компьютера, позволяющая одновременному использованию несколькими пользователями, каждый из которых работает со своим собственным монитором, клавиатурой, мышью, а при необходимости — и собственной звуковой картой.
Введение
В стандартной конфигурации настольного персонального компьютера — 1 процессор, 1 монитор, 1 клавиатура, 1 мышь, только один пользователь может работать с ПК целиком, что делает использование системы малоэффективным — большую часть времени ресурсы остаются неиспользованными. В многопользовательской конфигурации несколько пользователей могут одновременно работать с одним центральным процессором, тем самым эффективней используя вычислительные ресурсы системы.
Возможность такой работы обусловлена постоянно растущей производительностью аппаратного обеспечения — как процессоров, так и оперативной памяти — а также оптимизацией использования ресурсов на уровне операционных систем, что особенно актуально для многопользовательских систем семейства GNU/Linux.
Например, если пользователь ограничивается работой только с веб-браузером, набирает текст в текстовом процессоре, работает с электронной таблицей либо с бухгалтерской, складской или иной деловой программой — большая часть вычислительной мощности остаётся невостребованной. В многопользовательском режиме услуги разделяются между несколькими людьми, каждый из которых использует те ресурсы, которые в классической схеме бы простаивали.
Одним из основных преимуществ мультитерминальной архитектуры является стоимость: нет необходимости приобретать отдельные материнские платы, процессоры, оперативную память, жёсткие диски, корпуса, стабилизаторы напряжения и прочие комплектующие для каждого пользователя. Достаточно одного достаточно мощного центрального процессора и соответствующего набора «монитор-клавиатура-мышь», ведь быстрая современная машина обычно стоит гораздо дешевле, чем несколько более медленных.
К числу недостатков относится возможность перегрузки: если один из пользователей или процессов активно загружает систему (например, требования 3D-игр или ресурсоёмких вычислений), у других пользователей могут возникнуть задержки и снижение производительности. Решить эту проблему можно подбором адекватной конфигурации и оптимальным управлением ресурсами со стороны операционной системы.
История
В 1970-х годах было широко распространено подключение многочисленных терминалов, в том числе графических, к одному центральному компьютеру, что позволяло работать в режиме разделения времени.
Современное многопользовательское использование графической среды X11 впервые было реализовано в 1999 году бразильским инженером Мигелом Фрейтасом на базе GNU/Linux и X11, тогда под поддержкой XFree86[1]. Фрейтас создал патч к X-серверу, позволивший запускать несколько инстанций X одновременно и фиксировать события мыши и клавиатуры по отдельным устройствам для каждого пользователя. Этот принцип и получил название многопользовательской системы.
В дальнейшем, в 2003 году появилось ещё несколько решений, включавших подходы через evdev и faketty[2].[3] Это требовало изменения ядра Linux и позволяло независимую работу нескольких пользователей на одной машине. Проект Linux Console Project[4] предложил идею независимых консолей, клавиатур и мышей, реализованную в виде патча "Backstreet Ruby"[5]. Этот патч переносил дерево ядра Ruby на Linux 2.4, цель заключалась в обеспечении полноценной независимости ввода, консоли и фреймбуфера для одновременной работы нескольких пользователей, однако проект не был завершён.
В 2005 году команда C3SL — Научный центр вычислительной техники и свободного ПО при Федеральном университете Параны, создала решение на основе вложенных X-серверов, таких как Xnest и Xephyr[6]. При этом для каждой станции создавался вложенный сервер X с эксклюзивным набором клавиатуры и мыши, а на хост-машине запускался основной сервер X, например, Xorg. Такая модель стала самой распространённой из-за стабильности. В 2008 году группа C3SL выпустила Multiseat Display Manager (MDM)[7] для облегчения установки и настройки многопользовательской системы, а также подготовила LiveCD[8] для тестирования.
Преимущества и недостатки
Среди преимуществ мультитерминальных конфигураций выделяют:
- Экономия пространства (один компьютер на несколько пользователей).
- Снижение затрат на оборудование и электроэнергию (до 80 %).
- Сокращение расходов на лицензии для программного обеспечения.
- Более эффективное использование вычислительных ресурсов.
- Меньше расходов на обслуживание.
Недостатки:
- Более высокие требования к аппаратному обеспечению.
- Возможный дискомфорт в рабочей среде.
- При поломке ПК всё рабочее место становится недоступным для всех пользователей.
Применение
Многопользовательские компьютеры применяются там, где несколько человек работают рядом: в компьютерных классах, интернет-кафе, офисных «кубиках», сервисных отделах и т. п. Типовые области:
- Школы.
- Университеты.
- Офисы.
- Интернет-кафе.
- Библиотеки.
- Больницы.
- Домашнее использование.
Требования
Нужно подобрать компьютер с производительной материнской платой, мощным процессором и достаточным объёмом памяти (64 ГБ и более — в зависимости от количества рабочих мест).
Для каждого пользователя требуется отдельный монитор, клавиатура и мышь. Например, чтобы создать четырёхместную систему, нужны четыре монитора, четыре клавиатуры и четыре мыши.
Для подключения нескольких мониторов — используются видеокарты с несколькими выходами, либо устанавливаются дополнительные видеокарты PCIe. Для подключения клавиатур и мышей — используются USB и USB-хабы, поскольку подавляющее большинство компьютеров имеет всего один разъём PS/2 для каждого из устройств.
Итак, кратко:
- Компьютер с производительной материнской платой, мощным процессором и большим объёмом памяти.
- Жёсткий диск.
- Несколько видеокарт PCI/AGP/PCIe.
- Несколько клавиатур PS/2 или USB.
- Несколько мышей PS/2 или USB.
- При необходимости — несколько звуковых карт.
- Подходящая операционная система с поддержкой многопользовательского режима.
Реализация
В настоящее время существует множество способов организации мультитерминальных систем, и появляются новые решения. Единого «лучшего» варианта нет, однако некоторые методы обладают определёнными преимуществами над другими.
Компания Userful Corporation разработала комплекс Userful MultiSeat Linux, позволяющий до десяти пользователям одновременно работать на одном компьютере. Решение поддерживает большинство видеокарт и USB-мультиустройств, совместимо с Edubuntu и другими дистрибутивами GNU/Linux, а также содержит свободные образовательные приложения[9].
В системах на базе UNIX-подобных операционных систем, как GNU/Linux, взаимодействие пользователя обеспечивается через X Window System. Эта архитектура построена по принципу клиент-сервер, где клиент запрашивает отображение графики, а сервер получает сигналы от устройств ввода-вывода — клавиатуры и мыши. Сервер X характеризует ресурсы индивидуально для каждой сессии — каждая из которых принадлежит отдельному пользователю. Посему система должна предоставлять отдельный экран для каждого пользователя.
Наиболее современная реализация X-сервера — Xorg — не поддерживает непосредственно одновременную работу нескольких экранов под разными пользовательскими сессиями на одном компьютере. Ввод с клавиатуры реализуется через виртуальные консоли — virtual terminal, VT, которые наследуют принципы мэйнфреймов и реализуются программно в виде симуляции телетайпа (TTY) через serial port. Ядро Linux поддерживает несколько виртуальных консолей, однако только одна из них может принимать события с клавиатуры в каждый момент. Если подключено больше одной клавиатуры, события будут перенаправлены активной консоли, что ограничивает возможность одновременной работы независимых серверов X даже при наличии нескольких видеокарт.
Для решения этой проблемы были предложены следующие методы (в хронологическом порядке):
- Мультитерминальная система с ruby (патч ядра).
- Мультитерминальная система с evdev (протокол).
- Мультитерминальная система с faketty (модуль ядра).
- Мультитерминальная система с Xnest.
- Мультитерминальная система с Xephyr (усовершенствование предыдущего).
На практике чаще всего применяются faketty и Xephyr. Решение Xephyr не зависит от аппаратной платформы, а faketty совместим только с рядом видеочипов, прежде всего NVIDIA и SiS.
Также возможна реализация на базе ZeroClient-терминалов в дистрибутиве MAX Madrid Linux 6.0 Multiseat, где используются пакеты max-multiseat и max-multiseat-storage для простой настройки мультисистем на совместимых ZeroClient.
Для операционных систем Windows — Windows 2000, Windows XP, Windows Vista, Windows 7 — существует ряд коммерческих программ для организации многопользовательского режима для двух и более рабочих мест. Среди них: ASTER, BeTwin, SoftXpand.
Примеры внедрения
В феврале 2009 года Министерство образования Бразилии объявило о внедрении более 350 000 рабочих мест на базе Linux более чем в 45 000 школах по стране. Реализацией занимались канадская компания Userful Corporation и её технический партнер ThinNetworks[11].
Ряд внедрений мультитерминальных решений реализован в рамках Paraná Digital Project, где создаётся лабораторная инфраструктура на 2000 государственных школ. Проект рассчитан на более 1,5 млн. пользователей и включает 40 000 терминалов. Компьютерные классы оснащаются четырёхголовыми мультитерминалами под Debian. Расходы на оборудование оказались вполовину меньше традиционных, программное обеспечение — бесплатное. Разработчиком выступает Центр вычислительных исследований и свободного ПО (C3SL). Проект находится в процессе реализации, преимуществами мультитерминальных систем уже пользуются многие учреждения.
С 2008 года студенты факультетов электротехники и вычислительной техники Университет штата Мичиган внедряют мультитерминальные системы с доступом в Интернет в школах Mto wa Mbu, Танзания. Цель — изучить влияние компьютерных систем с выходом в Интернет в образовательных организациях с ограниченными технологическими ресурсами, например, без книг. Компьютеры работают под управлением Ubuntu 8.04 (32-бит) с использованием Multiseat Display Manager с открытым исходным кодом, созданного C3SL. Исследование может быть использовано для демонстрации влияния недорогих компьютерных решений на обучение в странах третьего мира. Проект поддерживается Джорджем и Вики Роками, а также компанией Dow Chemical Company[12][13].
- В феврале 2009 года Userful объявила о крупнейшем в мире внедрении виртуализации рабочих столов — 356 800 рабочих мест в бразильских школах. Этот проект коммерчески реализован на Linux[14].
- NComputing предоставила 180 000 рабочих мест для учащихся начальных школ Северной Македонии[15].
С начала 2010/2011 учебного года в столичном регионе Мадрида внедряются новые Институты инновационных технологий, где реализуется принцип «один компьютер на ученика» благодаря настольным ПК с 19-дюймовыми мониторами и специфической мебелью для переоснащения традиционного класса в технологичный. Для этого используется система MAX Madrid Linux 6.0, с пакетом для поддержки ZeroClient в многопользовательской схеме.
Для каждой станции реализуется поддержка звука и индивидуального USB благодаря специфичному ZeroClient-оборудованию, создавая эффект полноценного собственного компьютера для каждого учащегося.
Примечания
Ссылки
- Multiseat X Under X11R6.9/7.0 (блог Криса Тайлера)
- Dual-seat X при использовании одной двухголовой видеокарты (Xephyr и решения Xgl)
- Четыре способа сборки мультитерминальной системы
- Шестиголовая/шестиместная система на Linux
- openUserful
- MAX Madrid Linux, версия 6 Multiseat
- Несколько локальных пользователей XFree под Linux
- Инструкции по dual-head для Linux
- Трёхпользовательская система под Linux