13 ноября 2024 Linux Linux многопользовательская система


Последнее время, наблюдая развитие компьютеров, заметил насколько много ресурсов доступно обычному компьютеру. Например, мой очередной новый ПК имеет процессор с 22 ядрам и 44 потоками, 128 гигабайт быстрой оперативной памяти, почти с десяток портов для подключения SATA дисков и ещё больше портов ввода вывода в виде USB. То-есть, чисто технически к этому компьютеру можно прицепить 4 набора беспроводных клавиш с мышками, 8 мониторов и 4 кресла. И для офисной работы этого вполне хватит.

типичное офисное рабочее место

Но оказывается, что Linux даже за последнее десятилетие бурного развития так и не осилил многопользовательский режим и в нём до сих пор используется режим виртуальный многопользовательский режим, то-есть пользователи многут подключить по сети к серверу который работает с root правами и для каждого нового пользователя он создаёт виртуальную сессию

Казалось бы что сложного, в настройках загрузчика указать наборы клавиш и мониторов для группировки в сессии терминалов отдельных клиентов, а затем продублировать эти настройки на X сервера. Но нет, нацiсты из команды Linux заняты отписками на добавления новых архитектур и патчей от российских разработчиков, буду  впиливать Rust в ядро и менять master ветку на main, чтобы не оскорбились либеральные квадробоберы.

В интернете нашёл вот такие жалкие оправдания в стиле «640 КБ должно хватить всем» @ Бил Гейц

Идея многопользовательской загрузки с отдельными наборами клавиатуры и мониторов для каждого пользователя на одной машине в Linux кажется привлекательной, однако она сталкивается с рядом технических, аппаратных и пользовательских ограничений. Вот основные причины:
1. Аппаратные ограничения

    Ограничения интерфейсов ввода/вывода: Современные ПК имеют ограниченное количество портов ввода/вывода, таких как USB или HDMI/DisplayPort. Подключение множества мониторов и клавиатур часто требует дополнительных устройств, таких как USB-хабы и мультивыходные видеокарты.
    Ограничения видеокарт: Большинство видеокарт предназначены для работы с одним или несколькими мониторами как единым рабочим пространством. Разделение их на независимые сессии пользователей требует сложной настройки и аппаратной поддержки, которой часто не хватает.

2. Ограничения программного обеспечения

    X11 и Wayland: Исторически Linux использует X11 и (в последние годы) Wayland для управления графикой. Эти системы не были изначально разработаны для полной изоляции видеовыходов и периферийных устройств между пользователями.
    Менеджеры дисплея: Стандартные менеджеры дисплея (GDM, SDDM, LightDM) не поддерживают работу с несколькими параллельными графическими сессиями, привязанными к отдельным мониторам и клавиатурам, в режиме полной изоляции.

3. Конфликты ввода

    В стандартной системе Linux устройства ввода (клавиатуры, мыши) распознаются системой как глобальные. Это означает, что ввод с любой клавиатуры обрабатывается одинаково для всех активных пользователей, что вызывает конфликты.

4. Сложность конфигурации

    Даже если бы аппаратное обеспечение поддерживало независимые устройства, настройка такой многопользовательской среды потребовала бы значительных усилий от администратора системы. Требуются сложные изменения в конфигурации ядра, менеджера сессий и драйверов устройств.

5. Безопасность и производительность

    Безопасность: В многопользовательской системе важно обеспечить, чтобы действия одного пользователя не могли повлиять на работу другого. Это требует значительных изменений в уровне ядра и драйверов для полного изолирования ресурсов.
    Производительность: Одновременная работа нескольких пользователей с высокими графическими и вычислительными требованиями может привести к серьезным задержкам и перегрузке системы.

6. Альтернативы

    Сетевые решения: В большинстве случаев проще и эффективнее использовать терминальные службы, такие как SSH или VNC, где пользователи могут работать на одном сервере с разных клиентских устройств.
    Паравиртуализация и контейнеры: Технологии вроде KVM или Docker позволяют создавать изолированные рабочие среды для каждого пользователя.

7. Низкий спрос

    Потребность в такой функциональности крайне низка. Современные компьютеры относительно дешевы, и для большинства задач проще и удобнее использовать отдельные устройства, чем делить одно физическое оборудование между несколькими пользователями.

Реализация полноценной многопользовательской загрузки с изоляцией устройств ввода/вывода в Linux требует значительных аппаратных и программных изменений. Учитывая низкий спрос и существующие альтернативы, такие как виртуализация и удаленный доступ, развитие этого направления оказалось экономически и технически нецелесообразным.

Получается, что Linux идёт на поводу и производителей железа которым выгодно, что бы за каждое рабочее место платил деньги в корпорацию "добра"