(Я смотрю на отношения GNOME и X. Я хотел бы поделиться некоторыми моими пониманиями. Я изложу это в логической форме, насколько смогу.)
1. Из чего состоит GUI?
Ниже приведена иллюстрация основных компонентов графического интерфейса.
Ключевым компонентом является сервер отображения . Доступно несколько серверов отображения. Такие как:
- X11 (в основном для * nix)
- Wayland (в основном для * nix)
- Мир (в основном для * nix)
- SurfaceFlinger (это для Google Android.)
- Кварцевый композитор (это то, что использует Apple MacOS.)
- Диспетчер окон рабочего стола (это то, что использует Microsoft Windows.)
2. Что такое Х?
X, X11 и X Window System являются синонимами. Все они обозначают систему управления окнами . Система управления окнами - это тип графического пользовательского интерфейса (GUI, как я уже упоминал выше), который реализует парадигму WIMP (окна, значки, меню, указатель) для пользовательского интерфейса.
Вот список основных оконных систем для систем Linux и Windows.
Основной компонент любой оконной системы обычно называют сервером отображения (неудивительно, потому что оконная система является своего рода графическим интерфейсом, а сервер отображения является ключевой частью любого графического интерфейса), хотя также используются другие имена, такие как оконный сервер или композитор .
Любое приложение , которое работает и представляет его GUI является клиентом от сервера дисплея . Сервер дисплея и его клиенты обмениваются данными друг с другом по протоколу связи, который обычно называется протоколом сервера дисплея , при этом сервер дисплея является посредником между клиентами и пользователем. Сервер дисплея получает все данные от ядра, которые ядро получает от всех подключенных устройств ввода, таких как клавиатура, указывающие устройства или сенсорный экран, и передает их нужному клиенту. Дисплейный сервер также отвечает за вывод клиентов на монитор компьютера. Протокол дисплея сервераможет быть сетевым или даже прозрачным. (так что вы можете видеть, что это, по сути, только поток данных и маршрутизация, визуальные данные - это все еще данные.)
И согласно здесь :
X-сервер - это программа, которая предоставляет услуги отображения и ввода данных другим программам. Для сравнения, файловый сервер предоставляет другим программам доступ к устройствам хранения файлов. Файловые серверы обычно расположены в удаленном месте, и вы используете службы файлового сервера с компьютера, на котором вы находитесь. Напротив, X-сервер обычно работает на компьютере, на котором вы находитесь ; Услуги отображения и ввода данных могут запрашиваться программами, запущенными на вашем компьютере, а также программами, запущенными на удаленных машинах.
Итак, Х состоит из:
- сервер дисплея
- протокол сервера отображения
- некоторые библиотеки для развития
- и другие вещи
Согласно здесь :
X предоставляет базовую структуру для среды графического интерфейса: рисование и перемещение окон на устройстве отображения и взаимодействие с мышью и клавиатурой. X не требует пользовательского интерфейса - это обрабатывается отдельными программами. Таким образом, визуальное оформление сред на основе X сильно различается; разные программы могут представлять радикально разные интерфейсы.
Другими словами, X только дает программе возможность выполнять основные вещи, такие как рисование / перемещение окон и взаимодействие ввода . X не применяет визуальные стили. Так что то, что вы сказали " ... Это дает стандарт приложениям для представления их пользовательского интерфейса ... " неверно.
3. Что такое GNOME / KDE
GNOME и KDE являются Linux Desktop Environment . Среда рабочего стола - это пакет программ, работающих поверх операционной системы, которые имеют общий графический интерфейс .
Но, как я уже упоминал выше, X11, как сервер отображения, предоставляет базовые возможности рисования только через некоторые библиотеки, такие как Xlib или XCB. Приложения, которые напрямую взаимодействуют с X11 через такие библиотеки, могут иметь радикально разные визуальные стили .
Итак, как создать общий графический интерфейс? Здесь идет набор инструментов виджета . Такие как GTK + и Qt . Они популярны в оконных системах Wayland и X11 .
GNOME использует GTK +.
KDE использует Qt.
А вот сравнение сред рабочего стола X Window System.
Подвести итоги...
Я рисую грубую концептуальную иллюстрацию. 3 части над ОС очень настраиваемы. Вот почему возникает такая большая гибкость (путаница).
ДОБАВИТЬ 1 - 13:26 21.09.2008
И вот некоторые дискуссии о QT и GTK (может быть, оффтоп к этой теме ...)