systemd 261 și liberated-systemd 261

După trei luni de dezvoltare disponibil lansarea managerului de sistem systemd 261. Schimbările cheie: pregătirea pentru suportul API pentru verificarea vârstei, suportul pentru subsistemele Kexec Handover și Live Update Orchestration pentru repornire fără pierderea stării, subsistemul IMDS (Instance Metadata Service), funcționalitatea pentru protecția boot-ului pe sistemele fără TPM fizic (Trusted Platform Module), componenta systemd-sysinstall cu implementarea instalatorului.

Printre modificări în noua versiune:

  • A fost adăugat un nou component systemd-sysinstall cu implementarea unui instalator simplu de sistem de operare, care poate fi gestionat din linia de comandă sau printr-o interfață text interactivă. Funcționalitatea systemd-sysinstall este bazată pe capacitățile deja existente ale systemd: pentru configurarea partițiilor de disc a fost folosit systemd-repart, pentru instalarea nucleului și generarea meniului de boot — comanda „bootctl link”, pentru instalarea bootloader-ului systemd-boot — comanda „bootctl install”, pentru configurarea inițială a sistemului instalat (de exemplu, alegerea limbii și a layout-ului tastaturii) — systemd-creds.
  • În pregătirea pentru implementarea cerințelor legilor privind integrarea în OS a API-ului pentru verificarea vârstei în baza de date userdb a fost adăugat câmpul birthDate cu data nașterii utilizatorului. Câmpul adăugat va putea fi folosit în portalul xdg-desktop-portal, care se dezvoltă pentru distribuții și în serviciul AccountsService pentru a oferi aplicațiilor informații despre categoria de vârstă a utilizatorului prin intermediul interfeței D-Bus org.freedesktop.AgeVerification1 sau org.freedesktop.ParentalControls. Pentru a seta vârsta, în utilitarul homectl a fost adăugată opțiunea —birth-date.
  • În handler-ul PID1 a fost adăugat suportul pentru subsistemele nucleului Linux LUO (Live Update Orchestration) și KHO (Kexec Handover), care permit repornirea completă și actualizarea nucleului fără a opri funcționarea și fără a pierde starea sistemului, dispozitivelor și proceselor. KHO oferă posibilități de a porni un nou nucleu dintr-unul vechi fără a pierde starea sistemului, iar LUO implementează salvarea stării dispozitivelor și a memoriei operaționale, precum și asigură continuitatea operațiunilor legate de DMA și gestionarea întreruperilor.
    În systemd, pentru unitățile sistemului și utilizatorilor, s-a implementat posibilitatea de a salva descriptorii de fișiere înainte de a apela kexec și de a-i restabili după repornirea nucleului prin kexec. În unități pot fi create, de asemenea, sesiuni proprii. LUO, salvate și restabilite în timpul execuției kexec. Pentru a activa salvarea stării stocării descriptorilor de fișiere, trebuie utilizată setarea FileDescriptorStorePreserve=yes.
  • A fost implementat subsistemul systemd-imdsd, care oferă un API bazat pe Varlink IPC pentru accesul programelor locale la serviciile IMDS (Instance Metadata Service), furnizate de diferite furnizori de cloud. IMDS oferă mașinilor virtuale informații despre mediu, cum ar fi detalii despre configurația rețelei, locația geografică a nodului, tipul CPU și dimensiunea stocării. In systemd-imdsd se oferă atât un API de nivel inferior pentru accesarea câmpurilor individuale, cât și o interfață de nivel superior pentru cereri pe chei standard, corelate cu cheile specifice platformelor cloud. A fost adăugată utilitarul systemd-imds pentru a permite importul câmpurilor din IMDS în sistemul local de conturi.
    Pentru a recunoaște platformele cloud pe baza informațiilor din SMBIOS și a determina funcționalitatea IMDS disponibilă pe nodul curent, a fost adăugată o nouă bază de date hwdb.d/40-imds.hwdb. A fost implementată recunoașterea platformelor cloud Amazon EC2, Microsoft Azure, Google Compute Engine, Hetzner, Oracle Cloud, Scaleway, Tencent Cloud, Alibaba ECS și Vultr. Este disponibil un handler systemd-imds-generator pentru a insera automat serviciul pentru obținerea datelor prin IMDS în cazul în care se constată că se rulează pe o platformă cloud suportată. Este posibil să se creeze imagini universale care să suporte utilizarea IMDS la pornirea în medii cloud, dar care să fie capabile să funcționeze și fără IMDS.
  • În systemd-stub a implementat funcționalitatea boot secret, care permite generarea unei chei bazate pe o variabilă EFI, stocată în zona inaccesibilă pentru sistemul de operare și inițializată cu o valoare aleatorie. În initrd, cheia este transmisă prin fișierul \/.extra\/boot-secret. Această capacitate poate fi necesară pentru a obține o cheie aleatorie specifică sistemului pentru verificarea procesului de pornire sau criptarea pe sistemele fără TPM (Trusted Platform Module) hardware.
  • A fost adăugat serviciul systemd-tpm2-swtpm.service pentru a lansa emulatorul de cipuri TPM swtpm (Software TPM Emulator), care poate fi utilizat pentru a reveni automat la implementarea software TPM pentru boot-ul sigur pe sisteme fără hardware TPM. TPM software funcționează în spațiul utilizatorului și nu poate oferi același nivel de protecție ca TPM hardware, dar în anumite situații utilizarea sa este justificată, comparativ cu operarea fără TPM. De exemplu, TPM software poate obține cheia de criptare a partițiilor prin intermediul unei noi funcționalități „boot secret” și poate folosi pentru stocarea stării sale partiția ESP (EFI System Partition) de pe disc. Pentru activarea automată a TPM software, a fost propus un parametru de linie de comandă a nucleului systemd.tpm2_software_fallback.
  • A fost declarat stabil și plasat în /usr/bin componentul systemd-sysupdate, destinat identificării automate, descărcării și instalării actualizărilor utilizând un mecanism atomic de înlocuire a partițiilor, fișierelor sau directoarelor (sunt folosite două partiții/fișiere/directoare independente, una având resursa curentă activă și cealaltă instalând actualizarea următoare, după care partițiile/fișierele/directoarele sunt schimbate între ele).
  • În systemd-resolved a implementat posibilitatea de a suprascrie sau specifica noi înregistrări DNS prin plasarea fișierelor în format JSON în directoarele systemd/resolve/static.d/. Spre deosebire de /etc/hosts, în noile fișiere nu doar că se pot lega adrese IP de nume de gazde, dar se pot defini și înregistrări DNS RR resurse diferite de „A” și „AAAA”. În plus, în systemd-resolved au fost adăugate setări pentru dimensiunea cache-ului DNS: DNSCacheSize, MulticastDNSCacheSize și LLMNRCacheSize.
  • A fost adăugată utilitarul ‘storagectl’ pentru inspectarea dispozitivelor de stocare și gestionarea conexiunii dispozitivelor bloc și sistemelor de fișiere.
  • În cadrul inițiativei reducerii dependențelor, la libsystemd a fost implementată încărcarea dinamică a bibliotecilor libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk și libcryptsetup folosind apelul dlopen() în situații în care funcțiile lor sunt cu adevărat necesare.
  • În systemd-tmpfiles a adăugat un flag —inline, care permite specificarea directivelor în linia de comandă fără a crea fișiere de configurare în tmpfiles.d/ și fără a trimite setările prin STDIN. A fost adăugat un nou tip de directivă k/K pentru stabilirea capabilitiesA fost adăugat fișierul de configurare tmpfiles.d/root.conf, care setează permisiunile 0555 (-r-xr-xr-x) pentru directorul rădăcină (/) pentru a proteja împotriva setării incorecte a permisiunilor în timpul formării dinamice a sistemului de fișiere rădăcină.
  • În utilitarul bootctl se asigură păstrarea unei copii de siguranță a încărcătorului de sistem systemd-boot și actualizarea versiunii vechi în UEFI ca opțiune de rezervă pentru pornire.
  • În systemd-vmspawn a fost adăugat suportul pentru încărcarea directă a nucleului fără utilizarea firmware-ului UEFI. A fost implementată opțiunea —firmware-features pentru activarea sau dezactivarea selectivă a anumitor funcționalități ale firmware-ului. A fost adăugată modul —console=headless pentru rularea mașinii virtuale fără consolă și ecran. A fost adăugată opțiunea —image-disk-type pentru alegerea tipului de stocare bloc aplicat în VM (virtio-blk, virtio-scsi, nvme, scsi-cd). A fost adăugată opțiunea —coco (Confidential Computing) pentru activarea modului de criptare a memoriei mașinilor virtuale folosind tehnologia AMD SEV-SNP.
  • În systemd-hostnamed și /etc/machine-info a fost adăugată suportul pentru atașarea unor etichete arbitrare sistemului curent, folosind parametrul Tags. Etichetele setate pot fi apoi folosite pentru aplicarea selectivă a configurărilor prin verificarea expresiei ConditionMachineTag.
  • Au fost adăugate setările EventLoopRateLimitIntervalSec și EventLoopRateLimitBurst, care limitează intensitatea ciclului de procesare a evenimentelor în PID1 pentru a elibera resurse CPU în cazul unei bucle infinite.
  • În managerul de servicii a fost implementată setarea MinimumUptimeSec pentru a stabili timpul minim de funcționare a sistemului (implicit 15 secunde). Dacă se inițiază o oprire sau o repornire înainte de expirarea acestui timp, se adaugă o întârziere corespunzătoare în etapa finală.
  • Pentru unități, au fost implementate noi setări CPUSetPartition pentru stabilirea tipului de secțiune cpuset în cgroup (root, isolated, member), RestrictFileSystemAccess pentru a permite rularea doar a fișierelor executabile verificate prin semnătură digitală folosind dm-verity, și CPUPressureWatch/CPUPressureThresholdSec/IOPressureWatch/IOPressureThresholdSec pentru a obține notificări privind sarcina ridicată pe CPU și input/output.
  • Lista metricelor generate de utilitarul systemd-report. De exemplu, au fost adăugate informații despre dimensiunea memoriei fizice și nucleele active ale CPU-ului, date despre conținutul câmpurilor SMBIOS și /etc/machine-info, informații despre suportul pentru modul Confidential Computing și detalii despre producătorul cipurilor TPM2.
  • În systemd-oomd a fost implementată posibilitatea de a defini reguli pentru filtrarea proceselor în cazul insuficienței de memorie în sistem. Reguli pot fi stabilite în directorul /etc/systemd/oomd/rules.d/ sau în unitățile de serviciu prin directiva OOMRule.
  • În systemd-socket-proxy a fost adăugat suport pentru protocolul PROXY, corespunzător primei versiuni a protocolului haproxy.
  • În systemd-networkd a fost implementat un nou backend sd-dhcp-relay pentru releele DHCP. Au fost declarate învechite setările din secțiunea [DHCPServer] — BindToInterface, RelayTarget, RelayAgentCircuitId și RelayAgentRemoteId, în locul cărora ar trebui utilizată opțiunea DHCPRelay din secțiunea [Network] și o serie de noi setări în secțiunea [DHCPRelay] și în fișierul networkd.conf. A fost adăugată comanda networkctl dhcp-lease INTERFACE pentru a salva un dump cu informațiile despre bufferizarea adreselor IP (DHCP lease).
  • În utilitarul systemd-nspawn a fost adăugată opțiunea —restrict-address-families, iar în fișierele .nspawn configurarea RestrictAddressFamilies pentru a limita familiile de adrese utilizate în container. În viitoarele versiuni, vor fi permise în mod implicit doar familiile AF_INET, AF_INET6 și AF_UNIX.
  • Suportul pentru formatul vechi de bază de date udev (versiunea 0.x) a fost oprit. Actualizarea în timp real de la versiunile systemd la versiunea 247 (opennet.ro) nu este acceptat.
  • La compilarea cu biblioteca C musl, este acum necesară cel puțin versiunea musl 1.2.6.

apariția lansare proiectului liberated-systemd 261, un fork al systemd, liber de cod care ar putea fi folosit pentru urmărirea utilizatorilor. În versiunea propusă, modificările constau în eliminarea codului care adăuga în userdb câmpul birthDate cu data nașterii utilizatorului, iar în utilitarul homectl opțiunea —birth-date pentru a stabili vârsta.

Sursa: linux.org.ru

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster