1

Я использую Ubuntu Gnome 15.10 с Gnome Shell 3.16. Недавно я заметил, что мой X11 работает не на :0.0 а на :1 . Я думал, что родной дисплей - монитор моего ноутбука - всегда должен быть :0.0 . Кто-нибудь сталкивался с такой вещью? Это нормально, как функция или что-то, или мой дисплей как-то угнан чем-то другим?

1 ответ1

1

Нет, нет ничего , что требовало бы, чтобы "нативный дисплей" был :0 . Это всего лишь первый номер дисплея, который обычно свободен при запуске Xorg, но есть разные причины, по которым его не будет:

  • Когда вы используете диспетчер отображения, он также запускает графический экран входа в систему на первом доступном сокете. До сих пор большинство менеджеров дисплеев повторно использовали один и тот же X-дисплей для вашего рабочего стола, поэтому, если бы экран входа был на :0 , ваши собственные программы также использовали бы :0 .

    Но ничто и не требует этого. Фактически, GNOME GDM начиная с версии 3.16 всегда запускает новый дисплей X, оставляя экран входа в систему все еще работающим на старом. Это делается главным образом для упрощения логики - сеансы на основе Wayland всегда начинаются с отдельного tty, поэтому GDM теперь обрабатывает сеансы X11 одинаково.

  • Большинство дисплеев дисплеев, в том числе, конечно, GDM, также поддерживают переключение пользователей - поэтому, если два пользователя войдут в одну систему, один получит :0 а другой получит :1 , даже если оба используют один и тот же "родной" монитор и клавиатуру ,

    (Ну, теперь :1 и :2 , если учесть новое поведение GDM.) То же самое, если вы вручную запустите startx на нескольких tty - один будет :0 , один будет :1 , один будет :2 , и так далее.

  • Также возможно, что Xorg был запущен в :0 один раз, но потерпел крах и оставил устаревший сокет в /tmp/.X11-unix/X0 , заставляя диспетчера думать :0 все еще использовался.

Необязательный суффикс .0 указывает на экран в старом многоэкранном механизме до Xrandr. Это в основном бессмысленно в эти дни.


На самом деле аналогичная ситуация существует в Windows, где Terminal Services являются грубым эквивалентом X11. Вплоть до Windows XP первый пользователь получал сеанс 0, и многие службы предполагали, что они могут отображать там графические интерфейсы, несмотря на то, что они являются службами и технически находятся вне сеанса.

Помимо того, что это небезопасно, это также вызывало проблемы с переключением пользователей и удаленным рабочим столом, так как некоторые программы были совершенно непригодны для использования в сеансах, отличных от 0. В конце концов все стало так плохо, что Windows Vista начала резервировать сеанс 0 для сервисов, а логины пользователей теперь начинаются с 1.

Я надеюсь, что большинство диспетчеров дисплеев X11 также сделают это, просто чтобы сломать то, что предполагает DISPLAY=":0" .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .