Разработчики GNOME OS, экспериментального дистрибутива для разработчиков и тестировщиков GNOME, позволяющего оценить состояние разработки среды рабочего стола, ознакомиться с появляющимися новыми возможностями и протестировать работу своих приложений в находящихся в разработке ветках GNOME, объявили о переходе на использование компонента systemd-sysupdate для организации атомарного обновления системы. Целью изменения является желание адаптировать ночные сборки GNOME OS для проведения ежедневного контроля качества разработки GNOME.
В настоящее время для формирования и обновления начинки корневого раздела GNOME OS задействована система OSTree, при использовании которой системный образ атомарно обновляется из Git-подобного хранилища. Системный раздел монтируется в режиме только для чтения, а обновления доставляются в виде небольших порций, содержащих изменения, относительно прошлого состояния (delta-обновления), что, например, в процессе тестирования GNOME позволяет при необходимости легко откатить систему на одну из предыдущих версий и проверить проявляется ли в ней выявленная ошибка.
Инструментарий systemd-sysupdate поставляется начиная с systemd 251 и предназначен для автоматического определения, загрузки и установки обновлений с использованием атомарного механизма замены разделов, файлов или каталогов. Systemd-sysupdate позволяет использовать два независимых раздела/файла/каталога, на одном из которых находится текущий работающий ресурс, а на другом устанавливается очередное обновление, после чего разделы/файлы/каталоги меняются местами.
Из преимуществ перевода GNOME OS c OSTree на systemd-sysupdate называется возможность задействовать верифицированный процесс загрузки, в котором цепочка доверия распространяется от загрузчика до системных компонентов дистрибутива. Кроме того, использование systemd-sysupdate даст возможность добиться более полной интеграции с systemd и задействовать архитектуру, манипулирующую готовыми системными образами как неделимыми компонентами.
Эксперименты по созданию sysupdate-образов с поддержкой UEFI Secure Boot были проведены ещё осенью прошлого года. По сути сейчас уже доступны два варианта сборок GNOME OS, созданных на базе OSTree и systemd-sysupdate. Остаётся обеспечить интеграцию sysupdate с GNOME и предоставление графического интерфейса для обновления системы.
В настоящее время управление обновлениями на базе sysupdate производится только из командной строки и требует наличия прав root. Для интеграции с GNOME уже разработан сервис D-Bus, которые в сочетании с Polkit, позволяет управлять обновлениями под непривилегированным пользователем. Развиваемый D-Bus-сервис и связанную с ним утилиту updatectl намерены включить в основной состав systemd.
В дальнейшем планируется добавить функциональность управления обновлениями на базе sysupdate в приложение GNOME Software, для которого подготовлен экспериментальный плагин gs-plugin-systemd-sysupdate, реализующий возможность обновления ОС через DBus сервис к sysupdate.
Из ещё нерешённых задач отмечается необходимость добавления в systemd-sysupdate поддержки delta-обновлений (в настоящее время образы загружаются только целиком) и создание инструментов для поддержания параллельно нескольких версий операционной системы на базе стабильной и находящейся в разработке веток GNOME.