В последнее время наблюдается рост популярности неизменяемых (immutable) дистрибутивов Linux и многие популярные дистрибутивы создают свои неизменяемые версии. Как предсказывалось, это может стать одним из трендов 2023 года. Хотя многие из этих неизменяемых дистрибутивов ориентированы на использование серверов, некоторые из них предлагают рабочий стол. OpenSUSE MicroOS Desktop - один из таких дистрибутивов, основанный на минимальной системе openSUSE Tumbleweed, приложения работают на базе Flatpak или в контейнерах. В повседневном использовании он напоминает обычный рабочий стол openSUSE. Главное преимущество - доступность новейших версий программного обеспечения без жертвования стабильностью системы.
Пользователи Linux, которые хотят следить за последними обновлениями программного обеспечения, обычно выбирают дистрибутивы с прокатным выпуском, такие как Tumbleweed, Arch Linux или Gentoo Linux. Однако это может повлечь риск несовместимости между версиями программного обеспечения или привести к нестабильной системе. С другой стороны, стабильные или долгосрочные дистрибутивы (LTS) ориентированы на пользователей, которые отдают предпочтение стабильности перед передовым программным обеспечением.
Конечно же, многие пользователи хотят получить лучшее из обоих миров: последние версии программного обеспечения на стабильной базовой операционной системе. Существуют решения, которые обычно обходят систему управления пакетами дистрибутива. Flatpak, Snap и AppImage являются ведущими технологиями для этой цели. Приложения упаковываются вместе с их зависимостями, предотвращая взаимное влияние друг на друга или на базовый дистрибутив. Таким образом, пользователи могут запускать обновленное программное обеспечение без проблем с зависимостями или жертвования стабильностью системы.
MicroOS на рабочем столе
Приняв этот концепт в крайних случаях, получаем небольшую «неизменяемую» базовую операционную систему, в которой как можно больше программного обеспечения упаковано в изолированные пакеты. Затем операционная система выполняет единственную задачу, такую как работа в качестве хоста контейнеров или предоставление минимальной рабочей среды. Все дополнительное программное обеспечение должно быть контейнеризировано или изолировано в «песочнице». Такой подход может быть реализован как на серверных, так и на настольных операционных системах. Для настольных компьютеров существуют Fedora Silverblue (с GNOME) и Fedora Kinoite (с KDE Plasma), основанный на Ubuntu (скоро на Debian) Vanilla OS, основанный на Debian Endless OS и openSUSE MicroOS Desktop.
Традиционные дистрибутивы для настольных компьютеров предлагают базовую операционную систему, рабочую среду и приложения. В отличие от них, openSUSE MicroOS Desktop представляет собой операционную систему с единой целью, предлагающую базовую операционную систему и рабочую среду. Установщик образа MicroOS ISO такой же, как и в обычной версии openSUSE для рабочих столов, но разница заключается в ролях системы, которые пользователь может выбрать.
Для рабочего стола существуют две роли системы: одна с GNOME, обозначенная как кандидат на выпуск, и другая с KDE Plasma, обозначенная как альфа-версия (см. изображение ниже). Обе устанавливают MicroOS Desktop с автоматическим обновлением и функцией отката, и они включают движок контейнеров Podman по умолчанию. Установщик создает корневую файловую систему Btrfs для операционной системы, рабочего стола и других инструментов, которая монтируется только для чтения после загрузки.
Запуск неизменяемого рабочего стола
Первый запуск MicroOS Desktop требует стандартной конфигурации после установки, такой как выбор языка, выбор часового пояса и настройка онлайн-аккаунтов для GNOME. Отличие состоит в том, что за этим следует автоматическая установка приложений, таких как Firefox, калькулятор и текстовый редактор. В результате получается минимальная, базовая рабочая среда.
Все приложения рабочего стола в MicroOS Desktop устанавливаются как Flatpaks в каталоге пользователя и автоматически обновляются. В версии GNOME это делается с помощью программы GNOME Software, которая обычно используется для установки приложений с помощью пакетного менеджера операционной системы. Однако в MicroOS Desktop он настроен только на установку Flatpaks из Flathub и размещение их в ~/.local/share/flatpak. Таким образом, установка пакетов с помощью GNOME Software не затрагивает базовую операционную систему. Точно так же версия KDE Plasma MicroOS Desktop устанавливает приложения в качестве Flatpaks с помощью Discover.
В повседневном использовании MicroOS Desktop выглядит очень похожим на обычную систему рабочего стола openSUSE. Базовая ОС и рабочий стол на самом деле построены на тех же пакетах RPM, что и openSUSE Tumbleweed, поэтому это не должно удивлять. Для установки и управления расширениями GNOME Shell включен Менеджер расширений. Однако MicroOS по умолчанию поставляется только с базовыми инструментами настройки, такими как GNOME Settings и GNOME Tweaks.
Обновления системы выполняются автоматически каждый день. Это реализовано в виде таймера systemd, который запускает команду transactional-update - обертку вокруг пакетного менеджера zypper. Он создает новый снимок файловой системы Btrfs и затем выполняет обновление этой системы. Если установка обновлений прошла успешно, сценарий отмечает новый снимок как снимок по умолчанию для следующей загрузки системы. В случае ошибок снимок отклоняется, и предыдущий остается снимком по умолчанию.
После перезагрузки активируется новый снимок; если система обнаруживает проблему во время перезагрузки, она автоматически откатывается к предыдущему снимку по умолчанию. Пользователи также могут выполнить откат вручную с помощью команды transactional-update rollback. Вся процедура транзакционных обновлений объясняется в документации openSUSE.
Выход из мира Flatpak
Количество доступных Flatpaks все еще ограничено по сравнению с тем, что находится в традиционных репозиториях дистрибутивов. В настоящее время подсчет записей в команде flatpak remote-ls на MicroOS Desktop показывает немного больше 3 600 Flatpaks на Flathub. Так что неизбежно наступает время, когда пользователю потребуется программное обеспечение, которое недоступно в виде Flatpak. Но и для этого MicroOS Desktop предлагает решение: в стандартной установке поставляется Distrobox. Distrobox использует Podman для создания контейнеров, которые тесно интегрированы с хостом, совместно используя домашний каталог пользователя, внешнее хранилище, USB-устройства и графические приложения.
Таким образом, если пользователь не может найти определенное программное обеспечение в виде Flatpak, простая команда distrobox-enter в терминале создает (или входит, если контейнер уже создан) контейнер с Tumbleweed. В этом контейнере все пакеты RPM, доступные в репозиториях openSUSE, могут быть установлены с помощью команды zypper. В настоящее время доступно более 75 000 пакетов. На изображении ниже показан контейнер Distrobox, работающий с Tumbleweed и опрашивающий количество доступных пакетов, наряду с программой GNOME Software, работающей на хосте и отображающей доступные Flatpaks с Flathub.
Distrobox также может экспортировать приложение из контейнера на хост. Это создает файл .desktop, чтобы приложение отображалось в действиях GNOME. Если пользователь нажимает на значок, это запускает контейнер Distrobox в фоновом режиме и открывает окно приложения на рабочем столе хоста. Приложение просто выглядит как обычное приложение рабочего стола хоста. Командные приложения могут быть экспортированы также, например, в каталог ~/bin пользователя. Если пользователь запускает этот сценарий, он выполняет приложение в контейнере. Другой способ тоже работает: distrobox-host-exec позволяет пользователю выполнить команду на хосте из контейнера.
Крайний вариант, для программного обеспечения, которое невозможно установить даже с помощью Distrobox, - установить пакеты RPM на хосте с использованием команды transactional-update, которая устанавливает программное обеспечение после создания снимка; для использования нового программного обеспечения требуется перезагрузка, чтобы сделать новый снимок активным. Однако это рекомендуется только для драйверов, модулей ядра, клиентов виртуальных частных сетей (VPN) и других низкоуровневых пакетов, которые должны тесно интегрироваться с операционной системой, поскольку каждый дополнительный пакет в хосте увеличивает риск нестабильности. Вики-страница MicroOS Desktop содержит некоторые советы по использованию transactional-update.
Новейшие разработки
OpenSUSE MicroOS связан с Adaptable Linux Platform (ALP) - минимальной, неизменяемой операционной системой, которая, по-видимому, станет следующим поколением корпоративного дистрибутива Linux от SUSE. Пользователям openSUSE предлагается опробовать MicroOS Desktop, чтобы увидеть, как работа с неизменяемым рабочим столом вписывается в их рабочие процессы, и предоставить отзывы для проекта ALP.
SUSE известен своим мощным инструментом конфигурации, YaST, который способен обрабатывать все виды задач администрирования системы. Долгосрочные пользователи openSUSE будут скучать по нему в конфигурации MicroOS Desktop, хотя он используется для установки дистрибутива. В блоге YaST отмечается, что некоторые части YaST нуждаются в адаптации для лучшего администрирования транзакционных систем, таких как MicroOS. Но, с другой стороны, минимальная система, вероятно, не должна нуждаться в слишком сложном администрировании.
Полное шифрование диска в настоящее время не поддерживается в MicroOS Desktop. Пользователи могут настроить свои разделы в установщике, но это может привести к нарушенной конфигурации. На Reddit Ричард Браун, инженер по выпуску MicroOS и основной разработчик MicroOS Desktop, заявил, что полное шифрование диска можно ожидать, когда MicroOS Desktop прекратит использовать YaST для своей установки. Следует отметить, что Браун переходит на другую должность архитектора дистрибутивов в SUSE в апреле.
У MicroOS также отсутствует брандмауэр. По словам Брауна, это преднамеренное решение, потому что брандмауэры вызывают проблемы с контейнерами. Он также говорит, что это не принесет реальных преимуществ, «поскольку вы должны запускать свои рабочие нагрузки в контейнерах, и настройка портов/открытие/перенаправление является основной частью конфигурации контейнера». Пользователи все равно могут установить firewalld, но по умолчанию он не будет установлен, «пока он не будет хорошо работать с инструментами для работы с контейнерами».
Браун также работает над решением для разработчиков, которые хотят иметь полностью настраиваемую рабочую среду на основе неизменяемой операционной системы. Его проект Greybeard будет основан на MicroOS Desktop с использованием композитора Wayland и тайлового оконного менеджера Sway. Пока это не официальный проект openSUSE, и Браун считает его примером проекта для разработчиков, желающих создать собственные производные от openSUSE MicroOS или MicroOS Desktop.
Для пользователей, которые любят ковыряться в настройках, openSUSE MicroOS Desktop не сможет полностью заменить обычный рабочий стол openSUSE, поскольку возможности настройки рабочего стола довольно ограничены. Однако в определенных условиях неизменяемый рабочий стол openSUSE вполне используем. Это может быть идеальной операционной системой для тех, кто привык к работе мобильных операционных систем. На Chromebook, iOS или Android операционная система сама по себе также не настраивается. Пользователи обновляют свою операционную систему с помощью обновлений системы на основе образов и устанавливают изолированные приложения. OpenSUSE MicroOS Desktop предлагает такой же подход для рабочего стола Linux.
>>> Подробности