
Итак, я слышал следующие термины, насколько я помню. Попытка найти источник, который описывает их и их связь друг с другом, просто не существует. И это, мягко говоря, сбивает с толку.
Может ли кто-нибудь объяснить мне, как это делают пятилетние дети, следующие термины и то, как они связаны или соотносятся друг с другом:
- Гном
- КДЕ
- Единство
- Xorg
- х11
- х сервер
- стартx
- Пантеон
- ГТК
- КТ
- Оконный менеджер
решение1
Gnome, KDE, Unity, Пантеон
Gnome, KDE, Unity, Pantheon — это среды рабочего стола.
Среда рабочего стола состоит из множества различных инструментов. например: менеджер входа в систему, менеджер окон, средство запуска приложений, меню, эмулятор терминала, файловый менеджер, веб-браузер, редактор, графические инструменты для настройки системы и множество других утилит. Это полный пакет всего, что вам нужно.
Изображение изреддит:
ГТК и QT
GTK и QT — это наборы инструментов/фреймворки для разработки программного обеспечения, например: многие инструменты, разработанные для среды рабочего стола Gnome, используют GTK для создания своего графического интерфейса. Вместо того, чтобы писать все самому, я использую их для ускорения разработки и в то же время использую и следую стандартному фреймворку, который используют все другие программы в той же среде.
X, X11 и Xorg
X — это фреймворк, мы даже можем ссылаться на него как на протокол, X11 — последняя версия этого протокола, а Xorg (сервер Xorg: X использует структуру клиент-сервер) — это реализация x11, это как HTTP и браузеры, HTTP — это протокол, HTTP2 — последняя версия, и веб-браузеры, которые используют этот протокол для взаимодействия с веб-серверами, каким-то образом его реализовали.
Из Википедии:
X обеспечивает базовую структуру для среды графического интерфейса: рисование и перемещение окон на устройстве отображения, а также взаимодействие с мышью и клавиатурой.
Он просто позволяет нам рисовать и показывать вещи, а также содержит множество необходимых драйверов.
Однако даже X нуждается в оконном менеджере для использования своих возможностей. На рисунке ниже вы видите twm
оконный менеджер и xterm
другие компоненты, запускающие сеанс X. Для получения дополнительной информации об оконных менеджерах прочитайте последний раздел.
стартx
startx
это скрипт для запуска графической среды, он инициализирует X-сессию.
Оконные менеджеры
Менеджеры окон в основном являются частью среды рабочего стола, вы даже можете использовать их вместо использования полной среды рабочего стола. Существует множество доступных менеджеров окон, таких как: i3wm, awesome, openbox, fluxbox, blackbox, xfwm4, compiz и т. д.
Они контролируют, как ведут себя наши окна, как они выглядят, какие элементы у них есть, где должны отображаться мой заголовок и кнопки по умолчанию, что произойдет, если я перетащу/изменю размер/закрою его и т. д. Для достижения этих целей оконные менеджеры используют серверы отображения, такие как X или Wayland.
Фотографии взяты из Википедии.
решение2
Объяснение ELI5:
- Xorg,x11,x сервер - все одно и то же. По сути, это гигантское ПО, которое делает возможным GUI. X сервер не запущен => GUI отсутствует.
- Менеджер окон — вот что делает Windows красивыми. X-сервер дает вам все необходимое.
startx
это команда. В старые времена именно так вызывался графический интерфейс.- Gnome, KDE, Unity, Pantheon — все это графические оболочки. В то время как X-сервер предоставляет вам простой графический интерфейс, графические оболочки придают приложениям определенный вид и определенное поведение (например, Alt+ Tab). Работают вместе с оконными менеджерами. Часто поставляются в комплекте с дополнительным программным обеспечением, таким как текстовые редакторы, веб-браузеры и т. д. Следует сделать поправку относительно Unity — это на самом деле просто плагин для оконного менеджера Compiz, что становится очевидным, когда Unity падает, и вы остаетесь с простым рабочим столом без лаунчера или верхней панели.
- GTK, QT — графические наборы инструментов. По сути, «язык» программирования GUI. Точнее, это «библиотеки», и большинство распространенных языков на Linux Desktop, таких как Python или C++, используют эти библиотеки для создания приложений GUI.