Выпуск системного менеджера systemd 251

После пяти месяцев разработки представлен релиз системного менеджера systemd 251.

Основные изменения:

  • Повышены системные требования. Минимальная поддерживаемая версия ядра Linux увеличена с 3.13 до 4.15. Для работы требуется наличие таймера CLOCK_BOOTTIME. Для сборки необходим компилятор с поддержкой стандарта C11 и расширений GNU (для заголовочных файлов продолжает использоваться стандарт C89).

  • Представлена новая внутренняя разделяемая библиотека libsystemd-core-‹version›.so, которая устанавливается в каталог /usr/lib/systemd/system и соответствует существующей библиотеке libsystemd-shared-‹version›.so. Использование разделяемой библиотеки libsystemd-core-‹version›.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' числа принудительных завершений.
  • Для unit-ов добавлены новые спецификаторы путей %y/%Y, отражающие нормализованный путь к юниту (с раскрытием символических ссылок). Также добавлены спецификаторы %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/‹nr› для идентификации блочных устройств по порядковому номеру («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@‹interface›.service, который можно использовать для ожидания поднятия определённого сетевого интерфейса.

  • Реализована возможность использования файлов .netdev для создания виртуальных устройств WLAN для настройки которых предложена секция [WLAN].

  • В файлах .link/.network в секции [Match] реализован параметр Kind для сопоставления по типу устройства («bond», «bridge», «gre», «tun», «veth»).

  • Обеспечен запуск systemd-resolved на более раннем этапе загрузки, в том числе запуска в initrd при наличии в образе 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.

  • Добавлена экспериментальная утилита systemd-sysupdate для автоматического определения, загрузки и установки обновлений с использованием атомарного механизма замены разделов (используются два независимых раздела/образа, на одном из которых находится текущая работающая система, а на другое устанавливается очередное обновление, после чего разделы меняются местами).



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

© OpenNet