Итак, в настоящее время я изучаю операционные системы из интереса и прочитал довольно много статей и руководств по созданию собственных, я обнаружил, что Linux и то, как можно создать свою собственную систему с нуля, меня не привлекает. Поэтому я обнаружил, что можно получить готовые ОС Linux, когда вы можете настроить себя, однако после более глубокого изучения оказалось, что это не то, что я ищу.
Я хочу иметь возможность настраивать ту часть ОС, с которой взаимодействует пользователь (приложение?), например, панель задач (в Windows), кнопку «Пуск», рабочий стол и т. д., поскольку меня не интересует изменение способа загрузки файлов и обработки приложений, но с чего мне начать?
- Кроме того, я не собираюсь создавать тему, которая будет иметь просто несколько красивых цветных кнопок, я хочу изучить основы и, возможно, воссоздать способ ее отображения.
Было бы неплохо указать верное направление и узнать все, чему мне, возможно, придется научиться по пути.
(У меня нет знаний в области операционных систем, но есть знания в нескольких более сложных языках программирования)
решение1
Для Linux доступно несколько различных графических пользовательских сред, например:ГНОМ,КДЕилиXfceсреды рабочего стола. Такие среды рабочего стола включают панельное приложение, напримерПанель GNOMEилиKDE Кикер. Эти приложения предоставляют панель задач и средство запуска приложений (эквивалент кнопки «Пуск» Windows). Окружение рабочего стола также включаетоконный менеджер, часть программного обеспечения, которая управляет размещением и внешним видом окон приложений. Внешний вид всех этих окон можно настроить с помощьюдругой видыизтемы.
Если вы хотите настроить поведение графической пользовательской среды, вы также можете взглянуть на некоторыеразные оконные менеджеры, которые бывают самых разных форм и размеров.
Большинство дистрибутивов Linux поставляются с одной из упомянутых выше сред рабочего стола, но обычно предоставляют другие графические пользовательские среды для установки через своисистемы управления пакетами. Даже если вам не нравится среда по умолчанию, с которой поставляется дистрибутив, вы все равно можете захотеть использовать дистрибутив, а не настраивать графическую пользовательскую среду по вашему выбору с нуля, что обычно является совсем непростым делом.
Под средой рабочего стола большинство настольных систем Linux имеют реализациюX-Window-система, которая является инфраструктурой системного уровня для графического пользовательского интерфейса. Каноническая реализация X — этоX.org сервер отображения, который в настоящее время используется большинством настольных дистрибутивов Linux.
Уэйландэто перспективный протокол сервера отображения, который призван заменить X Window System. Эталонная реализациякомпозитный оконный менеджерибо Вейланд называетсяВестон. Проекты GNOME и KDE объявили, что они реализуют поддержку Wayland, но в настоящее время это не жизнеспособная альтернатива для настольных ПК, хотя она используется некоторыми Linux-ориентированнымиИнформационно-развлекательная система в автомобиле(ИВИ) системы.
решение2
Я хочу иметь возможность настраивать ту часть ОС, с которой взаимодействует пользователь (приложение?), например, панель задач (в Windows), кнопку «Пуск», рабочий стол и т. д., поскольку меня не интересует изменение способа загрузки файлов и обработки приложений, но с чего мне начать?
Я тоже очень требователен к своему рабочему столу. GNU/Linux имеет потенциал быть гораздо более гибким в этом плане, чем Windows или OSX, благодаря модульной конструкции, но чтобы получить от него максимум, нужно понимать, как они сочетаются друг с другом.
Помимо ядра, в обычный графический интерфейс Linux входят три уровня:
Сервер Xorg; он универсален — насколько мне известно, альтернативы ему нет (не считая Уэйланда, см. ответ Томаса Наймана). Он называется сервером, потому что так оно и есть; приложения с графическим интерфейсом являются клиентами сервера. Xorg (ранее X11, также известный как «X Windowing System») появился примерно в то же время, что и первые графические интерфейсы MS и Apple. 1 Хотя вы можете использовать его сам по себе, то, что он предоставляет, очень примитивно с точки зрения пользователя. Однако важно знать и понимать, что это отдельная сущность, вроде двигателя в автомобиле. Сам по себе двигатель не приносит большой пользы большинству людей, но, конечно, автомобиль без двигателя тоже бесполезен.
Менеджер окон, сокращенно WM. В то время как X предоставляет основные возможности для создания окон, WM добавляет такие вещи, как заголовки, рамки и отдельно стоящие меню. Некоторые менеджеры окон разработаны исключительно для интеграции с #3 ниже, однако многие из них можно использовать и отдельно. Поскольку WM отвечает за поведение и внешний вид окна, хороший автономный WM может предоставить вам все необходимое — имея в виду, что такие вещи, как панели задач, на самом деле являются особыми формами «окна», и некоторые WM могут настраивать и создавать их экземпляры. Кроме того, панели задач и доки часто являются независимыми приложениями, которые можно запускать в WM без необходимости #3. Я настоятельно рекомендую попробовать это в какой-то момент, но я думаю, что это может быть немного запутанным для новых пользователей.
Среда рабочего стола, сокращенно DE. DE построены поверх WM и часто позволяют вам выбирать, какой WM использовать, хотя изначально вам следует придерживаться стандартного. Во многих отношениях DE на самом деле является графическим интерфейсом пользователя для WM; WM обычно настраиваются с помощью текстовых файлов, а DE предоставляет интерфейс «укажи и щелкни». Обычно они также включают интегрированный набор приложений, центральным элементом которого является файловый браузер. Однако этим приложениям часто не нужен DE (например, мое любимое терминальное приложение — XFCE Terminal, но я не использую XFCE). Панели задач, как уже упоминалось, также могут быть примером этого. Так что здесь есть большой потенциал для смешивания и сопоставления.
Я не эксперт по состоянию основных DE, поэтому не могу точно сказать, насколько они все гибкие в конфигурации WRT. Традиционно гибкость больше характерна для WM — DE в конечном итоге ограничивает ее, чтобы соответствовать своему особому видению. Однако (вас предупредили!) по-настоящему динамичный автономный WM обычно требует много работы с текстовыми файлами, сопоставимой по сложности со сложностью HTML/CSS — сделать что-то базовое несложно, но получить именно то, что вам нужно, легко, требует некоторого опыта.
Если вы не против записи нескольких CD, я бы сделал несколько Live CD, которые используют разные DE — Gnome, KDE, XFCE и т. д. — а затем посмотрел бы, сможете ли вы придумать, как заставить их выглядеть так, как вы хотите, за короткий промежуток времени. Это может и не произойти, но это должно дать вам представление о том, с каким вариантом вам больше нравится работать. Игнорируйте темы и цвета на этом этапе и сосредоточьтесь на функции.
В настоящее время я использую KDE в качестве основной среды. Как уже упоминалось, я очень разборчив, а он очень настраиваемый. Я давно не смотрел на GNOME и не знаю, как он с ним сравнится, в плане настраиваемости, но я думаю, что это два больших кандидата на гибкость в категории DE.
Последнее, что следует упомянуть, этонабор виджетов, который является своего рода слоем, похожим на 1,2,3 выше (но не совсем). 2 Набор виджетов определяет внешний вид общих элементов внутри рамки окна (кнопок, полос прокрутки и т. д.), поэтому существуютДВАотдельные, независимые формы "темы" в игре с внешним видом GUI: тема набора виджетов (внутри рамки) и тема WM (рамка, заголовок). Наиболее распространенный набор виджетов в Linux - GTK, который был разработан совместно с GNOME, но используется и другими DE. Значительным исключением из этого является KDE, который использует Qt, кроссплатформенный инструментарий.
1 Да, это старше, чем Linux. X используется во всем «unix-подобном» мире.
2 «Набор виджетов» — термин несколько расплывчатый, поскольку Qt и GTK (+glib) делают гораздо больше, чем просто предоставляют виджеты, но на данный момент этого достаточно.