Разница между Xorg и Gnome / KDE / Xfce


20

Я хочу узнать больше о системах UNIX и думаю, что у меня есть довольно простой вопрос. Я думаю, что знаю, для чего используется X: он дает стандарт приложениям для представления их пользовательских интерфейсов (среди прочего).

Но почему тогда нужен Gnome / KDE и как они связаны с X? Я подумал, что они используют X в качестве своего рода интерфейса между приложением и графическим интерфейсом, так что графический интерфейс настраивается, в то время как интерфейс остается неизменным для всех приложений.

Это правда или Gnome / KDE не зависит от X?

Ответы:


27

(Я смотрю на отношения 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 (может быть, оффтоп к этой теме ...)


«Тот факт, что термин« сервер »применяется к программному обеспечению перед пользователем, часто удивляет пользователей, привыкших к тому, что их программы являются клиентами служб на удаленных компьютерах. Здесь, а не удаленная база данных является ресурсом для локального приложения. графические устройства отображения и устройства ввода пользователя становятся ресурсами, доступными локальному X-серверу как для локальных, так и для удаленных программ X-клиента, которым необходимо обмениваться графикой пользователя и устройствами ввода для связи с пользователем ". (см. вики )
yaobin

1
Если кто-то запутается в предложении «X-сервер обычно работает на компьютере, на котором вы находитесь», см. Мой комментарий выше. Спасибо @smwikipedia за такой невероятный ответ!
Яобин

5

Xorg (и более ранняя Xfree, и более ранняя X10 ) - это сервер для протокола, более полно называемого X Window System ; это позволяет приложениям рисовать на «экране». Которые могут быть удалены с помощью X. Gnome / KDE / Xfce и другие оконные менеджеры / окружения рабочего стола - это специальные приложения, которые работают в X, которые рисуют такие вещи, как границы и значки, и минимизируют и максимизируют то, чего сами приложения не делают.

И, поскольку Gnome и KDE могут работать (или работали) на MS Windows (и в разной степени на Wayland), да, они (или могут быть) независимы от X.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.