След пет месеца разработка, беше представен релийз на системния мениджър systemd 251.
Основни промени:
- Повишени са системните изисквания. Минималната поддържана версия на ядрото на Linux е увеличена от 3.13 на 4.15. Необходим е таймер CLOCK_BOOTTIME за работа. За компилация е необходим компилатор с поддръжка на стандарт C11 и GNU разширения (за заглавните файлове все още се използва стандарт C89).
- Добавена е експериментална утилита systemd-sysupdate за автоматично определяне, изтегляне и инсталиране на актуализации с използване на атомарен механизъм за замяна на дялове, файлове или директории (използват се два независими дяла/файла/директории, като в един от тях се намира текущият работещ ресурс, а в другия се инсталира следващото обновление, след което дяловете/файловете/директориите се разменят).
- Представена е нова споделена библиотека libsystemd-core-.so, която се инсталира в директорията /usr/lib/systemd/system и съответства на съществуващата библиотека libsystemd-shared-.so. Използването на споделена библиотека libsystemd-core-.so позволява да се намали общият инсталационен размер чрез повторно използване на бинарния код. Номерът на версията може да бъде зададен чрез параметъра ‘shared-lib-tag’ в системата за изграждане meson и позволява на дистрибуции да доставят едновременно няколко версии от тези библиотеки.
- Реализирано е предаване на обработчиците OnFailure/OnSuccess на променливите на средата $MONITOR_SERVICE_RESULT, $MONITOR_EXIT_CODE, $MONITOR_EXIT_STATUS, $MONITOR_INVOCATION_ID и $MONITOR_UNIT с информация за наблюдавания юнит.
- За unit-ите е реализирана настройка ExtensionDirectories, която може да се използва за организиране на зареждането на компоненти за разширение на системата (System Extension) от обикновени директории, а не от образи на дискове. Съдържанието на директорията за разширения на системата се накладва с помощта на OverlayFS и се прилага за разширяване на йерархията на директориите /usr/ и /opt/, и добавяне на допълнителни файлове по време на работа, дори ако указаните директории са монтирани в режим само за четене. В командата ‘portablectl attach —extension=’ също е добавена поддръжка за указване на директория.
- За unit-ите, принудително завършени от обработчика systemd-oomd поради недостатъчна памет в системата, е осигурено предаване на признака ‘oom-kill’ и отразяване в атрибута ‘user.oomd_ooms’ на броя на принудителните завършвания.
- Добавени са нови спецификатори на пътища %y/%Y за unit-ите, отразяващи нормализирания път до unit-а (с разкриване на символични линкове). Също така са добавени спецификатори %q за подмяна на стойността PRETTY_HOSTNAME и %d за подмяна на CREDENTIALS_DIRECTORY.
- В непривилегированите услуги, стартирани от обикновен потребител с флага "--user", е разрешено изменението на настройките RootDirectory, MountAPIVFS, ExtensionDirectories, *Capabilities*, ProtectHome, *Directory, TemporaryFileSystem, PrivateTmp, PrivateDevices, PrivateNetwork, NetworkNamespacePath, PrivateIPC, IPCNamespacePath, PrivateUsers, ProtectClock, ProtectKernelTunables, ProtectKernelModules, ProtectKernelLogs и MountFlags. Възможността е налична само при активиране на пространства за имена за идентификатори на потребители в системата (user namespaces).
- В настройката LoadCredential е разрешено посочването на име на директория като аргумент, при което се предприема опит за зареждане на удостоверенията от всички файлове в посочената директория.
- В systemctl в параметъра "--timestamp" се появи възможността за указване на флага "unix" за показване на времето в епохалния формат (брой секунди от 1 януари 1970 година).
- В "systemctl status" е реализиран флаг "old-kernel", показващ, ако зареденото ядро в сесията има по-стара версия от наличното в системата основно ядро. Също така е добавен флаг "unmerged-usr" за определяне, че съдържанието на директориите /bin/ и /sbin/ не е формирано чрез символични линкове на /usr.
- За стартираните от процес PID 1 генератори са предоставени нови променливи на средата $SYSTEMD_SCOPE (стартиране от системна или потребителска услуга), $SYSTEMD_IN_INITRD (стартиране от initrd или хост среда), $SYSTEMD_FIRST_BOOT (индикатор за първо стартиране), $SYSTEMD_VIRTUALIZATION (наличие на виртуализация или стартиране в контейнер) и $SYSTEMD_ARCHITECTURE (архитектурата, за която е компилирано ядрото).
- В обработвача PID 1 е реализирана възможност за зареждане на параметри на системни удостоверения от QEMU интерфейса fw_cfg или чрез указване в командния ред на ядрото параметъра systemd.set_credential. В директивата LoadCredential е осигурен автоматичен търсене на удостоверения в директориите /etc/credstore/, /run/credstore/ и /usr/lib/credstore/, ако е указан относителен път. Подобно поведение е приложимо и за директивата LoadCredentialEncrypted, при която допълнително се проверяват директорите /etc/credstore.encrypted/, /run/credstore.encrypted/ и /usr/lib/credstore.encrypted/.
- В systemd-journald е стабилизирана възможността за експортиране във формат JSON. В командите „journalctl —list-boots“ и „bootctl list“ е добавена поддръжка за изход във формат JSON (флаг „—json“).
- В udev са добавени нови файлове с бази данни hwdb, съдържащи информация за портативни устройства (ПДА, калкулатори и т.н.) и устройства, използвани при създаване на звук и видео (DJ конзоли, кейпадове).
- В udevadm са добавени нови опции „—prioritized-subsystem“ за задаване на приоритет на следването на системи (използва се в systemd-udev-trigger.service за обработка на блочни устройства и TPM на първо място), „—type=all“, „—initialized-match“ и „—initialized-nomatch“ за избор на инициализирани или неинициализирани устройства, „udevadm info —tree“ за показване на дървото на обектите в йерархията /sys/. В udevadm също така са добавени нови команди „wait“ и „lock“ за изчакване на появата на записа за устройство в БД и блокиране на блочно устройство по време на форматиране или запис на таблицата за раздели.
- Добавен е нов набор от символични връзки за устройства /dev/disk/by-diskseq/ за идентификация на блочни устройства по последователен номер („diskseq“).
- В .link файловете в секцията [Match] е добавена поддръжка на параметъра „Firmware“ за съвпадение на устройство по низ с описание на фърмуера.
- В systemd-networkd за unicast маршрути, конфигурируеми чрез секция [Route], стойността по подразбиране на scope е променена на „link“, за да съответства на поведението на командата „ip route“. В секцията [Bridge] е добавен параметър Isolated=true|false за настройка на едноименния атрибут на мрежовите мостове в ядрото. В секцията [Tunnel] е добавен параметър External за задаване на тунел от тип external (режим за събиране на метаданни). В секцията [DHCPServer] са добавени параметри BootServerName, BootServerAddress и BootFilename за задаване на адреса на сървъра, името на сървъра и името на загрузъчния файл. сървър DHCP при зареждане в режим PXE. В секцията [Network] е премахнат параметър L2TP, вместо него в .netdev файловете може да се изпозлва нова настройка Local, привързана към интерфейса L2TP.
- Добавен е нов юнит „systemd-networkd-wait-online@.service“, който може да се използва за изчакване на активирането на определен мрежов интерфейс.
- Реализирана е възможността за използване на .netdev файлове за създаване на виртуални WLAN устройства, за конфигурирането на които е предложена секция [WLAN].
- В .link и .network файловете в секцията [Match] е реализиран параметър Kind за съвпадение по тип на устройството („bond“, „bridge“, „gre“, „tun“, „veth“).
- Стартирането на systemd-resolved е осигурено на по-ранен етап от зареждането, включително стартиране от initrd, когато systemd-resolved е наличен в образа initrd.
- В systemd-cryptenroll е добавена опция —fido2-credential-algorithm за избор на алгоритъм за криптиране на данни и опция —tpm2-with-pin за управление на въвеждането на PIN код при отключване на дяла с TPM. В /etc/crypttab е добавена аналогична опция tpm2-pin. При отключване на устройства чрез TPM е осигурено криптиране на параметрите за защита от прихващане на криптографските ключове.
- В systemd-timesyncd е добавен D-Bus API за динамично получаване на информация от NTP сървър чрез IPC.
- За определяне на необходимостта от цветен изход за всички команди е реализирана проверка на променливата на средата COLORTERM, в допълнение към преди проверяваните NO_COLOR, SYSTEMD_COLORS и TERM.
- В системата за сглобяване Meson е реализирана опция install_tag за селективно сглобяване и инсталиране на необходимите компоненти: pam, nss, devel (pkg-config), systemd-boot, libsystemd, libudev. Добавена е опция за сглобяване default-compression за избор на алгоритъм за компресия за systemd-journald и systemd-coredump.
- В sd-boot в loader.conf е добавена експериментална настройка „reboot-for-bitlocker“ за зареждане на Microsoft Windows с BitLocker TPM.
Източник: opennet.ru
