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