Что такое сервер отображения в Linux? Для чего он используется?

В статьях, новостях и обсуждениях, связанных с Linux, вы часто встретите термин сервер отображения, Xorg, Wayland и т. д.

Что такое дисплей-сервер в Linux?

Сервер отображения — это программа, которая отвечает за координацию ввода и вывода своих клиентов с остальной частью операционной системы, а также между оборудованием и операционной системой. По сути, благодаря серверу отображения вы можете использовать свой компьютер в графическом режиме (GUI). Без сервера отображения вы были бы ограничены только интерфейсом командной строки (TTY).

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

Сервер дисплея взаимодействует со своими клиентами по протоколу сервера дисплея, например X11. Сервер отображения является ключевым компонентом любого графического пользовательского интерфейса, особенно оконной системы.

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

Звучит знакомо, но не совсем понятно? Позволь мне объяснить.

Отображение протоколов связи с сервером в Linux

В Linux доступны три протокола отображения: X11, Wayland и Mir. Я дам вам краткое описание этих серверов отображения.

X11 (также называемый X) — это устаревший дисплей-сервер, который существует уже много лет. Это наиболее распространенный дисплей-сервер, используемый в дистрибутивах Linux.

Протокол связи X11 использует сервер отображения Server . Он получает события ввода от драйверов устройств и делает их доступными для одного из своих клиентов.

Сервер отображения также получает данные от своих клиентов, он обрабатывает данные и выполняет композицию, а в Linux он передает данные одному из трех компонентов ядра — DRM , gem или драйверу KMS .

— это сервер отображения, который использует вторую программу, оконный менеджер композитинга, для выполнения композитинга. Примеры: Mutter или KWin . GNOME использует Mutter.

Wayland

Согласно его веб-сайту, Wayland «задумана как более простая замена X, более простая в разработке и обслуживании».

И действительно, Wayland — это современный дисплей-сервер, который должен заменить устаревший X-дисплей.

Его принятие все еще продолжается. Ubuntu попыталась переключиться на Wayland в качестве сервера отображения по умолчанию с версией , но эксперимент встретил отрицательные отзывы.

Многие приложения с графическим интерфейсом и их фреймворки зависят от X-сервера. Эти приложения не работали должным образом на Wayland.

Это заставило Ubuntu оставаться на X в качестве сервера отображения по умолчанию. Он по-прежнему предоставляет возможность использовать Wayland, но больше не используется по умолчанию.

Читайте также:  3 способа отключить все платные услуги на МТС

Подавляющее большинство дистрибутивов даже сегодня по умолчанию используют сервер отображения X.

Серверы отображения, которые применяют протокол сервера отображения Wayland, называются композиторами Wayland . Как и любой X11, композитор Wayland отвечает за обработку ввода и вывода для своих клиентов, но также выполняет композитинг — в отличие от X11.

Некоторые композиторы Wayland — это Weston , Mutter , KWin или Enlightenment .

Сервер отображения Mir поставляется с собственным протоколом сервера отображения Mir, который отличается от протокола, используемого в X11 и Wayland. Он был разработан Canonical в рамках разработки Unity и должен был стать предпочтительным сервером отображения для Ubuntu .

С 2017 года он был заменен сервером отображения Wayland для настольных версий Ubuntu, хотя разработка Mir продолжалась для приложений Интернета вещей (IoT).

Почему мы все еще используем Xorg?

Wayland, поскольку он относительно новый, еще не очень стабилен по сравнению с Xorg. Программы, которые действуют как клиенты, чтобы взаимодействовать с сервером отображения, должны знать, как это делать.

По этой причине многие программы могут не работать при использовании Wayland. Эксперимент Ubuntu по переключению на Wayland по умолчанию подтвердил это.

Вывод

Надеюсь, вы немного лучше понимаете концепцию сервера отображения в Linux. Я старался не вдаваться в технические детали, но мне не удалось полностью их избежать.

Ваши отзывы и предложения приветствуются.

Как узнать версию Linux на компьютере через консоль

Существует несколько типов команд, позволяющие выяснить, какая Linux Version и дистрибутив функционирует на персональном компьютере. Пользователь может выбрать наиболее подходящий для себя вариант.

Команда lsb_release

Как добавить пользователя в группу Linux — описание способов

Как узнать версию Linux на компьютере через консоль

На форумах и в социальных сетях часто рассматривается вопрос о том, как узнать какой Линукс установлен. Указанная утилита показывает информацию о распределении системы. Команда будет функционировать во всех вариациях операционной системы, в которой присутствует пакет lsb-release:

  • lsb_release –a;
  • No LSB modules are available;
  • Distributor ID: Debian;
  • Description: Debian GNU/Linux 9.5 (stretch);
  • Release: 9.5;
  • Codename: stretch.

Строка описания указывает на версию системы и дистрибутив. Согласно вышеприведенному примеру, в ПК установлена Debian GNU/Linux 9.5 (stretch).

Второй вариант – отображение строчки описания, указывающей на вариацию Debian, вместо вывода всей ранней информации:

  • lsb_release –d;
  • Description: Debian GNU/Linux 9.5 (stretch).

Важно! Если на дисплее возникло сообщение о невозможности выполнения вышеуказанной команды, то нужно попытаться применить иные методы. Которые позволяют посмотреть текущую версию Linux.

Как узнать версию Linux на компьютере через консоль

Ответ на команду

Команда /etc/*version

Как узнать версию Linux: можно воспользоваться командой cat /etc/*version. Звездочка перед надписью «версия» выставляется по аналогии с файлами, которые заканчиваются на слово «release». При введении команды на дисплее появится надпись «stretch/sid» — кодовое название релиза Debian, который используется на основе Ubuntu.

Читайте также:  4 популярные программы для проектирования мебели

Просмотр версии

Команда /etc/issue

Указанный файл включает текстовую идентификацию системы, которая возникает перед приглашением. При введении команды о версии Линукс «cat /etc/issue» ответ выглядит так: «Debian GNU/Linux 9 \n \l».

Как узнать версию Linux на компьютере через консоль

Важно! Итоговая надпись зависит от установленной версии. Чтобы узнать сведения о процессоре, можно воспользоваться командой «lscpu», которая выведет на экран доступную информацию: основные и дополнительные моменты.

Проверка через etc issue

kde тиринг

KDE, является моим любим рабочим окружением. В нём есть такое огромное количество, так нужных пользователям, элементов управления, что с помощью GUI Панели управления можно настроить практически всё. Откройте приложение Настройки и найдите «Display and Monitor». Там выберите «Compositor». Найдите параметр «Предотвращение разрыва vsync»(Tearing prevention «vsync» и установите для него значение «Перерисовка всего экрана” (Full screen repaints). После этого нажмите «Применить» (Apply).

Нередко Kwin, оконный менджер KDE, тоже становится причиной тиринга. Если не после предыдущих манипуляци разры картинки не пропал, то создалим файл /etc/profile.d/ следующего содержания:

kde тиринг

export KWIN_TRIPLE_BUFFER=1

Перелогиньтесь и всё должно стать гладко.

Конфигурация X-сервера

Чтобы приспособить графическую подсистему (в любой реалиации) к имеющемуся оборудованию, требуется организовать соответствующий профиль. Профиль графической подсистемы находится в каталоге /etc/X11, основной конфигурационный файл XFree86 называется XF86Config-4, именно его считывает при запуске X-сервер.

Цифра 4 появилась в названии этого файла c выходом версии 4.0 XFree86, в этот момент изменился синтаксис конфигурационного файла по сравнению с предыдущими версиями. При этом часть старого оборудования не поддерживается четвёртой версией XFree86, поэтому для такого оборудования приходится использовать более ранние версии, для которых конфигурационный файл сохраняет старое название, XF86Config.

Конфигурационный файл XOrg называется , а при его отсутствии используется файл XF86Config.

Мы рассмотрим конфигурацию графической подсистемы на примере XFree86. Файл XF86Config-4 структурирован: состоит из нескольких обязательных разделов, которые могут следовать в любом порядке. В раздел объединяется часть профиля, связанная с одной из сторон деятельности X-сервера. Каждый раздел имеет такую структуру:

Section «НазваниеРаздела» КлючевоеСлово «Параметры» . . . EndSection Пример 3. Структура раздела XF86Config

Внутри раздела содержатся записи, каждая из которых занимает обычно одну строку и задаёт значение для одного из параметров профиля XFree86. В начале записи стоит КлючевоеСлово, за которым следуют Параметры, количество и формат которых зависит от ключевого слова. Ниже приводится список обязательных разделов с краткими аннотациями, для чего они служат.

Files Пути к файлам с ресурсами, необходимыми X-серверу ServerFlags Общие параметры X-сервера Module Расширения, которые следует загрузить InputDevice Описание устройств ввода Device Описание устройства вывода (видеокарты) Monitor Описание монитора Modes Описание видеорежимов Screen Описание экрана (связывает монитор и видеокарту) ServerLayout Конфигурация сервераПример 4. Разделы XF86Config

Почти каждый из перечисленных разделов может присутствовать в конфигурационном файле в нескольких экземплярах, например, может быть несколько разделов (InputDevice), описывающих разные устройства ввода (разные мыши и клавиатуры). Однако эти разделы не равноправны, а образуют иерархическую структуру, самым главным (корневым) элементом которой является конфигурация сервера (ServerLayout). В этом разделе указывается, какие именно из описанных в файле устройств ввода (разделы InputDevice, как минимум два — для клавиатуры и мыши) и вывода (Screen, который связывает в единое устройство вывода монитор и видеокарту, ссылаясь на их описания в соответствующих разделах) будут использованы при работе X-сервера. В каждом разделе присутствует строка «Identifier «идентификатор»», именно эта строка используется для выбора нужного из однотипных устройств в разделе «ServerLayout». Например, на машине, где работает Мефодий, общая конфигурация сервера выглядит так:

Section «ServerLayout» Identifier «layout1» Screen «screen1» InputDevice «Mouse1» «CorePointer» InputDevice «Keyboard1» «CoreKeyboard» EndSectionПример 5. Раздел ServerLayout конфигурацонного файла XF86Config

Соответственно, при запуске сервера будут использованы тот раздел Screen, в котором содержится запись «Identifier «screen1»», мышь «Mouse1» и клавиатура «Keyboard1».

Чтобы разобраться в подробностях каждого раздела, требуются определённые познания в работе и характеристиках устройств ввода и вывода, поэтому здесь мы не будем приводить конкретных примеров. Подробно о формате XF86Config можно прочитать в соответсвующем руководстве XF86Config(5). Для многих пользователей будет достаточно профиля графической подсистемы, созданного одним из существующих мастеров, самый известный из которых — xf86config. Во многих дистрибутивах имеются собственные полуавтоматическме утилиты настройки X11. С их помощью можно создать более или менее подходящий профиль, не вникая в тонкости, нередко — непосредственно при установке системы. Во всяком случае, у пользователя всегда остаётся возможность корректировать профиль вручную, отредактировав конфигурационный файл. Простой конфигурационный файл можно получить, запустив X-сервер с ключом -configure из-под суперпользователя. При этом в текущем каталоге создастся файл , в котором X-сервер сохранит результаты автоматического определения внешних устройств.