В процессе обучения тому, чтобы делать определенные вещи в программировании GUI (например, резервируя место на экране для приложения), мне нужно больше узнать о Window Manager, обычно X11 в Linux (я не уверен, есть ли вообще дистрибутивы , которые используют что-нибудь еще, кроме X11, хотя я слышал о Wayland , который еще не реализован ни в одном.)
Я довольно новичок в программировании и нетерпелив; так что я просто погружаюсь в это. Сейчас я читаю ICCCM с надеждой узнать больше. Этот документ, однако, нацелен на публику, которая знает (кстати) больше, чем я. Поэтому я натолкнулся на некоторую информацию и хотел бы получить разъяснения.
Раздел 2 цитат ICCCM:
Обратите внимание, что все данные, передаваемые между владельцем и запросчиком, обычно должны передаваться через сервер в среде X версии 11. Клиент не может предположить, что другой клиент может открыть те же файлы или даже общаться напрямую. Другой клиент может общаться с сервером с помощью совершенно другого сетевого механизма (например, один клиент может быть DECnet, а другой TCP / IP). Таким образом, передача косвенных ссылок на данные (такие как имена файлов, имена хостов и номера портов и т. Д.) Разрешена только в том случае, если оба клиента конкретно согласны.
Насколько я понимаю, X Window Manager построен на основе 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? *
Обидно, что эта информация остается неясной, ее труднее усваивать, но, надеюсь, вы сможете пролить свет на это :) Спасибо.
источник