След малко повече от три месеца разработка, стартирането на новата версия на 259. Серия Тази актуализация въвежда промени в архитектурата на системата, като подчертава отвореността към алтернативни стандартни библиотеки, по-строгото управление на привилегиите и по-строгите технически изисквания за бъдещи версии.
Едно от най-обсъжданите движения в този цикъл е преходът към по-голяма модулност и елиминиране на наследените зависимости, проправяйки пътя за Linux екосистема, която окончателно се отдалечава от стандартите на минали десетилетия.
Основни нови функции на systemd 259
Новата версия 259 на systemd се откроява като... първа версия, която добавя частична съвместимост с Musl, популярната стандартна C библиотека в леки дистрибуции и вградени среди. Тази интеграция Управлява се чрез опцията libc в системата за изграждане Meson. Въпреки това, тъй като Musl не имплементира функционалността NSS (Name Service Switch), няколко компонента на systemd остават деактивирани в тази конфигурация.
Сред азабележителни пропуски при компилиране с Musl те са nss-systemd, nss-resolve, systemd-homed, systemd-userdbd и параметърът DynamicUserОсвен това, не е възможно да се стартира systemd-nspawn без привилегии в тази библиотека. Разработчиците предупредиха, че поддържането на тази поддръжка в бъдещи версии ще зависи от търсенето от общността и стабилността на всички допълнителни слоеве за съвместимост, които бъдат разработени.
Друга нова функция на новата версия е в помощната програма run0, проектиран като модерна и безопасна алтернатива на sudo, който е получил новата опция – овластяване. Тази функция Позволява ви да влезете с повишени привилегии. без да е необходимо да променяте потребителския идентификатор (UID) на root.
Освен, че, вместо делегиране на пълен контрол чрез превключване на потребители, –empower използва индикатори за възможности на ядрото, като например CAP_SYS_ADMIN, да се издадат строго необходимите разрешителни да извършват привилегировани системни повиквания. Освен това, получените процеси са интегрирани в специфична група, която им предоставя достъп до действията на Polkit, поддържайки по-стабилно разделение на привилегиите, отколкото традиционния модел sudo.
Краят на една ера: Сбогом на System V и новите изисквания
systemd 259 бележи началото на края на съвместимост с Скриптове за услуги на System VОбявено е, че в следващата версия остарели компоненти като systemd-sysv-generator, systemd-rc-local-generator и systemd-sysv-install ще бъдат премахнати за постоянно.
Наред с това почистване на стария код, минималните софтуерни изисквания за екосистемата systemd бяха значително повишени:
- Linux ядро: Минимална версия 5.10.
- Глибк: 2.34.
- OpenSSL: 3.0.0.
- Util-linux: 2.37.
- Други: Python 3.9.0, cryptsetup 2.4.0 и libseccomp 2.4.0.
Модулност и динамично зареждане в libsystemd
Como част от инициатива за намаляване на зависимостите директно при стартиране, libsystemd вече използва динамично зареждане чрез dlopen() За библиотеки като libacl, libblkid, libseccomp, libselinux и libmount, системата ще зарежда тези библиотеки в паметта само когато техните специфични функции са необходими за даден процес, оптимизирайки използването на ресурси. Освен това, функционалността на libcap е интегрирана директно в libsystemd, опростявайки веригата от зависимости.
El Обработката на лог файлове е променила конфигурацията си по подразбиране: режимът на съхранение на дневника (списание) променя се от „автоматично“ на „постоянно“, независимо дали директорията /var/log/journal е съществувала преди това.
В областта на мрежите и виртуализацията:
- systemd-networkd и systemd-nspawn: Поддръжката за NAT правила, използващи iptables, е премахната, оставяйки nftables като единствената съвместима опция.
- systemd-разрешено: Вече позволява използването на локални куки (hooks) в /run/systemd/resolve.hook/ за намеса в заявки за разрешаване на имена.
- systemd-importd: Логиката за работа с TAR файлове е интегрирана директно. Освен това, както `importd`, така и `machined` вече могат да се изпълняват на потребителско ниво, което позволява управление на изображения в локалната директория на потребителя (`~/.local/state/machines/`).
Други иновации
API, базиран на протоколи Varlink получи подобрения, които позволяват достъп до настройките на услугите и осъществяване на IPC повиквания. като например Reload() и Reexecute(). За системните администратори включването на свойството OOMKills в услугите ще бъде много полезно, тъй като ще им позволи да проследяват колко пъти даден процес е бил прекратен поради липса на памет директно от инструментите на systemd.
И накрая, процесът на зареждане на системата става по-модерен с премахването на поддръжката за TPM 1.2 в systemd-boot, фокусирайки всички усилия за сигурност върху стандарта TPM 2.0.
Ако се интересувате да научите повече за него, можете да се консултирате с подробности в следващия линк.