X, Xorg и D-Bus: какая разница?

В процессе обучения некоторым задачам программирования GUI (например, резервированию места на экране для приложения) мне нужно больше узнать о Window Manager, обычно X11 в Linux (я не уверен, есть ли даже дистрибутивы , которые используют что-либо еще, кроме X11, хотя я слышал о Wayland , который еще не реализован ни в одном.)

Я новичок в программировании и нетерпелив; поэтому я просто погружаюсь в него. Теперь я читаю ICCCM, надеясь узнать больше. Однако этот документ нацелен на публику, которая знает (путь) больше меня. Поэтому я наткнулся на какую-то информацию, и я хотел бы получить некоторые разъяснения.

Раздел 2 ICCCM цитирует:

Обратите внимание, что все данные, переданные между владельцем и запрашивающим, обычно должны проходить с помощью сервера в среде X версии 11. Клиент не может предположить, что другой клиент может открыть одни и те же файлы или даже напрямую связаться. Другой клиент может разговаривать с сервером с помощью совершенно другого сетевого механизма (например, одним клиентом может быть DECnet и другой TCP / IP). Таким образом, передача косвенных ссылок на данные (такие как имена файлов, имена хостов и номера портов и т. Д.) Разрешается только в том случае, если оба клиента конкретно согласны.

Насколько я понимаю, X Window Manager построен на Top of X Server (спасибо Википедии). В приведенной выше цитате сказано, что клиент может обмениваться данными с сервером, используя DECnet или TCP / IP. До сих пор я думал, что «сервер» был фигурой речи, теперь я сомневаюсь: X сервер сервер, как на «веб-сервере»? Как я должен понимать его функцию / определение?

Затем часто ссылаются на X11, Xorg, X Server и / или X Window Manager. Это запутывает: есть ли X11 пакет, включая Xorg и X Window Manager? Если да, есть ли что-нибудь еще в этом комплекте X11?

X также нужна мышь или клавиатура или любой другой вход: эта часть функций X Server тоже? Является ли X Window Manager строго следить за дисплеем?

Наконец, приведенная здесь цитата также упоминает, что клиент общается или нет друг с другом: это напомнило мне о D-Bus, который я использовал немного для учебных целей. С помощью D-Bus вы также можете запускать события окна. Это немного меня смущает, как программы должны взаимодействовать друг с другом: * какая разница между программами, взаимодействующими с X Server или с использованием D-Bus? *

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

One Solution collect form web for “X, Xorg и D-Bus: какая разница?”

Вы задаете здесь пять вопросов и можете лучше задать пять вопросов ☺ Но я вскочу:

  1. X – это сервер и его можно сравнить с «веб-сервером» в том, что это процесс, который прослушивает входящие соединения, которые говорят на конкретном протоколе (протокол X), и он выдает ответы. Соединения происходят от клиентов X, которые могут находиться на локальном хосте или на удаленном узле, доступ к которому осуществляется через сеть.

  2. X11 является «основной версией» протокола X, который развивается с самого начала. X11 является самым последним протоколом и наиболее распространенным. (Xorg – это реализация X-сервера, X-библиотек и коллекции клиентов, говорящих на X11. Существуют и другие реализации: в основном несуществующие XFree86; коммерческие, такие как Hummingbird Exceed; такие вилки, как XQuartz, который работает в Mac OS X )

  3. «Менеджер окон» – это X-клиент, который управляет окнами. Обычно он обязан украсить окна скосами / границами, тени, панель меню, содержащую кнопки и т. Д. – и обрабатывать логику размещения окна; окна поддержки перетаскиваются, изменяются или переупорядочиваются и т. д.

  4. X требует ввода, и у него есть общая ответственность за управление этим ядром. Исторически X очень много аппаратного управления. В наше время на платформе Linux X постепенно становится «меньше» и делегирует эту ответственность ядру Linux. Преимущества этого: меньшая X-кодовая база; меньше «перекрестных проводов» с ядром и X, которые пытаются управлять одним и тем же материалом. (примером этого является интерфейс событий Linux, где события от мышей и т. д. интерпретируются и транслируются ядром и его драйверами в стандартный интерфейс на /dev/input/event* , который потребляется сервером X). Обратите внимание, что на других платформах (BSD, Solaris) X все еще довольно монолитен.

  5. Существует много способов взаимодействия процессов друг с другом. Я полагаю, что X-клиенты могут взаимодействовать посредством протокола X (например, традиционные администраторы окон X должны знать, когда другие клиенты рисуют окна, чтобы их украсить, пейджеры должны знать, когда изменяется размер или позиция окна, чтобы отражают это в пейджере). D-Bus – современная технология межпроцессного взаимодействия (IPC), разработанная для устранения недостатков других методов. Это не Х специфично.

  • после включения Xinerama (в графической карте AMD с двумя головками) системная графика зависает
  • XKB - Очистка заблокированных модификаторов
  • Как сопоставить сложную комбинацию с несколькими ключами в ярлыке для выполнения процесса, в X (через WM и т. Д.)?
  • различия между vesa и fbdev Xorg драйверами?
  • Что такое XDG_SESSION_COOKIE, кто его использует, и полезно ли для удаленного входа ssh управлять локальной сессией x?
  • Графический интерфейс не входит в систему
  • Командная строка для возврата в графический интерфейс после Ctrl-Alt-F1?
  • Почему шрифты все ввернуты для удаленных приложений X11 на одном клиенте Mac?
  • Где Xkb получает свою конфигурацию?
  • Двойной экран с разрешением более 1680 пикселей в Fedora 14
  • Являются ли раскладки клавиатуры на X.org на самом деле называемыми макетами X.org или что?
  • Linux и Unix - лучшая ОС в мире.