В чем разница между DISPLAY :0 и :0.0? [дубликат]

Вопрос или проблема

В чем разница между DISPLAY :0 и :0.0? На RedHat 5.8 я могу щелкнуть правой кнопкой мыши по рабочему столу, чтобы запустить оболочку, и DISPLAY будет “:0”. Если я перейду в Меню-System-Terminal для запуска оболочки, то DISPLAY будет “:0.0”. Могу ли я всегда считать, что это действительно один и тот же дисплей?

Например, если я подключусь через VNC к машине с DISPLAY 33, могу ли я предположить, что “:33.0” и “:33” — это один и тот же дисплей с одними и теми же разрешениями?

Первое число — это номер Xserver (порт 6000+Xserver_number), второе число — это номер экрана, управляемого этим сервером. Один Xserver может управлять многими экранами. Если экраны вас не волнуют, пустое значение равносильно 0.

Из X(7):

screennumber

Некоторые дисплеи разделяют одну клавиатуру и указатель между двумя или более мониторами. Поскольку у каждого монитора есть свой набор окон, каждому экрану присваивается номер экрана (начиная с 0) при запуске X server для этого дисплея. Если номер экрана не указан, будет использоваться экран 0.

Я думаю, я могу полагаться на то, что “:0” это то же самое, что и “:0.0“.

Ответ или решение

Разница между переменными окружения DISPLAY ":0" и ":0.0" может показаться незначительной на первый взгляд, но для понимания работы системы окон X она важна. Для начала следует рассмотреть теоретические аспекты этой переменной, затем привести примеры использования, и, наконец, объяснить практическое применение и влияние на повседневное использование.

Теория

Переменная окружения DISPLAY используется в системах X Window для указания на то, какой дисплей, управляемый X сервером, должен быть использован для вывода графической информации. Структура этой переменной обычно имеет вид [<hostname>]:<display_number>.<screen_number>. Здесь:

  • <hostname> — это имя хоста, на котором запущен X сервер. Если оно не указано, по умолчанию подразумевается текущий локальный хост.
  • <display_number> — номер дисплея. Дисплей — это логическая единица, с которой вы работаете. Она инкапсулирует набор экранов (мониторов), которые физически подключены к компьютеру.
  • <screen_number> — номер экрана. Один X сервер может управлять несколькими экранами (мониторами), составляющими один дисплей.

Теперь конкретно к вашей ситуации: когда вы видите ":0" и ":0.0", первый фрагмент после ":" указывает на номер дисплея, а второй после точки на номер экрана. Если номер экрана не указан, по умолчанию используется экран 0.

Пример

Представьте компьютер с X сервером, способным управлять несколькими мониторами. В вашей системе переменная DISPLAY может выглядеть так:

  • :0 или :0.0 — это дисплей с номером 0 и экраном 0. В этом случае только один монитор подключен и управляется.
  • :0.1 — второй экран на том же дисплее. Если ваш X сервер настраивается для управления несколькими экранами, у вас может быть ситуация, где две разные переменные DISPLAY указывают на разные экраны на одном дисплее.

Теперь, предположим, что ваш X сервер настроен для работы с двумя экранами на одном дисплее. Например, при работе с виртуальной средой или в конфигурации с несколькими мониторами одна и та же рабочая станция может использовать обе переменные окружения: одна для каждого монитора.

Практическое применение

В вашей системе RedHat 5.8, где различные приложения, такие как оболочка, могут отображать разные значения переменной DISPLAY, важен контекст, в котором они запускаются. Когда вы правой кнопкой мыши открываете оболочку, и она показывает ":0", это означает, что она использует первый дисплей и первый экран. Когда приложение запускает оболочку с переменной DISPLAY ":0.0", оно явно указывает, что первый экран используется.

Практическим следствием является то, что вы можете спокойно предполагать, что ":0" и ":0.0" являются эквивалентными в контексте вашего текущего окружения, поскольку они оба указывают на тот же первый экран на дисплее 0, если он один. В других ситуациях, например, с использованием VNC или внешних дисплеев, этот вывод может быть неверным при наличии нескольких дисплеев или экранов. Однако при использовании VNC с дисплеем 33 их вывод также должен совпадать, когда вы используете ":33" и ":33.0".

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

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

Оцените материал
Добавить комментарий

Капча загружается...