30.06.2022

Первый выпуск атомарно обновляемого дистрибутива carbonOS

Представлен первый выпуск пользовательского Linux-дистрибутива carbonOS, построенного с использованием модели атомарной компоновки системы, при которой базовое окружение поставляется как единое целое, не разбитое на отдельные пакеты. Дополнительные приложения устанавливаются в формате Flatpak и запускаются в изолированных контейнерах. Размер установочного образа 1.7 ГБ. Наработки проекта распространяются под лицензией MIT.

Содержимое базовой системы монтируется в режиме только для чтения для защиты от модификации в случае компрометации (дополнительно в будущем планируют встроить возможность шифрования данных и верификации целостности файлов по цифровым подписям). Раздел /usr/local доступен для записи. Процесс обновления системы сводится к фоновой загрузке нового системного образа и переключения на него после перезапуска. При этом старый системный образ сохраняется и при желании или возникновении проблем пользователь в любой момент может вернуться на прошлую версию. В процессе разработки дистрибутива начинка системного окружения собирается при помощи инструментария OSTree (образ формируется из Git-подобного хранилища) и сборочной системы BuildStream, без использования пакетов от других дистрибутивов.

Установленные пользователем приложения изолируются друг от друга в контейнерах. Кроме установки пакетов Flatpak дистрибутив также позволяет использовать инструментарий nsbox для создания произвольных контейнеров, в которых в том числе могут размещаться окружения традиционных дистрибутивов, таких как Arch Linux и Debian. Также предоставляется поддержка инструментария podman, обеспечивающего совместимость с контейнерами Docker. Для установки дистрибутива предлагается графический инсталлятор и интерфейс первоначальной настройки системы.

В качестве файловой системы применяется Btrfs с включением сжатия сохраняемых данных и активным применением снапшотов. Для обработки ситуаций нехватки памяти в системе задействован systemd-oomd, а вместо отдельного раздела подкачки применяется технология swap-on-zram, позволяющая хранить подлежащие вытеснению страницы памяти в сжатом виде. В дистрибутиве реализован централизованный механизм управления полномочий на базе Polkit — sudo не поддерживается и единственным способом выполнения команд с правами root является pkexec.

Проектом развивается собственное пользовательское окружение GDE (Graphite Desktop Environment), основанное на GNOME 42 и включающие приложения из поставки GNOME. Среди отличий от GNOME: модернизированные экран входа в систему, конфигуратор, индикаторы громкости и яркости, панель и оболочка Graphite Shell. Для управления установкой системных обновлений применяется менеджер приложений на основе GNOME Software. Для обработки мультимедийных потоков используется PipeWire. Предоставляется встроенная поддержка разнообразных мультимедийных кодеков.

Источник.