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/ имеет много деталей, которые я искал.

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

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

  • Драйвер графики – это то, как ядро ​​«разговаривает» с графической картой.
  • Сервер отображения – это то, что создает и управляет окнами и другими графическими элементами вашего дисплея.
  • Рабочий стол или оконный менеджер выступает в роли клиента на сервер отображения и инструктирует его о том, как он должен рисовать / украшать окна, панели, …
  • Сомнения в создании файла .Xresources.
  • Несколько экранов вызывают мерцание (только когда ноутбук заряжается)
  • выполнять команду по движению указателя, ждать и возвращаться?
  • Изменение конфигурации сервера X во время выполнения
  • Fedora 18 обнаруживает несуществующий монитор
  • Какие требования X Server связаны с пересылкой X11?
  • Получить идентификатор окна X11 только что запущенной GUI-программы
  • Что такое .serverauth. ##### файлы в моем домашнем каталоге?
  • Понимание рабочего стола Linux
  • WDM: автолог после загрузки
  • X11 переадресация приложения OpenGL с компьютера, на котором установлена ​​карта NVIDIA, на машину с картой AMD
  • Запуск (X) Xfce4 в Debian chroot
  • Interesting Posts

    Почему я не могу подключиться к LAN-интерфейсу сервера OpenVPN через туннель?

    В чем разница между echo `date`, echo" date "и echo '' date`?

    Используйте sed, чтобы заменить часть строки переменной

    Как запретить ядро ​​или любые широковещательные сообщения наводнения TTY?

    Конфигурация Apache в сайтах не включена?

    Агент GPG не удаляет мой SSH-ключ из брелка

    цикл в файле с определенным расширением в сценарии оболочки дочерней папки

    о нет! Что-то пошло не так! При запуске системы после установки Kali Linux

    Мне нужна конкретная версия ядра. Как получить соответствующий Debian iso?

    Могу ли я подключиться к скрытому Wi-Fi, не зная ESSID?

    X клиент, перенаправленный через SSH ", не может открыть отображение: localhost: 11.0"

    Sed удалить строку, если n-й символ не является конкретным символом

    Как заставить smartd игнорировать жесткий диск?

    Realtek RTL8111 Сетевая карта не работает на Ubuntu 14.04

    Как автоматически подключиться к беспроводной сети? (Non-графическая)

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