Гид по технологиям

Как запускать несколько рабочих окружений Linux одновременно с помощью X

6 min read Linux Обновлено 04 Dec 2025
Несколько рабочих окружений Linux на одном ПК
Несколько рабочих окружений Linux на одном ПК

Введение

Одна из сильных сторон Linux — гибкость. Даже если вы активно используете систему долгое время, X Window System (коротко «X») всё ещё хранит полезные трюки. Одна из таких возможностей — запуск нескольких полных рабочих окружений одновременно без виртуализации: каждое окружение живёт на своём дисплее X, и вы переключаетесь между ними через виртуальные терминалы.

Кратко: когда вы видите графику в Linux — за этим, скорее всего, стоит X.org. Он управляет выводом на экран и запуском клиентских приложений графической подсистемы.

Ключевая идея

  • Виртуальные терминалы (virtual terminals) — это консоли, доступные по Alt+Ctrl+F1…F6.
  • Дисплеи X начинаются с F7 и дальше: F7 обычно — первый графический дисплей (:0), F8 — второй (:1) и т.д.
  • Каждый дисплей X может запускать свою сессию рабочего стола и набор программ независимо от другого.

Это значит, что без выхода из сессии, перезапуска приложений или запуска виртуальной машины вы можете иметь, например, одновременно Gnome и Window Maker и быстро переключаться между ними.

Виртуальные терминалы: быстрое объяснение

  • Alt+Ctrl+F1…F6 — виртуальные текстовые терминалы. Каждая функция запускает отдельную консоль.
  • Alt+Ctrl+F7 и выше — дисплеи X. Обычно Alt+Ctrl+F7 возвращает вас в основную графическую сессию (:0).

Если хотите проверить прямо сейчас: нажмите Alt+Ctrl+F1 — вы попадёте в полноэкранную консоль. Вернуться к графике можно по Alt+Ctrl+F7.

Подготовка: что нужно установить

Установите желаемое рабочее окружение или менеджер окон. В примерах ниже используется Window Maker как лёгкий заменитель полноценных DE. Для Ubuntu это можно сделать через пакетный менеджер:

sudo apt update
sudo apt install wmaker

(Используйте пакетный менеджер вашей дистрибуции: apt, dnf, pacman и т.д.)

Создание или изменение ~/.xinitrc

Когда X запускается из командной строки, он читает файл ~/.xinitrc в домашнем каталоге, чтобы понять, какой процесс запустить в графической сессии. Создайте или откройте этот файл и добавьте в него исполнительную строку вашего окружения. Например для Window Maker:

exec wmaker

Сохраните файл и закройте редактор. Теперь этот xinitrc определит, что будет запускаться при старте X на том дисплее, где вы вызываете startx.

Запуск второго рабочего окружения

Откройте терминал и выполните:

startx -- :1

Эта команда запустит новый экземпляр X на дисплее :1 (обычно отображается на Alt+Ctrl+F8). После запуска вы увидите ваше второе рабочее окружение. Чтобы вернуться в основную графическую сессию, используйте Alt+Ctrl+F7; чтобы снова перейти на второй дисплей — Alt+Ctrl+F8.

Повторите с :2, :3 и т.д., если захотите добавить дополнительные окружения. Просто увеличьте число в startx – :N.

Скриншоты

Alt + Ctrl + F7 = Gnome desktop

Gnome в основной сессии

Alt + Ctrl + F8 = Window Maker desktop

Window Maker с базовой компоновкой окон и панелью

Устранение неполадок

Ниже — частые ошибки и способы их решения.

X: user not authorized to run the X server, aborting.

Это проблема конфигурации X. Откройте файл /etc/X11/Xwrapper.config от root и измените параметр allowed_users:

sudo gedit /etc/X11/Xwrapper.config

Найдите строку

allowed_users=console

и замените на

allowed_users=anybody

Замена даёт возможность запускать X пользователю, не привязанному к текущей консоли. Учтите, что это меняет модель прав запуска X и может повлиять на безопасность в специфических окружениях — если вы администрируете сервер с несколькими пользователями, оцените последствия.

X: client 1 rejected from local host

Обычно легко исправляется удалением файлов .Xauthority в домашнем каталоге:

rm ~/.Xauthority*

После удаления попробуйте повторно запустить startx. Система пересоздаст нужные файлы авторизации.

Ошибки запуска окружения

  • Проверьте лог X в ~/.local/share/xorg/ или /var/log/Xorg.*.log.
  • Убедитесь, что команда в ~/.xinitrc корректна и исполняема.
  • Для диагностики запускайте startx без – :N, чтобы увидеть сообщения в консоли.

Альтернативные подходы и когда этот метод не подходит

  1. Виртуальные машины (VirtualBox, KVM): подойдут, если нужно изолировать окружения целиком, включая разные ядра/дистрибутивы. Минус — накладные расходы по ресурсам.
  2. Контейнеры (Docker с графикой через X11/Wayland): дают лёгкую изоляцию приложений, но сложнее настроить полноценную десктоп-сессию.
  3. Вложенный X (Xephyr): полезно для тестирования окружений в окне на текущем рабочем столе, без переключения VT.

Когда не стоит использовать несколько дисплеев X:

  • Если вам нужна строгая изоляция безопасности между сессиями.
  • На системах с ограниченными аппаратными ресурсами (много одновременно работающих сессий нагрузит память/CPU).

Мини-методика: быстрый план для добавления третьего рабочего окружения

  1. Установите желаемый менеджер окон/DE.
  2. Создайте ~/.xinitrc для этого окружения (exec <команда>). Можно хранить несколько xinitrc-скриптов и вызывать их через wrapper.
  3. Запустите startx – :2.
  4. Переключайтесь Alt+Ctrl+F9 (или соответствующая FN-клавиша).
  5. Проверяйте логи при ошибках.

Ролевые чек-листы

Пользователь

  • Установить пакет окружения.
  • Создать ~/.xinitrc с exec .
  • Запустить startx – :N.
  • Переключаться сочетаниями клавиш.

Системный администратор

  • Проверить /etc/X11/Xwrapper.config и политику allowed_users.
  • Настроить права доступа к устройствам /dev/tty и /dev/dri при необходимости.
  • Мониторить использование ресурсов (RAM/CPU/GPU).

Критерии приёмки

  • Второй X-дисплей стартует без ошибок.
  • Можно переключаться между дисплеями комбинациями Alt+Ctrl+Fx.
  • Приложения в одной сессии продолжают работать при переключении на другую.
  • Логи не содержат критических ошибок графического драйвера.

Пример сценариев тестирования

  • Запустить startx – :1 и открыть 3 приложения. Переключиться на :0 и убедиться, что приложения :0 продолжают работать.
  • Перезапустить графическую сессию :1 и проверить, что :0 не закрылась.
  • Удалить ~/.Xauthority и попробовать снова: система должна создать новый файл и авторизация должна пройти.

Безопасность и последствия

Запуск X от имени любого пользователя (allowed_users=anybody) упрощает работу, но расширяет круг пользователей, которые смогут запускать X локально. На многопользовательских системах это может повысить риск случайного или преднамеренного доступа к графическим ресурсам. Рекомендуется оценить окружение и, при необходимости, применять дополнительные политики контроля доступа.

Полезные подсказки и эвристики

  • Если вы планируете часто переключаться между окружениями, настройте удобные сочетания клавиш в каждом DE для быстрого доступа к терминалу и отключения звука.
  • Для тестирования новых DE используйте Xephyr, чтобы не менять текущую конфигурацию.
  • Держите отдельный файл ~/.xinitrc- для каждого окружения и создайте wrapper-скрипт, который копирует нужный файл в ~/.xinitrc перед запуском startx.

Короткий глоссарий

  • X: X Window System, сервер графики для Unix-подобных ОС.
  • Дисплей/дисплейный номер: идентификатор X-сессии (:0, :1 и т.д.).
  • Виртуальный терминал: текстовая консоль, доступная через Alt+Ctrl+Fx.

Заключение

Запуск нескольких рабочих окружений одновременно через X — простой и мощный инструмент в арсенале пользователя Linux. Это экономит время и ресурсы по сравнению с виртуальными машинами и помогает быстро переключаться между разными рабочими стилями. Подход остаётся пригодным для развития навыков администрирования и тестирования графических окружений без сложных настроек.

Важно: оцените требования безопасности и ресурсы системы перед разворачиванием множества параллельных сессий.

Краткое резюме

  • X позволяет иметь независимые графические дисплеи (:0, :1 и т.д.).
  • ~/.xinitrc управляет тем, что запускается в каждой сессии.
  • Команда startx – :N запускает X на указанном дисплее.
  • Переключение между дисплеями происходит сочетаниями Alt+Ctrl+Fx.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Удалить Bing из Chrome — инструкция
Браузеры

Удалить Bing из Chrome — инструкция

Восстановить удалённое приложение на iPhone
iOS

Восстановить удалённое приложение на iPhone

Как настроить заметку в Google Keep
Продуктивность

Как настроить заметку в Google Keep

Хостинг статического сайта на S3 и CloudFront
Хостинг

Хостинг статического сайта на S3 и CloudFront

Восстановление заметок Sticky Notes в Windows 10
Windows

Восстановление заметок Sticky Notes в Windows 10

Как исправить ошибку OR_PMCR_32 в Google Pay
Платежи

Как исправить ошибку OR_PMCR_32 в Google Pay