След три месеца разработка е налична версия на системния мениджър 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 в юнитите, които могат да се използват за монтиране и демонтиране на всички елементи, определени в конфигурацията „.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» (Разширен достъп), която позволява в графична сесия достъп до GPU за потребители с отдалечен достъп, които физически не използват монитор и входни устройства на локалната система (по аналогия с достъпа uaccess, обхващащ физически работещи с компютъра потребители). За настройване на сесиите в този случай предлага се чрез PAM да се зададе променлива на средата XDG_SESSION_EXTRA_DEVICE_ACCESS.
- За автоматизация на настройката на DeviceTree в UKI-образите (Обединен ядрообраз) е предложен каноничен набор от файлове с идентификатори на оборудване /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» за автоматично назначаване на диапазони от идентификатори на потребители и групи (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’ с възможност за използване на флаговете ‘—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 е активирана новата функционалност на утилитата mkfs.xfs, появила се в xfsprogs 6.17.0, за разгръщане на началното съдържание на файловата система от посочената директория.
- Повишени изисквания за минимални версии: ядро 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.
- Правилата за осигуряване на преносимост и стабилност бяха преработени и опростени, в които се засилиха ангажиментите за недопускане на видими регресии за потребителите в публичните интерфейси.
Източник: opennet.ru
