Композитинг Compiz и Linux: как он вписывается в архитектуру X?

Композитинг Compiz и Linux: как он вписывается в архитектуру X?

Не совсем вопрос «как решить проблему», но... Мне было интересно, как работает современная архитектура X, с compiz и всем остальным.

Что я знаю об этом:

  • В начале был X-сервер, клиенты подключались (предположительно по TCP), а затем отправляли сообщения серверу, чтобы дать ему команду показать окна и т. д.
  • Поскольку это не работало (вообще? или просто недостаточно быстро?) для ускорения OpenGL и 3D, были созданы дополнительные API для прямого рендеринга (DRI? и, помимо X-сервера, с какими вещами взаимодействовали X-клиенты для рендеринга и через какие интерфейсы?)
  • и, наконец, включаем Compiz: клиенты X в конечном итоге (каким-то образом) выполняют рендеринг в текстуры OpenGL, которые затем объединяются в причудливый экран с полупрозрачными окнами и выводятся на экран.

Что меня особенно интересует, так это какие компоненты есть в системе и как они соединяются друг с другом? Например... если в системе есть ящик с надписью "compiz"... он внутри X-сервера? Если нет, то как отрендеренные изображения из приложений попадают в него? И куда он рендерится? Это еще один X-сервер? Или DRI?

Конечно, я был бы не менее рад, если бы мне указали на какие-либо документы, способные прояснить описанную выше путаницу (при условии, что они будут значительно короче сущностей размером с книгу).

решение1

Вотхорошая статья, которые могут вам помочь.

Связанный контент