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), разработанная для устранения недостатков других методов. Это не Х специфично.

  • Переключатель Xorg DISPLAY между двумя пользователями
  • Отладка клавиатуры и мыши после возобновления сна
  • Render X в определенной области экрана
  • Как запустить cronjob на дисплее?
  • Несколько XkbOptions в xorg.conf
  • Застрял на заставке Fedora после установки OpenBox3 / tint2
  • Что именно происходит, когда я набираю «startx» в командной строке?
  • Как изменить разрешение экрана Slax?
  • Как ключи или ключевые коды сопоставляются с символами X Key?
  • Конфигурация Dell Precision Trackpoint Odd
  • Xorg.bin использует 100% процессор в случайном порядке (в основном после переключения TTY), с i915
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.