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

Після п'яти місяців розробки представлений реліз системного менеджера 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' числа примусових завершень.
  • Для unit-ів додані нові специфікатори шляхів %y/%Y, що відбивають нормалізований шлях до юніту (з розкриттям символічних посилань). Також додані специфікатори %q для встановлення значення PRETTY_HOSTNAME і %d для встановлення CREDENTIALS_DIRECTORY.
  • У непривілейованих сервісах, що запускаються звичайним користувачем з використанням прапора «-user», дозволено зміну налаштувань RootDirectory, MountAPIVFS, ExtensionDirectories, Capabilities, ProtectHome, Directory, TemporaryFileSystem, PrivateTmp, PrivateDevices, PrivateNetwork, 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 ) та $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

Додати коментар або відгук