Display Server vs. Window Manager и графический драйвер?

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

  • Дисплейный сервер
  • Менеджер окон
  • Графический драйвер

Мои вопросы:

  • Являются ли графические драйверы встроенными в ядро ​​Linux или снаружи? Если вне ядра, почему они исключены, когда сеть, диск, файловая система находятся внутри ядра?
  • X Windows, Gnome, Ubuntu Unity, KDE, Мир, Wayland, кто что делает с точки зрения сервера отображения, диспетчера окон и графического драйвера?

Моя цель в этом вопросе заключается в том, чтобы понять, какие проекты вносят вклад в то, какие части опыта работы с графикой Linux?

UPDATE http://blog.mecheye.net/2012/06/the-linux-graphics-stack/ имеет много деталей, которые я искал.

  • Настройка сенсорной панели / трекбола для X
  • Ошибка сервера Xpra (ошибка при принятии нового соединения)
  • Как предотвратить эффект переключения колпачков, без переназначения или отключения его?
  • Платформа X11 в действии аккаунта Google
  • Почему весь текст невидим в Intellij?
  • Как запустить эту программу C после запуска X-сервера?
  • Терминал только как «Рабочий стол»
  • Настройка Caps Lock в качестве модификатора и переключателя компоновки
  • 2 Solutions collect form web for “Display Server vs. Window Manager и графический драйвер?”

    Термин «графический драйвер» используется для обозначения нескольких разных вещей. Один из них – драйвер ядра. Драйвер ядра в основном просто устанавливает видеорежим и облегчает передачу данных на / с карты. Он также обычно загружает прошивку в графический процессор на карте. Прошивка – это программа, в которой работает сам GPU, но, к сожалению, производители графиков предоставляют ее как двоичный блок, поэтому вы не можете смотреть на его исходный код.

    Выше того, что вы обычно запускаете Xorg, у которого есть свой собственный драйвер, который переводит общие вызовы рисования X11 или OpenGL в команды, которые понимает карта, и отправляет их на выполняемую карту. Он также может выполнять часть самой работы в зависимости от того, какие команды выполняет gpu и не поддерживает. В случае вызовов OpenGL инфраструктура прямого рендеринга позволяет этой части драйвера фактически выполнять непосредственно в клиентском приложении, а не на сервере X, чтобы получить приемлемую производительность. Он также позволяет драйверу в клиентском приложении отправлять свои команды непосредственно в gpu, благодаря координации с Xorg и драйвером ядра при запуске.

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

    Unity – это как оболочка (обеспечивает рабочий стол / панель запуска), так и компоновщик оконного менеджера в одном.

    GNOME и KDE – это настольные среды. Это крупные проекты, состоящие из многих компонентов. Ядром их являются их соответствующие прикладные инструментальные средства, которые являются GTK для GNOME и Qt для KDE. Это библиотека, в которой написано приложение, и обеспечивает основу, на которой построено все остальное. Некоторые из основных услуг, которые они предоставляют, это обработка событий и объектов, Windows, основные функции рисования, ввод-вывод и многое другое.

    • Драйверы графики реализованы как модули ядра, которые необходимо загрузить в него. Так что, в основном, они находятся вне ядра. Независимо от того, можно ли построить ядро ​​для их хранения, это вопрос, оставшийся от кого-то более осведомленного, чем я, чтобы ответить. Я думаю, что они были исключены из ядра, потому что, если ядро ​​построено, скажем, с драйвером nouveau него возникнут конфликты с загрузкой проприетарного драйвера NVIDIA.
    • X Windows, Wayland и Mir – серверы отображения.
    • Gnome, Ubuntu Unity и KDE – это все настольные среды, а не оконные менеджеры. Диспетчер окон является частью среды рабочего стола (например, Gnome использует metacity ). Тем не менее, вы можете запускать автономных оконных менеджеров (без среды рабочего стола), таких как awesome , xmonad или openbox

    Что касается того, какой компонент играет роль:

    • Драйвер графики – это то, как ядро ​​«разговаривает» с графической картой.
    • Сервер отображения – это то, что создает и управляет окнами и другими графическими элементами вашего дисплея.
    • Рабочий стол или оконный менеджер выступает в роли клиента на сервер отображения и инструктирует его о том, как он должен рисовать / украшать окна, панели, …
    Interesting Posts

    Правильный способ изменения имени пользователя в Ubuntu или любом Linux

    Прокомментировать все строки в текстовом файле?

    Автоматическое ведение журнала скриптов, выполняемых пользователями

    Как настроить ipv6 на centos?

    Как я могу форматировать флэш-накопитель, чтобы удалить все существующие файлы?

    Поиск подстроки в файлах в подкаталогах с помощью одной встроенной команды?

    Режим оболочки Emacs делает $ PS1 разным

    Определите, какой компонент среды GUI не работает, чтобы вернуться к полной функциональности

    Может ли дистрибутив Linux быть закрытым источником?

    Перенаправление stdout игнорирует строки без символа перевода строки

    Пропустить ошибки ловушки в сценарии оболочки

    Когда процесс завершается в UNIX?

    Как читать строку из файла и сравнивать с каждой строкой второго файла

    ошибка установки oracle 11g на Ubuntu 17.04 Mate

    Нежелательные сообщения при каждом входе в систему?

    Linux и Unix - лучшая ОС в мире.