Доступен системный менеджер systemd 260

После трёх месяцев разработки доступен релиз системного менеджера 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/layer@0.raw → ../base.raw
        foobar.mstack/layer@1.raw → ../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.½.3.0 → 2.4.0, elfutils 158 → 177, libblkid 2.24 → 2.37, libseccomp 2.3.1 → 2.4.0.

  • Переработаны и упрощены правила обеспечения переносимости и стабильности, в которых усилены обязательства по недопущению видимых пользователям регрессий в публичных интерфейсах.



Источник: http://www.opennet.ru/opennews/art.shtml? num=65018

© OpenNet