След три месеца и половина разработки беше представена версия 253 на системния мениджър systemd.
Сред промените в новото издание:
- Включена утилита ‘ukify’, предназначенная за събиране, проверка и формиране на подписи за унифицираните образи на ядрото (UKI, Unified Kernel Image), които комбинират обработчика за зареждане на ядрото от UEFI (UEFI boot stub), образа на Linux ядрото и зарежданото в паметта системно средище initrd, използвано за първоначална инициализация на етапа преди монтиране на кореновата файлова система. Утилитата заменя функционалността, предоставяна преди от командата ‘dracut —uefi’, и допълва нея с възможности за автоматично изчисляване на измествания в PE файловете, комбиниране на initrd, подписване на вградените образи на ядрото, създаване на комбинирани образи с sbsign, хюристика за определяне на uname на ядрото, проверка на изображението с заставка и добавяне на подписани PCR политики, генерирани от утилитата systemd-measure.
- Добавена е поддръжка на initrd среди, неограничени от паметта, в които вместо tmpfs се използва overlayfs. За подобни среди systemd не изтрива всички файлове в initrd след превключване на кореновата файлова система.
- В услугите е добавен параметър «OpenFile» за отваряне на произволни файлове в файловата система (или свързване към Unix сокети) и предаване на свързаните с тях файлови дескриптори на стартираният процес (например, когато е необходимо да се организира достъп до файл за непривилегирована услуга без промяна на правата за достъп до файла).
- В systemd-cryptenroll при регистрация на нови ключове е реализирана възможността за отключване на криптирани дялове с токени FIDO2 (—unlock-fido2-device) без необходимост от въвеждане на парола. Осигурено е съхранение с сол на зададения от потребителя PIN код за усложняване на определянето чрез методи на груба сила.
- Добавени са настройки ReloadLimitIntervalSec и ReloadLimitBurst, както и опции на командния ред на ядрото (systemd.reload_limit_interval_sec и /systemd.reload_limit_burst) за ограничаване на интензивността на перезапускане на фоновите процеси.
- За unit-ите е реализирана опция «MemoryZSwapMax» за настройка на свойството memory.zswap.max, определящо максималния размер на zswap.
- За unit-ите е реализирана опция «LogFilterPatterns», позволяваща задаване на регулярни изрази за филтриране на информацията, изведена в логовете (може да се използва за изключване на определен изход или запазване само на определени данни).
- В scope-юнитите е реализирана поддръжка на настройката «OOMPolicy» за задаване на поведението при опити за изтласкване при недостиг на памет (за входните сесии е зададена стойност OOMPolicy=continue, за да не бъде принудително прекратяван от OOM killer).
- Определен е нов тип услуги — «Type=notify-reload», който разширява типа «Type=notify» с възможността да изчаква завършването на обработката на сигнала за рестарт (SIGHUP). На новия тип са преминали услугите systemd-networkd.service, systemd-udevd.service и systemd-logind.
- В udev е въведена нова схема на именуване на мрежови устройства, при която за не свързани с шина PCI USB устройства сега е зададен ID_NET_NAME_PATH, за да се осигури по-голяма предсказуемост на имената. За променливите SYMLINK е реализиран оператор ‘-=’, който оставя символичните връзки без настройка, ако преди това е било определено правило за тяхното добавяне.
- В systemd-boot е преработена предаването на предшественика за генератори на псевдослучайни числа в ядрото и за дисковия бекенд. Добавена е поддръжка за зареждане на ядрото не само от ESP (EFI System Partition), например, от фърмуер или директно за QEMU. Осигурено е разбиране на параметрите SMBIOS за определяне на стартиране в виртуализирана среда. Реализиран е нов режим ‘if-safe’, при който сертификатът за UEFI Secure Boot се зарежда от ESP само ако се счита за безопасен (стартира се в виртуална машина).
- В утилитата bootctl е реализирана генерацията на системни токени на всички системи EFI, с изключение на виртуализирани среди. Добавени са командите ‘kernel-identify’ и ‘kernel-inspect’ за показване на типа ядрено изображение и информация за опции за команден ред и версия на ядрото, ‘unlink’ за изтриване на файла, свързан с тип първия тип на зареждане, ‘cleanup’ за изтриване на всички файлове от директорията ‘entry-token’ в ESP и XBOOTLDR, които не са свързани с първия тип на зареждане. Осигурена е обработка на променливата KERNEL_INSTALL_CONF_ROOT.
- В командата ‘systemctl list-dependencies’ е осигурена обработка на опции «—type» и «—state», а в командата ‘systemctl kexec’ е добавена поддръжка за среди, базирани на хипервизор Xen.
- В файловете .network в секцията [DHCPv4] е добавена поддръжка за опции SocketPriority и QuickAck, RouteMetric=high|medium|low.
- В systemd-repart са добавени опции «—include-partitions», «—exclude-partitions» и «—defer-partitions» за филтриране на дяловете по тип UUID, което, например, позволява събиране на образи, в които един дял е построен на базата на съдържанието на друг дял. Добавена е и опция «—sector-size» за указване на размера на сектори, използвани при създаването на дялове. Добавена е поддръжка за генериране на файлови системи erofs. В настройките Minimize е реализирана обработка на стойността «best» за избор на минимално възможния размер на изображението.
- В systemd-journal-remote е разрешено използването на настройки MaxUse, KeepFree, MaxFileSize и MaxFiles за ограничаване на потреблението на дисково пространство.
- В systemd-cryptsetup е добавена поддръжка за изпращане на предварителни заявки към токени FIDO2 за определяне на наличността им преди автентикация.
- В crypttab са добавени нови параметри tpm2-measure-bank и tpm2-measure-pcr.
- В systemd-gpt-auto-generator е реализирано монтиране на дяловете ESP и XBOOTLDR в режимите «noexec,nosuid,nodev», а също така е добавено отчитане на параметрите rootfstype и rootflags, предадени чрез командния ред на ядрото.
- В systemd-resolved е предоставена възможност за настройка на параметрите на резолвера чрез указване на опции nameserver, domain, network.dns и network.search_domains в командния ред на ядрото.
- В командата «systemd-analyze plot» се появи възможност за извеждане в JSON формат при указване на флага «—json». За управление на извода също така са добавени нови опции «—table» и «—no-legend».
- През 2023 година се планира прекратяване на поддръжката на cgroups v1 и отделни йерархии на директории (когато /usr е монтирано отделно от корена или когато директориите /bin и /usr/bin, /lib и /usr/lib са разделени).
Източник: opennet.ru
