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

Среди изменений в новом выпуске:

  • В состав включена утилита 'ukify', предназначенная для сборки, проверки и формирования подписей для унифицированных образов ядра (UKI, Unified Kernel Image), объединяющих обработчик для загрузки ядра из UEFI (UEFI boot stub), образ ядра Linux и загружаемое в память системное окружение initrd, применяемое для начальной инициализации на стадии до монтирования корневой ФС. Утилита заменяет собой функциональность, ранее предоставляемую командой 'dracut --uefi', и дополняет её возможностями для автоматического расчёта смещений в PE-файлах, объединения initrd, подписи встраиваемых образов ядра, создания комбинированных образов c 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" для настройки cвойства 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).

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter <<<

  • fornlr
    link
    fedilink
    arrow-up
    0
    ·
    3 years ago

    Я чем дальше лезу в программирование, тем больше радуюсь, что не имею отношения к современной айтишечке.

    По плюсам очень понравилось выступления Полухина на недавней CppSiberia.

    Группы C++ программистов: первая “я старый пердун с c++98 - оставьте меня в покое”. Это примерно про то самое.

    Сам таким был. Исправился. Программист без развития не может.

    Это может сантехникам-сисадминам ворчать про “инструмент сменили, где мой ifconfig!”

    • cryptOP
      link
      fedilink
      arrow-up
      0
      ·
      3 years ago

      Программист без развития не может. Это может сантехникам-сисадминам ворчать

      именно. наша основная задача - предоставлять стабильную платформу для работы других. ОС - это не шняжка, которую нужно переделывать каждые 3 месяца. с современными проблемами ошибок памяти требуются годы, чтобы ее оттестировать. именно поэтому RHEL поддерживают со стабильным ABI по 7 лет.

      но некоторые прогеры типа поттера все перепутали.

    • Oberstserj
      link
      fedilink
      arrow-up
      0
      ·
      3 years ago

      «я старый пердун с c++98 - оставьте меня в покое»

      Меня больше структурно современная айтишечка не устраивает. Иерархичность, чинопочитательство и лизоблюдство (у вас это софт-скиллз называется), отупляющие своей бредовостью стандарты (вроде рер8) и все такое. Не заводит вот. Лучше быдлокодить для себя в уголке чердака. А с развитием как раз проблем нет. Просто развитие должно развивать инструмент и его возможности, а не быть развитием ради развития на бумаге.

      Это может сантехникам-сисадминам ворчать про «инструмент сменили, где мой ifconfig!»

      Давай утрируем ситуацию: в твой офис придет толпа сантехников и заявит, что они не в состоянии поднять упавший сервер, ибо вчера сменилась парадигма и вместо системГ вышла системХ. А времени переучиться не было. Неделя простоя несет убытков 300к/сек. Вопрос, а нахера вообще был хужен системХ, если и системГ делало тоже самое, только надежнее и без жесткой зависимости левого крыла от правого? Что это, если не тупорылое велосипедостроение? Кто кроме майков вообще выиграл от этой ситуации?