После трёх месяцев разработки доступен релиз системного менеджера systemd 260. Ключевые изменения: прекращение поддержки скриптов сервисов в формате System V, механизм "mstack" для компоновки многослойных иерархий монтирования, утилита systemd-report, поддержка интеграции systemd-networkd с ModemManager, поддержка пользовательских переносимых сервисов, концепция "xaccess" в systemd-logind и systemd-udevd.
Среди изменений в новом выпуске:
Прекращена поддержка скриптов сервисов в формате System V и прекращена поставка компонентов rc-local.service, systemd-sysv-install, systemd-rc-local-generator и systemd-sysv-generator.
Реализован механизм "mstack" (Mount Stack), позволяющий использовать каталоги с суффиксом ".mstack/" для формирования составной иерархии каталогов, образуемой через последовательное монтирование и наложение дисковых образов и частей ФС при помощи OverlayFS и "mount --bind". Добавлены команда systemd-mstack, опция "--mstack" в systemd-nspawn и параметр RootMStack в unit-ы, которые могут использоваться для монтирования и отмонтирования разом всех элементов, определённых в конфигурации ".mstack", например, для быстрого воссоздания образа контейнера или рабочего окружения сервиса. Каждый файл или подкаталог в ".mstack/" определяет один уровень монтирования или слой "overlayfs".
Например, следующая конфигурация "foobar.mstack/" определяет overlayfs с двумя слоями в режиме только для чтения из дисковых образов base.raw и app.raw (указаны как символические ссылки), и каталогом "rw" с возможностью записи поверх них:
foobar.mstack/[email protected] → ../base.raw
foobar.mstack/[email protected] → ../app.raw
foobar.mstack/rw/Реализованы фреймворки "metrics" и "report", которые могут использоваться системными компонентами для вывода статистики через Varlink в каталоге /run/systemd/report/. Добавлена утилита systemd-report, формирующая сводный отчёт, объединяющий статистику от всех компонентов, и выводящая его в формате JSON. В настоящее время метрики предоставляют только сервисный менеджер и systemd-networkd.
В systemd-networkd обеспечена интеграция с ModemManager и добавлена секция "[MobileNetwork]" с настройками APN, AllowedAuthenticationMechanisms, User, Password, IPFamily, AllowRoaming, PIN, OperatorId, RouteMetric и UseGateway, позволяющими использовать systemd-networkd для подключения через модем к сотовым операторам.
Предоставлена возможность запуска systemd-portabled как пользовательского сервиса, запускаемого непривилегированным пользователем. Для выбора типа сервиса в утилиту portablectl добавлены флаги "--user" и "--system". Переносимые сервисы ("Portable Services") представляют собой системные сервисы, оформленные в виде самодостаточных контейнеров (поставляется в виде системного образа, но обрабатывается как обычный сервис).
В systemd-logind и systemd-udevd добавлена поддержка концепции "xaccess" (Extended Access), позволяющей в графическом сеансе предоставить доступ к GPU для пользователей с удалённым доступом, которые физически не пользуются монитором и устройствами ввода на локальной системе (по аналогии с доступом uaccess, охватывающим физически работающих с компьютером пользователей). Для настройки сеансов в этом случае предлагается через PAM выставлять переменную окружения XDG_SESSION_EXTRA_DEVICE_ACCESS.
- Для автоматизации настройки DeviceTree в UKI-образах (Unified Kernel Image) предложен канонический набор файлов c идентификаторами оборудования /usr/lib/systemd/boot/hwids/, связывающими идентификаторы устройств с элементами DeviceTree. При помощи данного набора UKI-образ автоматически находит и загружает необходимый DTB (Device Tree Blob) во время загрузки без необходимости создания образов, специфичных для каждого устройства. В настоящее hwid-файлы сформированы для ARM64-устройств на базе чипов Snapdragon.
- В /etc/os-release добавлено новое поле "FANCY_NAME", отличающиеся от "PRETTY_NAME" возможностью использования не-ASCII глифов Unicode. При наличии поля "FANCY_NAME" оно будет использоваться в выводе systemd, systemd-hostnamed и hostnamectl вместо "PRETTY_NAME".
- Сервисы, предоставляющие публичные интерфейсы Varlink, при помощи символических ссылок сведены в одном каталоге /run/varlink/registry/. Для просмотра списка подобных сервисов реализована команда 'varlinkctl list-registry'.
- В unit-ах реализована возможность указания в параметре PrivateUsers значения "managed" для автоматического назначения unit-у диапазонов идентификаторов пользователей и групп (UID/GID) через systemd-nsresourced.
- В unit-ы добавлена настройка RefreshOnReload для обновления расширений и учётных данных при перезапуске unit-а.
- В unit-ы добавлена настройка BindNetworkInterface для автоматической привязки всех создаваемых в unit-е сокетов к указанному сетевому интерфейсу.
- В unit-ы добавлены настройки ConditionPathIsSocket и AssertPathIsSocket для изменения поведения или аварийного завершения unit-а, если указанные пути не являются сокетами.
- В systemctl добавлена команда 'enqueue-marked', вызывающая метод D-Bus EnqueueMarkedJobs(). Ранее применяемый для этих целей параметр '--marked' объявлен устаревшим.
- В сервисы добавлена настройка MemoryTHP для управления использованием в сервисах больших страниц памяти (THP - Transparent Huge Pages).
- В .delegate-файлы systemd-resolved добавлена поддержка параметра FirewallMark для выставления в сетевом стеке метки межсетевого экрана ("firewall mark") для генерируемого DNS-трафика.
- В systemd-sysupdate добавлена команда 'acquire' для разделения этапов загрузки и установки или обновления. Реализована поддержка пометки разделов как частично загруженных.
- В systemd-vmspawn добавлена опция "--image-format" для выбора формата (qcow2 или raw) дискового образа.
- В systemd-inhibit для опции "--list" реализована поддержка формата "JSON" c возможностью использования флагов "--what", "--who", "--why" и "--mode" для фильтрации вывода.
- В systemd-repart добавлена базовая поддержка контроля целостности шифрованных разделов, используя dm-integrity.
- В утилиту systemd-keyutil добавлена команда 'extract-certificate' для вывода содержимого сертификатов X.509.
- В systemd-sysext и varlinkctl реализована поддержка интерактивного прохождения авторизации при помощи polkit.
- Добавлена polkit-политика, позволяющая вызвать systemd-ask-password непривилегированным пользователем.
- В systemd-importd добавлена возможность загружать OCI-образы командой "importctl pull-oci", которые сохраняются в форме образов для монтирования через "mstack".
- Добавлена поддержка цветов SYSTEMD_COLORS=auto-16, SYSTEMD_COLORS=auto-256, и SYSTEMD_COLORS=auto-24bit.
- Предоставлены полнофункциональные обособленные исполняемые файлы systemd-sysusers и systemd-tmpfiles (ранее собирались урезанные версии).
- В systemd-oomd добавлен "prekill hook", позволяющий подключать обработчики, срабатывающие перед принудительным завершением процесса из-за нехватки памяти в системе.
- Возобновлена, но помечена устаревшей, возможность использование несистемных пользователей и групп в правилах udev (OWNER=/GROUP=) и настройках systemd-networkd (User=/Group=).
- В systemd-repart задействована появившаяся в xfsprogs 6.17.0 функциональность утилиты mkfs.xfs для развёртывания начального содержимого ФС из указанной директории.
- Повышены требования к минимальным версиям: ядро Linux 5.4 → 5.10 (рекомендовано 5.14, а для полной функциональности - 6.6), libidn → libidn2, Python 3.7.0 → 3.9.0, glibc 2.31 → 2.34, OpenSSL 1.1.0 → 3.0.0, cryptsetup 2.0.1/2.3.0 → 2.4.0, elfutils 158 → 177, libblkid 2.24 → 2.37, libseccomp 2.3.1 → 2.4.0.
- Переработаны и упрощены правила обеспечения переносимости и стабильности, в которых усилены обязательства по недопущению видимых пользователям регрессий в публичных интерфейсах.
Источник: https://www.opennet.ru/opennews/art.shtml?num=65018





