După trei luni de dezvoltare lansarea managerului de sistem .
Modificări principale:
- A fost adăugat suport pentru un controler de resurse cpuset bazat pe cgroups v2, care oferă un mecanism pentru a lega procesele la anumite CPU (setarea „AllowedCPUs”) și noduri de memorie NUMA (setarea „AllowedMemoryNodes”);
- A fost adăugat suport pentru încărcarea configurațiilor din variabila EFI SystemdOptions pentru configurarea systemd, ceea ce permite personalizarea comportamentului systemd în situații în care este dificil să se schimbe parametrii liniei de comandă a nucleului, iar configurația de pe disc este citită prea târziu (de exemplu, când trebuie să se configureze opțiuni legate de ierarhia cgroup). Pentru a seta variabila în EFI, se poate folosi comanda ‘bootctl systemd-efi-options’;
- Unitățile au fost extinse cu suport pentru încărcarea configurațiilor din directoarele „{unit_type}.d/”, legate de tipurile de unități (de exemplu, „service.d/”), care pot fi aplicate pentru a adăuga setări ce acoperă toate fișierele unităților de acest tip;
- Unităților de serviciu li s-a adăugat un nou mod de izolare sandbox ProtectKernelLogs, care permite interzicerea accesului programelor la bufferul de log al nucleului, accesibil prin apelul de sistem syslog (nu se confundă cu API-ul omonim, oferit în libc). În cazul activării modului, accesul aplicației la /proc/kmsg, /dev/kmsg și CAP_SYSLOG va fi blocat;
- Pentru unități, a fost propusă setarea RestartKillSignal, care permite suprascrierea numărului semnalului utilizat pentru încheierea procesului în timpul repornirii sarcinilor (se poate schimba comportamentul opririi procesului în etapa de pregătire pentru repornire);
- Comanda „systemctl clean” a fost adaptată pentru a fi utilizată cu unități de socket, montare și swap (socket, mount, swap);
- Într-o etapă timpurie a încărcării, au fost dezactivate limitele privind intensitatea de ieșire a mesajelor nucleului prin apelul printk, ceea ce permite acumularea de jurnale mai complete despre progresul încărcării într-o etapă în care stocarea pentru jurnale încă nu este conectată (jurnalul se acumulează în buffer-ul rotativ al nucleului). Setările limitelor pentru printk din linia de comandă a nucleului au o prioritate mai mare și permit suprascrierea comportamentului systemd. Programele systemd care scriu direct jurnalul în /dev/kmsg (acest lucru se face doar în etapa timpurie a încărcării) folosesc limite interne separate pentru a se proteja împotriva umplerii buffer-ului;
- Utilitarului systemctl i s-a adăugat comanda ‘stop —job-mode=triggering’, care permite oprirea atât a unității specificate în linia de comandă, cât și a tuturor unităților care o pot invoca;
- Informațiile despre starea unității includ acum informații despre unitățile apelante și unitățile apelate;
- S-a asigurat posibilitatea utilizării setării „RuntimeMaxSec” în unitățile scope (anterior folosită doar în unitățile service). De exemplu, „RuntimeMaxSec” poate fi acum utilizat pentru limitarea timpului sesiunilor PAM prin crearea unei unități scope
pentru contul de utilizator. Limitarea de timp poate fi, de asemenea, specificată prin opțiunea systemd.runtime_max_sec din parametrii modulului PAM pam_systemd; - S-a adăugat un nou grup de apeluri de sistem „@pkey”, care facilitează adăugarea în listele albe a apelurilor de sistem legate de protecția memoriei pentru limitarea containerelor și serviciilor;
- În systemd-tmpfiles a fost adăugat flacul „w+” pentru scriere în modul de completare a fișierelor;
- În ieșirea systemd-analyze au fost incluse informații despre conformitatea configurației memoriei nucleului cu setările systemd (de exemplu, dacă un program terță parte a modificat parametrii nucleului);
- În systemd-analyze a fost adăugată opțiunea „—base-time”, care calculează datele calendaristice în raport cu timpul specificat în această opțiune, nu în raport cu timpul sistemului curent;
- În „journalctl —update-catalog” s-a asigurat constanța ordinii elementelor în ieșire (util pentru organizarea construcțiilor repetabile);
- A fost adăugată posibilitatea de a specifica o valoare implicită pentru setarea „WatchdogSec”, utilizată în serviciile systemd. La etapa de compilare, valoarea de bază poate fi definită prin opțiunea „-Dservice-watchdog” (dacă este specificată o valoare goală, watchdog-ul va fi dezactivat);
- A fost adăugată opțiunea de construcție „-Duser-path” pentru a suprascrie valoarea $PATH;
- În utilitarul systemd-id128 a fost adăugată opțiunea „-u” („—uuid”) pentru a afișa identificatoare de 128 de biți în UUID (reprezentarea canonicală a UUID);
- Pentru construcție, acum este necesară libcryptsetup de cel puțin versiunea 2.0.1.
Modificări legate de configurația rețelei:
- În systemd-networkd a fost adăugată suport pentru reconfigurarea link-ului în timp real, pentru care în networkctl au fost adăugate comenzile „reload” și „reconfigure DEVICE…” pentru reîncărcarea setărilor și reconfigurarea dispozitivelor;
- În systemd-networkd s-a oprit crearea de rute implicite pentru linkuri locale IPv4 cu adrese intranet 169.254.0.0/16 (). Crearea automată a rutelor implicite pentru astfel de linkuri a dus anterior la comportamente neprevăzute și probleme cu rutarea în anumite cazuri. Pentru a reveni la comportamentul anterior, trebuie utilizată setarea „DefaultRouteOnDevice=yes”. De asemenea, alocarea adreselor locale IPv6 a fost oprită dacă rutarea locală IPv6 pentru link nu este activată;
- În systemd-networkd, atunci când se conectează la rețele wireless în modul ad-hoc, se aplică în mod implicit configurația cu adresare locală pentru linkuri (link-local);
- Au fost adăugate parametrii RxBufferSiz și TxBufferSize pentru configurarea dimensiunii bufferelor de recepție și trimitere ale interfeței de rețea;
- În systemd-networkd, s-a implementat anunțarea rutelor suplimentare IPv6, reglementată prin opțiunile Route și LifetimeSec în secțiunea „[IPv6RoutePrefix]”;
- În systemd-networkd, a fost adăugată posibilitatea de a configura rutele „next hop” utilizând opțiunile „Gateway” și „Id” în secțiunea „[NextHop]”;
- În systemd-networkd și networkctl pentru DHCP, s-a asigurat actualizarea legăturilor adreselor IP (leases) pe parcurs, realizată prin comanda ‘networkctl renew’;
- systemd-networkd a asigurat resetarea configurației DHCP la repornire (pentru a păstra setările, trebuie utilizat parametrul KeepConfiguration). Valoarea setării SendRelease a fost schimbată implicit în „true”;
- În clientul DHCPv4, s-a asigurat utilizarea valorii opțiunii OPTION_INFORMATION_REFRESH_TIME, transmisă de server. Pentru a solicita serverului opțiuni specifice, s-a propus parametrul „RequestOptions”, iar pentru a trimite opțiuni serverului — „SendOption”. Pentru configurarea tipului de serviciu IP, clientul DHCP a adăugat parametrul „IPServiceType”;
- Pentru substituirea de către serverul DHCPv4 a listei serverelor SIP (Session Initiation Protocol), au fost adăugate parametrii „EmitSIP” și „SIP”. Pe partea clientului, primirea parametrilor SIP de la server poate fi activată prin setarea „UseSIP=yes”;
- În clientul DHCPv6, a fost adăugat parametrul „PrefixDelegationHint” pentru a solicita un prefix de adresă;
- În fișierele .network, s-a asigurat suportul pentru asocierea rețelelor wireless după SSID și BSSID, de exemplu, pentru a fi legat de numele punctului de acces și adresa MAC. Valoarea SSID și BSSID sunt afișate în rezultatul networkctl pentru interfețele wireless. În plus, a fost adăugată posibilitatea de asociere pe baza tipului de rețea wireless (parametrul WLANInterfaceType);
- În systemd-networkd a fost adăugată posibilitatea de configurare a disciplinelor de organizare a coadelor pentru gestionarea traficului prin intermediul noilor parametrii Parent,
NetworkEmulatorDelaySec, NetworkEmulatorDelayJitterSec,
NetworkEmulatorPacketLimit și NetworkEmulatorLossRate,
NetworkEmulatorDuplicateRate în secțiunea «[TrafficControlQueueingDiscipline]»; - În systemd-resolved este asigurată verificarea adreselor IP în certificate la compilarea cu GnuTLS.
Modificări legate de udev:
- În systemd-udevd a fost eliminat timeout-ul de 30 de secunde pentru terminarea forțată a handler-elor blocate. Systemd-udevd acum așteaptă încheierea handler-elor pentru care 30 de secunde nu au fost suficiente pentru a finaliza operațiunile în instalări mari (de exemplu, timeout-ul putea întrerupe inițializarea driver-ului în timpul comutării partițiilor montate pentru FS-ul rădăcină). Când se folosește systemd, timeout-ul pe care systemd-udevd îl va aștepta înainte de a ieși poate fi setat prin configurația TimeoutStopSec în systemd-udevd.service. La rularea fără systemd, timeout-ul este reglat prin parametrul udev.event_timeout;
- Pentru udev a fost adăugată programul fido_id, care identifică token-urile FIDO CTAP1
(«U2F») / CTAP2 pe baza datelor despre utilizările lor anterioare și returnează variabilele de mediu necesare (programul permite evitarea listelor externe care conțin toate token-urile cunoscute folosite anterior); - A fost implementată generarea automată a regulilor udev autosuspend pentru dispozitive din lista albă, importată din Chromium OS (modificarea permite extinderea utilizării modurilor de economisire a energiei pentru dispozitive suplimentare);
- În udev a fost adăugată o nouă setare «CONST{key}=value», care permite executarea directă a asocierilor valorilor constante sistem fără a rula handler-e separate pentru verificare. În prezent sunt acceptate doar cheile «arch» și «virt»;
- Asigurată deschiderea CDROM-ului în mod non-exclusiv la executarea operațiuni de solicitare a modurilor suportate (modificarea rezolvă problemele de acces al programelor la CDROM și reduce riscul întreruperii programelor de scriere pe disc, care nu aplică modul de acces exclusiv).
Sursa: opennet.ro
