LINUX.ORG.RU

systemd 255

 ,


0

2

Вышла новая версия свободного системного менеджера systemd.

Изменения, нарушающие обратную совместимость:

  • Теперь монтирование отдельного раздела /usr/ поддерживается только на этапе initramfs.

  • Опции SuspendMode=, HibernateState= и HybridSleepState= из секции [Sleep] в systemd-sleep.conf объявлены устаревшими и не оказывают влияния на поведение системы.

Изменения в работе супервизора:

  • Теперь инициализация демонов выполняется при помощи posix_spawn() вместо комбинации fork() и exec(); пулл-реквест #27890.

  • Теперь systemd использует файловые дескрипторы PIDFD для слежения за дочерними процессами; это упрощает логику работы супервизора; пулл-реквест #29142, #29594, #29455.

  • Новая опция SurviveFinalKillSignal= позволяет демону избежать остановки при использовании механизма soft-reboot; пулл-реквест #28545.

  • Теперь юниты поддерживают опции MemoryPeak=, MemorySwapPeak=, MemorySwapCurrent= и MemoryZSwapCurrent=; эти опции соответствуют параметрам memory.peak, memory.swap.peak, memory.swap.current и memory.zswap.current properties из cgroups v2.

  • Новая опция ConditionSecurity= позволяет указать systemd, что сервис следует запустить только в том случае, если система была загружена с проверенным образом UKI.

Поддержка TPM2:

  • Теперь systemd-cryptenroll позволяет указать конкретный PCR слот и хеш.

  • systemd-cryptenroll позволяет указать индекс ключа; пулл-реквест #29427.

  • Появилась возможность привязать LUKS-том к кокнретному чипу TPM2, не имея к нему доступ, если известен публичный ключ.

  • Бинарник systemd-cryptsetup перемещен в /usr/bin/ и может быть использован вне systemd.

  • Внутренний компонент systemd-pcrphase переименован в systemd-pcrextend.

  • Новый компонент, systemd-pcrlock, позволяет предсказывать записи PCR на основе имеющейся информации о системе; пулл-реквест #28891.

systemd-boot, systemd-stub, ukify, bootctl, kernel-install:

  • bootctl теперь позволяет определить, была ли система загружена с uki.

  • systemd-boot поддерживает горячие клавиши для выключения и перезагрузки системы.

  • systemd-boot больше не загружает непроверенные блобы Devicetree, если включен SecureBoot .

  • systemd-boot и systemd-stub теперь имеют разные индетификаторы в секции .sbat, и UEFI может вызывать их независимо; пулл-реквест #29196.

  • Компонент ukify больше не является экспериментальным; исполняемый файл теперь находится в /usr/bin/.

systemd-networkd:

  • Добавлена поддержка технологии Rapid Commit.

  • dbus интерфейс systemd-networkd теперь позволяет получать информацию о состоянии DHCP клиента; коммит #28896.

  • Опция NFTSet= позволяет привязать конфигурацию сетевого интерфейса к набору правил nftables.

  • Секция [IPv6AcceptRA] поддерживает новые опции: UsePREF64=, UseHopLimit=, UseICMP6RateLimit= и NFTSet=.

  • Секция [IPv6SendRA] теперь поддерживает опции RetransmitSec=, HopLimit=, HomeAgent=, HomeAgentLifetimeSec= и HomeAgentPreference=.

  • Конфигурационные файлы, сгенерированные на основе параметров из командной строки ядра, теперь имеют префикс 70-; приоритет этих файлов теперь выше, чем приоритет дефолтных файлов конфигурации.

Из прочих изменений

  • Добавлен новый компонент systemd-bsod, которые отображает сообщения в полноэкранном режиме, если log level установлен в LOG_EMERG.

  • Много других изменений, см. ссылку «Что нового».

Планы на будущее

  • В одном из следующих выпусков будет удалена поддержка сценариев инициализации System V и cgroups v1.

>>> Что нового (GitHub)

★☆

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 20)

Ответ на: комментарий от hobbit

Из man systemd-bsod

systemd-bsod.service is used to display a blue screen which contains a message relating to a boot failure, including a QR code which can be scanned to get helpful information about the failure.

undef ★★
()
Ответ на: комментарий от Smacker

В смысле «у вас было >10 лет переписать всю эту скриптоту, осталось пара месяцев».

undef ★★
()

а планируется ли завезти в systemd-networkd детектирование состояния линка (как в ifplugd)?

вообще, systemd в основном бесит именно такими мелочами. Из другого примера – это отдельные окружения для каждого сервиса. Я как-то долго вдуплить не мог, почему php-fpm возвращал ошибку при попытке проверить на записываемость симлинка в /usr/share (да-да, в арче именно так пакуют веб-приложения), хотя права на запись того, куда этот симлинк указывал, у процесса были.

demidrol ★★★★★
()
Ответ на: комментарий от PPP328

Ну так я для кого статью написал?

У вас в статье написано вот это:

дочерний процесс не может (согласно стандарту POSIX.1) вызывать
не async-signal-safe функции до вызова exec

И хотя это написано в разделе про триды, в явном виде вы не сказали, что это ограничение справедливо только при вызове форка в мультитридовом приложении.

Т.е. до этой новой версии весь systemd работал на UB.

Я не уверен, что системд вызывал форк из мультитридового процесса.

Уровень скилла программистов systemd зашкаливает.

Пруфы будут?

anonmyous
()
Ответ на: комментарий от hateWin

А в чем юзкейз отдельного /usr?

Во времена дорогих маленьких SSD было актуально сунуть основную систему (/bin, /sbin, /boot) на SSD, а /usr со всяким жирным софтом на вертушку.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от wandrien

FHS это и есть срач. Дублирование каталогов bin, lib и прочих - тоже срач. При том что смысла в этом абсолютно никакого.

alex1101
()
Ответ на: комментарий от wandrien

/bin и /usr/bin

/lib и /usr/lib

Впрочем, первые уже давно стали симлинками на вторые. Хотя надо бы наоборот, перенести вторые в первые и удалить /usr нахрен как недоразумение.

alex1101
()
Ответ на: комментарий от liksys

@mumpster, судя по твоему дизлайку, ты понял, что это было о тебе. Ну так что, у тебя появились технические аргументы? Или, может, ты наконец перечислишь какие-то конкретные проблемы, как я тебя в прошлый раз просил?

Или опять будут только чувственные ощущения?)))

liksys ★★★★
()
Ответ на: комментарий от wandrien

Неверная аналогия. Автомобили - это ОС как таковые.

alex1101
()
Ответ на: комментарий от alex1101

В usr как минимум есть share, для которого в FHS нет альтернативного места от корня. Это бы сломало совместимость с огромным количеством софта, Так что сделали максимально безболезненно.

liksys ★★★★
()
Ответ на: комментарий от alex1101

Правильно, нефиг каталогам /bin и /lib делать в корне

Ого, как ты догадался?

wandrien ★★
()
Ответ на: комментарий от LongLiveUbuntu

Затем, что это системный менеджер, а не тупо инит.

liksys ★★★★
()
Ответ на: комментарий от hateyoufeel

Во времена дорогих маленьких hdd не получалось упихать всю систему на один диск, поэтому в /usr положили софт, не требующийся при загрузке, home и прочее ненужное.

undef ★★
()
Ответ на: комментарий от anonmyous

в явном виде вы не сказали

Любая программа, вызывающая fork становится мультипоточной

Пруфы будут?

doing work after fork and before exec is against glibc’s supported case for several APIs we call

we call

PPP328 ★★★★★
()
Ответ на: комментарий от liksys

Однако systemd начало выходить за рамки просто системы инициализации и стало «брать» на себя гораздо больше.

My_quest ★★★★★
()
Ответ на: комментарий от wandrien

Unix System Resources

Прошу прощения, что влезаю в разговор, но у меня есть сопутствующий вопрос. А куда положено складывать программы и настройки для них, которые предназначены для всех пользователей? (я просто всегда наивно думал что такие вещи как раз в /usr и стоит сваливать)

Vic
()
Ответ на: комментарий от liksys

да их прямо тут пишут:

Теперь монтирование отдельного раздела /usr/ поддерживается только на этапе initramfs.

sapienti sat

mumpster ★★★★★
()
Ответ на: комментарий от mumpster

А проблема-то в чем? Зачем тебе /usr на отдельном разделе в 2023 году? Это была фича сомнительной нужности даже в конце нулевых, не говоря уже про современность.

Какие это проблемы вызывает у тебя, кроме невозможности иметь /usr на отдельном разделе?

sapienti sat

Ты и в прошлый раз слился с примерно таким же нытьем, когда я поймал тебя на том, что кроме чувственных ощущений сказать тебе было нечего. А сейчас ты мямлишь что-то невнятное про /usr, которое опять разбивается об мое железное зачем.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 3)
Ответ на: комментарий от PPP328

Любая программа, вызывающая fork становится мультипоточной

Чего?

doing work after fork and before exec is against glibc’s supported case for several APIs we call we call

glibc-supported case. В глибсе багов может быть сколько угодно. Это ни коим образом не доказывает ваш тезис о низкой компетенции системдшных кодеров. А о том, что глибс наркоманы пишут, и без вас известно.

anonmyous
()
Ответ на: комментарий от liksys

@mumpster

Я так понимаю, что клоунский смайл - это твой лучший аргумент? Кто бы мог подумать. Можешь еще и под этим каментом свою «роспись» оставить.

Дожили. Уровень технической дискуссии май эсс.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 3)
Ответ на: комментарий от mumpster

Теперь монтирование отдельного раздела /usr/ поддерживается только на этапе initramfs

И что тебя смущает? Если тебе кровь из носу как нужно сделать /usr отдельным разделом – добавляешь хук в конфиг используемого тобой генератора initramfs и не сношаешь окружающим мозги. Но я категорически не понимаю, нахрена это нужно

hateWin ★☆
() автор топика
Ответ на: комментарий от hateWin

Невозможность смонтировать /usr в отдельный раздел оскорбляет чувства верующих. Они даже не понимают, зачем это было нужно, им это просто иррационально не нравится. Они не знают, что на линуксе это было актуально еще до изобретения initrd, и что сейчас это не более чем карго-культ.

liksys ★★★★
()
Ответ на: комментарий от hateWin

Теперь монтирование отдельного раздела /usr/ поддерживается только на этапе initramfs

И что тебя смущает? Если тебе кровь из носу как нужно сделать /usr отдельным разделом – добавляешь хук в конфиг используемого тобой генератора initramfs и не сношаешь окружающим мозги. Но я категорически не понимаю, нахрена это нужно

Что, без initramfs теперь уже никак? Прогресс, однако.

qwe ★★★
()
Ответ на: комментарий от qwe

Что, без initramfs теперь уже никак? Прогресс, однако

Зашифрованный рут или рут, монтируемый по nfs, без initramfs тоже никак. Предлагаю совершить тебе ритуальный суицид. Как несовершенен мир, в самом-то деле

Не говоря уже о том, что ты до сих пор не объяснил, нахрена нужен /usr на отдельном разделе

hateWin ★☆
() автор топика
Ответ на: комментарий от liksys

Нет системного реестра. Системный менеджер есть - реестра нет.

frost_ii ★★★★★
()
Ответ на: комментарий от liksys

Его кривляния еще хоть как-то можно было бы понять, если бы он смог объяснить, зачем нужна суходрочка с отдельным /usr в 2023 году и почему эту проблему нужно решать средствами инита, а не initramfs. Но без технических аргументов это выглядит как мантра. /usr на отдельном разделе должен быть, потому что так сказал Великий Авторитет

hateWin ★☆
() автор топика
Ответ на: комментарий от alex1101

Вот эти все каталоги, которые в /usr - просто перенести в корень.

Можно, все равно дистры линукса похожи на помойку. Но для более целостной системы вполне разумно держать отдельный /usr с пользовательским окружением. Даже можно было бы несколько разных usr иметь параллельно.

bread
()
Ответ на: комментарий от qwe

Тебе зачем без initrd грузится? Чтобы что? Чтобы не запускать fsck на корне? Только не говори, что можно запускать его на ридонли, потому что на самом деле нельзя.

liksys ★★★★
()
Ответ на: комментарий от hateWin

Да нету никакого авторитета, им просто хочется, как в старые добрые.

Хочется - вон, солярка или бздя, развлекайтесь. Я и сам играюсь с ними, чего греха таить. Но линукс - это линукс, тут иначе сделано, и не надо сюда тащить привычки с других осей.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.