După trei luni de dezvoltare, a fost lansat managerul de sistem systemd 260. Schimbările cheie includ: încetarea suportului pentru scripturile de servicii în format System V, mecanismul „mstack” pentru configurarea ierarhiilor de montare stratificate, utilitarul systemd-report, suport pentru integrarea systemd-networkd cu ModemManager, suport pentru servicii portabile personalizate, și conceptul „xaccess” în systemd-logind și systemd-udevd.
Printre modificările din noua versiune:
- Suportul pentru scripturile de servicii în format System V a fost oprit, iar livrarea componentelor rc-local.service, systemd-sysv-install, systemd-rc-local-generator și systemd-sysv-generator a fost suspendată.
- A fost implementat mecanismul „mstack” (Mount Stack), care permite utilizarea catalogilor cu sufixul „.mstack/” pentru a forma o ierarhie compusă de cataloage, generată prin montarea secvențială și suprapunerea imaginilor de disc și a părților de FS prin OverlayFS și „mount —bind”. Au fost adăugate comanda systemd-mstack, opțiunea „—mstack” în systemd-nspawn și parametru RootMStack în unități, care pot fi folosite pentru a monta și demonta simultan toate elementele definite în configurația „.mstack”, de exemplu, pentru recrearea rapidă a imaginii unui container sau a unui mediu de lucru pentru serviciu. Fiecare fișier sau subfoldere în „.mstack/” definește un nivel de montare sau un strat „overlayfs”.
De exemplu, următoarea configurație „foobar.mstack/” definește overlayfs cu două straturi în modul de citire din imaginile de disc base.raw și app.raw (indicate ca linkuri simbolice) și un catalog „rw” cu posibilitate de scriere deasupra acestora: foobar.mstack/layer@0.raw → ../base.raw foobar.mstack/layer@1.raw → ../app.raw foobar.mstack/rw/
- Au fost implementate cadrele „metrics” și „report”, care pot fi utilizate de componentele sistemului pentru a genera statistici prin Varlink în catalogul /run/systemd/report/. A fost adăugat utilitarul systemd-report, care generează un raport global, reunind statisticile de la toate componentele, și le îngăduiează să fie afișate în format JSON. În prezent, metricile sunt furnizate doar de managerul de servicii și systemd-networkd.
- În systemd-networkd, a fost asigurată integrarea cu ModemManager și a fost adăugată secțiunea „[MobileNetwork]” cu setările APN, AllowedAuthenticationMechanisms, User, Password, IPFamily, AllowRoaming, PIN, OperatorId, RouteMetric și UseGateway, permițând utilizarea systemd-networkd pentru conectarea prin modem la operatorii mobili.
- A fost posibilă lansarea systemd-portabled ca un serviciu de utilizator, care este executat de un utilizator fără privilegii. Pentru a alege tipul de serviciu, au fost adăugate flag-urile „—user” și „—system” în utilitarul portablectl. Serviciile portabile („Portable Services”) reprezintă servicii de sistem structurate ca containere autonomă (livrate sub formă de imagine a sistemului, dar gestionate ca un serviciu obișnuit).
- În systemd-logind și systemd-udevd a fost adăugată suportul pentru conceptul de „xaccess” (Extended Access), care permite în cadrul unei sesiuni grafice accesul la GPU pentru utilizatorii cu acces la distanță, care nu utilizează fizic un monitor și dispozitive de intrare pe sistemul local (similar cu accesul uaccess, care acoperă utilizatorii care lucrează fizic pe computer). Pentru configurarea sesiunilor în acest caz, se sugerează prin PAM setarea variabilei de mediu XDG_SESSION_EXTRA_DEVICE_ACCESS.
- Pentru automatizarea configurării DeviceTree în imaginile UKI (Unified Kernel Image), a fost propus un set canonic de fișiere cu identificatori de hardware /usr/lib/systemd/boot/hwids/, care leagă identificatorii de dispozitive cu elementele DeviceTree. Cu ajutorul acestui set, imaginea UKI găsește automat și încarcă DTB-ul necesar (Device Tree Blob) în timpul boot-ării fără a necesita crearea de imagini specifice pentru fiecare dispozitiv. În prezent, fișierele hwid sunt generate pentru dispozitive ARM64 bazate pe cipuri Snapdragon.
- În /etc/os-release a fost adăugat un nou câmp „FANCY_NAME”, diferit de „PRETTY_NAME” prin posibilitatea utilizării simbolurilor non-ASCII Unicode. Dacă câmpul „FANCY_NAME” este prezent, acesta va fi utilizat în output-ul systemd, systemd-hostnamed și hostnamectl în locul „PRETTY_NAME”.
- Serviciile care oferă interfețe publice Varlink au fost consolidate într-un singur director /run/varlink/registry/ prin intermediul legăturilor simbolice. Comanda ‘varlinkctl list-registry’ a fost implementată pentru a vizualiza lista acestor servicii.
- În definițiile unităților a fost adăugată posibilitatea de a specifica în parametru PrivateUsers valoarea „managed”, pentru a numi automat unității intervale de identificatori de utilizatori și grupuri (UID/GID) prin systemd-nsresourced.
- În unități a fost adăugată configurația RefreshOnReload pentru actualizarea extensiilor și a acreditivelor în timpul repornirii unității.
- În unități a fost adăugată configurația BindNetworkInterface pentru a lega automat toate socket-urile create în unitate la o interfață de rețea specificată.
- Unit-urile au fost adăugate setările ConditionPathIsSocket și AssertPathIsSocket pentru a modifica comportamentul sau a opri unit-ul în caz că căile specificate nu sunt socket-uri.
- În systemctl a fost adăugată comanda 'enqueue-marked', care invocă metoda D-Bus EnqueueMarkedJobs(). Parametrul '—marked' utilizat anterior pentru aceste scopuri a fost declarat învechit.
- În servicii a fost adăugată setarea MemoryTHP pentru a gestiona utilizarea paginilor mari de memorie în servicii (THP — Transparent Huge Pages).
- În fișierele .delegate de systemd-resolved a fost adăugată suportul pentru parametrul FirewallMark pentru a seta într-un stivă de rețea o etichetă a firewall-ului pentru traficul DNS generat.
- În systemd-sysupdate a fost adăugată comanda 'acquire' pentru a separa etapele de încărcare și instalare sau actualizare. A fost implementat suportul pentru etichetarea partițiilor ca parțial încărcate.
- În systemd-vmspawn a fost adăugată opțiunea '—image-format' pentru a selecta formatul (qcow2 sau raw) al imaginii de disc.
- În systemd-inhibit, pentru opțiunea '—list' a fost implementat suportul pentru formatul 'JSON' cu posibilitatea utilizării flag-urilor '—what', '—who', '—why' și '—mode' pentru filtrarea ieșirii.
- În systemd-repart a fost adăugată suportul de bază pentru controlul integrității partițiilor criptate, utilizând dm-integrity.
- În utilitarul systemd-keyutil a fost adăugată comanda 'extract-certificate' pentru a scoate conținutul certificatelor X.509.
- În systemd-sysext și varlinkctl a fost implementat suportul pentru parcurgerea interactivă a autentificării prin polkit.
- A fost adăugată o politică polkit care permite apelarea systemd-ask-password de către un utilizator neprivilegiat.
- În systemd-importd a fost adăugată capacitatea de a încărca imagini OCI cu comanda 'importctl pull-oci', care sunt salvate sub formă de imagini pentru a fi montate prin 'mstack'.
- A fost adăugat suport pentru culori SYSTEMD_COLORS=auto-16, SYSTEMD_COLORS=auto-256 și SYSTEMD_COLORS=auto-24bit.
- Au fost furnizate fișiere executabile complet funcționale pentru systemd-sysusers și systemd-tmpfiles (anterior erau compilate versiuni reduse).
- În systemd-oomd a fost adăugat un 'prekill hook', care permite conectarea handlerelor care se declanșează înainte de a termina forțat un proces din cauza lipsei de memorie în sistem.
- Funcționalitatea utilizării utilizatorilor și grupurilor nesistemice în regulile udev (OWNER=/GROUP=) și setările systemd-networkd (User=/Group=) a fost reluată, dar marcată ca învechită.
- În systemd-repart a fost activată funcționalitatea apărută în xfsprogs 6.17.0 a utilitarului mkfs.xfs pentru desfășurarea conținutului inițial al FS dintr-un director specificat.
- Cererea pentru versiunile minime a fost crescută: nucleul Linux 5.4 → 5.10 (recomandat 5.14, iar pentru funcționalitate completă — 6.6), libidn → libidn2, Python 3.7.0 → 3.9.0, glibc 2.31 → 2.34, OpenSSL 1.1.0 → 3.0.0, cryptsetup 2.0.1/2.3.0 → 2.4.0, elfutils 158 → 177, libblkid 2.24 → 2.37, libseccomp 2.3.1 → 2.4.0.
- Regulile de asigurare a portabilității și stabilității au fost regândite și simplificate, întărind angajamentele de a preveni regresiile vizibile pentru utilizatori în interfețele publice.
Sursa: opennet.ro
