Многопользовательская система

undefined

Многопользовательская система — это особая конфигурация компьютера, позволяющая одновременному использованию несколькими пользователями, каждый из которых работает со своим собственным монитором, клавиатурой, мышью, а при необходимости — и собственной звуковой картой.

Введение

В стандартной конфигурации настольного персонального компьютера — 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.
  • При необходимости — несколько звуковых карт.
  • Подходящая операционная система с поддержкой многопользовательского режима.

Реализация

В настоящее время существует множество способов организации мультитерминальных систем, и появляются новые решения. Единого «лучшего» варианта нет, однако некоторые методы обладают определёнными преимуществами над другими.

GNU/Linux

Компания 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 — Windows 2000, Windows XP, Windows Vista, Windows 7 — существует ряд коммерческих программ для организации многопользовательского режима для двух и более рабочих мест. Среди них: ASTER, BeTwin, SoftXpand.

Хронология коммерческого программного обеспечения для мультитерминальных систем

  • 1996 — ThinSoft/BeTwin
  • 2002 — Userful Corporation
  • 2004 — Open-Sense Solutions (Groovix)[10]
  • 2006 — NComputing
  • 2009 — FriendlySeats
  • 2010 — Windows MultiPoint Server 2010 от Microsoft

Примеры внедрения

Крупнейшая в мире многопользовательская компьютерная система

В феврале 2009 года Министерство образования Бразилии объявило о внедрении более 350 000 рабочих мест на базе Linux более чем в 45 000 школах по стране. Реализацией занимались канадская компания Userful Corporation и её технический партнер ThinNetworks[11].

Проект Paraná Digital

Ряд внедрений мультитерминальных решений реализован в рамках 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].

MAX Madrid Linux и институты инновационных технологий Мадридского сообщества

С начала 2010/2011 учебного года в столичном регионе Мадрида внедряются новые Институты инновационных технологий, где реализуется принцип «один компьютер на ученика» благодаря настольным ПК с 19-дюймовыми мониторами и специфической мебелью для переоснащения традиционного класса в технологичный. Для этого используется система MAX Madrid Linux 6.0, с пакетом для поддержки ZeroClient в многопользовательской схеме.

Для каждой станции реализуется поддержка звука и индивидуального USB благодаря специфичному ZeroClient-оборудованию, создавая эффект полноценного собственного компьютера для каждого учащегося.

Примечания