Существующие ответы не могут адресовать более общую картину.
Если вы не используете графическую среду (т. е. вы входите в систему на системной консоли без окон и т. д., или вы удаляетесь удаленно из терминала с текстовым интерфейсом через SSH или аналогичного, например, с компьютера под управлением Windows PuTTY), тогда GUI не задействован, и DISPLAY
обычно не будет отменено. Единственное средство общения с компьютером - это командная строка (хотя могут быть способы поворота в сеанс GUI, если вы знаете, как это сделать).
Если вы входите в консоль с графическим интерфейсом (на Ubuntu, как правило, используется GDM greeter) или с помощью графического терминала (например, на компьютере под управлением Windows с eXceed или mobaX или в программном обеспечении удаленного рабочего стола, таком как VNC клиент) переменная DISPLAY
настраивается программой, которая управляет вашим графическим сеансом, чтобы указать графическим клиентам, к которым подключаются устройства ввода / вывода.
Традиционно в графическом интерфейсе на компьютере Ubuntu была запущена X.org, реализация X11, но совсем недавно модернизированная замена под названием Mir была введена Canonical; и еще совсем недавно я считаю, что Мир будет оставлен в пользу другого проекта с аналогичными целями, названными Wayland . Эти замены предназначены для уменьшения сложности полного стека X11, который мы не будем здесь делать - они придерживаются того же соглашения DISPLAY
, которое в конце концов говорит о том, что мы обсуждаем здесь.
В X11 хост-часть DISPLAY
может быть удаленным сервером, и вы будете использовать ваш компьютер Ubuntu в качестве «графического терминала» для доступа к файлам и программам на этом удаленном сервере (в этом случае ваш компьютер является " сервер ", который обслуживает клавиатуру, мышь и одно или несколько устройств отображения для« клиентских »программ, запущенных на удаленном ... сервере). Чаще всего на вашем компьютере запускаются сервер X11 (или Мир или Wayland) и клиентские программы (менеджер рабочего стола и различные графические клиенты, такие как веб-браузер, почтовый клиент, программа календаря и т. Д.). Это указывается частью «сервера» значения DISPLAY
, которое в последнем случае обычно пусто (что подразумевает значение по умолчанию, localhost
).
Сервер X11 может запускать один или несколько графических сеансов - например, ваш вход в консоль и удаленный сеанс VNC могут работать одновременно. В этом случае (если они управляются одним и тем же экземпляром сервера X11), у вас есть несколько «показов» в терминах X11. На практике один сеанс (одно событие входа и экземпляр настольного компьютера, порожденный этим), представляет собой один дисплей в X11.
Один из таких дисплеев может иметь один или несколько экранов. Традиционно это означало один монитор, хотя оригинальная архитектура имела некоторые неудачные черты, такие как невозможность перемещения окна с одного экрана на другой. Дополнения, подобные Xinerama и Xrandr, еще больше загромождали ситуацию до такой степени, что один экран часто соединяет несколько мониторов различными способами.
Если вы играли в системах с несколькими мониторами, вы, вероятно, обнаружили, что вы можете организовать мониторы различными способами и в конечном итоге иметь прямоугольную область, где ваши мониторы отображают некоторые ее части, а другие части не назначаются ни одному монитору. Это «экран», который создает X11, и если у вас более одной карты дисплея, вы можете иметь несколько из этих экранов, каждый из которых назначается одному или нескольким мониторам (или, теоретически, без монитора, Xvfb использует это, чтобы разрешить вы запускаете X11 без каких-либо мониторов, просто сопоставляя графический интерфейс с областью памяти для любой цели).