(Я переглядаю співвідношення 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 (можливо, офтопік для цієї теми, хоча ...)