Різниця між Xorg і Gnome / KDE / Xfce


21

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

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

Це правда чи Gnome / KDE не залежить від X?

Відповіді:


29

(Я переглядаю співвідношення GNOME і X. Я хотів би поділитися деякими своїми розуміннями. Я викладу це логічним чином, наскільки я можу.)

1. З чого складається графічний інтерфейс?

Нижче наведено ілюстрацію основних компонентів графічного інтерфейсу.

введіть тут опис зображення

Ключовим компонентом є сервер відображення . Доступно декілька серверів відображення. Як от:

  • X11 (переважно для * nix)
  • Вейленд (переважно для * nix)
  • Мір (переважно для * nix)
  • SurfaceFlinger (Це для Google Android.)
  • Кварцовий композитор (для цього використовується Apple MacOS.)
  • Менеджер вікон на робочому столі (для цього використовується Microsoft Windows.)

2. Що таке X?

X, X11 та X Window System - синоніми. Всі вони виступають за систему вікон . Система вікон - це тип графічного інтерфейсу користувача (GUI, як я вже згадував вище), який реалізує парадигму WIMP (windows, іконки, меню, покажчик) для користувальницького інтерфейсу.

Ось перелік основних віконних систем для Linux та Windows.

Основним компонентом будь-якої віконної системи зазвичай називають сервер відображення (не дивно, оскільки система вікон - це свого роду графічний інтерфейс, а сервер дисплеїв є ключовою частиною будь-якого графічного інтерфейсу), хоча інші назви, такі як віконний сервер чи композитор , також використовуються.

Будь-який додаток , яке працює і представляє його GUI є клієнтом від сервера дисплея . Сервер відображення та його клієнти спілкуються один з одним за допомогою протоколу зв'язку, який зазвичай називають протоколом сервера відображення, сервер дисплея є посередником між клієнтами та користувачем. Сервер відображення отримує весь вхід від ядра, яке ядро ​​отримує від усіх приєднаних пристроїв введення, таких як клавіатура, вказівні пристрої або сенсорний екран і передає його правильному клієнту. Сервер дисплеїв також відповідає за вихід клієнтів на монітор комп'ютера. Протокол дисплея сервераможе бути мережевим або навіть мережевим прозорим. (так що ви можете бачити, це по суті лише про потік даних та маршрутизацію. Візуальні дані все ще є даними.)

І згідно з цим :

X-сервер - це програма, яка надає послуги відображення та введення користувачем інших програм. Для порівняння, файловий сервер надає іншим програмам доступ до пристроїв зберігання файлів. Файлові сервери зазвичай розташовані у віддаленому місці, і ви користуєтесь послугами файлового сервера з машини, на якій ви перебуваєте. На противагу цьому X-сервер зазвичай працює на машині, на якій ви знаходитесь ; послуги з відображення та введення користувача можуть запитуватися програмами, що працюють на вашому пристрої, а також програмами, що працюють на віддалених машинах.

Отже, X складається з:

  • сервер відображення
  • протокол відображення сервера
  • деякі ліб для розвитку
  • та інші речі

введіть тут опис зображення

Згідно з цим :

X забезпечує основну основу для середовища графічного інтерфейсу: малювання та переміщення вікон на пристрої відображення та взаємодія з мишею та клавіатурою. X не вимагає користувальницького інтерфейсу - цим керуються окремі програми. Таким чином, візуальний стиль середовищ на базі X сильно змінюється; різні програми можуть мати радикально різні інтерфейси.

Іншими словами, X дає лише програмі можливість робити основні речі, такі як малювання / переміщення вікон та взаємодія із введеннями даних . X не застосовує візуальні стилі. Отже, те, що ви сказали, " ... Це дає стандарту програмам представити їх інтерфейс користувача ... " невірно.

3. Що таке GNOME / KDE

GNOME і KDE - це середовище робочого столу Linux . Настільне середовище - це набір програм, що працюють над операційною системою, які мають спільний графічний інтерфейс .

Але так само, як я вже згадував вище, X11 як сервер відображення надає лише основну здатність малювати через деякі вкладки, такі як Xlib або XCB. Програми, які безпосередньо взаємодіють з X11 через такі лібри, можуть мати кардинально різні візуальні стилі .

Тож як створити загальний графічний інтерфейс? Тут представлені набори інструментів віджетів . Такі як GTK + і Qt . Вони популярні у віконних системах Wayland та X11 .

GNOME використовувати GTK +.

KDE використовують Qt.

А ось порівняння середовищ робочого столу X Window System.

Узагальнити...

Я малюю приблизну концептуальну ілюстрацію. 3 частини над ОС дуже настроюються. Ось чому виникає стільки гнучкості (плутанини).

введіть тут опис зображення

ДОДАТИ 1 - 13:26 21.09.2018

І ось кілька дискусій про QT та GTK (можливо, офтопік для цієї теми, хоча ...)


"Той факт, що термін" сервер "застосовується до програмного забезпечення перед користувачем, часто дивує користувачів, які звикли, що їх програми є клієнтами послуг на віддалених комп'ютерах. Тут замість віддаленої бази даних, що є ресурсом для локальної програми , графічне відображення та пристрої введення користувача стають ресурсами, доступними локальним сервером X як локальним, так і віддаленим розміщеним X-клієнтським програмам, яким потрібно ділитися графікою та пристроями введення для спілкування з користувачем " (див. wiki )
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.