Nakon tri mjeseca razvoja dostupan izdanje sistemskog menadžera systemd 261. Ključne promjene: priprema za podršku API-ju za verifikaciju dobi, podrška za podsustave Kexec Handover i Live Update Orchestration za ponovno pokretanje bez gubitka stanja, podustav IMDS (Instance Metadata Service), funkcionalnost za zaštitu pokretanja na sustavima bez fizičkog TPM-a (Trusted Platform Module), komponenta systemd-sysinstall s implementacijom instalatera.
Među promenama u novom izdanju:
- Dodana nova komponenta systemd-sysinstall s implementacijom jednostavnog instalatera operativnog sustava, kojim se može upravljati iz naredbenog retka ili putem interaktivnog tekstualnog sučelja. Funkcionalnost systemd-sysinstall oblikovana je iz već postojećih mogućnosti systemd: za konfiguraciju diskovnih particija korišten je systemd-repart, za instalaciju jezgre i generiranje izbornika za pokretanje — naredba „bootctl link“, za instalaciju zamjenskog programa za pokretanje systemd-boot — naredba „bootctl install“, za inicijalnu konfiguraciju instaliranog sustava (na primjer, odabir locale i rasporeda tipkovnice) — systemd-creds.
- Kao dio priprema za implementaciju zahtjeva zakona o integraciji u OS API za verifikaciju dobi u BDP-u userdb dodano je polje birthDate s datumom rođenja korisnika. Dodano polje moći će se koristiti u razrađivanom za distribucije portalu xdg-desktop-portal i servisu AccountsService za isporuku aplikacijama informacija o dobnoj kategoriji korisnika putem D-Bus sučelja org.freedesktop.AgeVerification1 ili org.freedesktop.ParentalControls. Za postavljanje dobi u alat homectl dodana je opcija —birth-date.
- U obradi PID1 dodana je podrška za pod sustave Linux jezgre LUO (Live Update Orchestration) i KHO (Kexec Handover), omogućujući potpuno ponovno pokretanje i ažuriranje jezgre bez zaustavljanja rada i ne gubeći stanje sustava, uređaja i procesa. KHO omogućuje pokretanje nove jezgre iz stare bez gubitka stanja sustava, a LUO implementira očuvanje stanja uređaja i radne memorije, kao i osigurava kontinuitet operacija povezanih s DMA-om i obradom prekida.
U systemd-u za sustavne i korisničke jedinice implementirana je mogućnost očuvanja datotečnih deskripora prije poziva na kexec i njihovo obnavljanje nakon ponovnog pokretanja jezgre putem kexec. U jedinicama se također mogu stvoriti vlastite sesije LUO, pohranjene i vraćene prilikom izvođenja kexec. Da bi se omogućilo spremanje stanja pohrane datotečnih deskriptora, treba koristiti postavku FileDescriptorStorePreserve=yes. - Implementiran je podsustav systemd-imdsd, koji pruža API temeljen na Varlink IPC za pristup lokalnim programima do IMDS (Instance Metadata Service) usluga, koje pružaju različiti pružatelji oblak sustava. IMDS omogućuje virtualnim mašinama da dobiju informacije o oblak okruženju, na primjer, mogu se dobiti podaci o mrežnoj konfiguraciji, geografskoj lokaciji čvora, vrsti CPU-a i veličini pohrane. U systemd-imdsd pruža se niska razina API-a za pristup pojedinim poljima, kao i visoka razina sučelja za upite prema standardnim ključevima, usklađenim s ključevima specifičnim za pojedine oblake platforme. Za interakciju s systemd-imdsd dodan je alat systemd-imds, koji omogućuje uvoz polja iz IMDS-a u lokalni sustav računa.
Za prepoznavanje oblaka platformi prema informacijama iz SMBIOS-a i određivanje dostupnih funkcionalnosti IMDS na trenutnom čvoru, dodana je nova Baza podataka hwdb.d/40-imds.hwdb. Implementirano je prepoznavanje oblaka platformi Amazon EC2, Microsoft Azure, Google Compute Engine, Hetzner, Oracle Cloud, Scaleway, Tencent Cloud, Alibaba ECS i Vultr. Dostupan je alat systemd-imds-generator za automatsko umetanje usluge za dobivanje podataka putem IMDS-a u slučaju da se otkrije rad pod upravljanjem podržane oblake platforme. Moguće je kreirati univerzalne slike koje podržavaju korištenje IMDS-a pri pokretanju u oblak okruženjima, ali su sposobne raditi i bez IMDS-a. - U systemd-stub implementirana je funkcionalnost boot secret, koja omogućuje generiranje ključa na temelju EFI varijable, pohranjene u nedostupnom za operacijski sustav području i inicijalizirane slučajnom vrijednošću. U initrd, ključ se prenosi putem datoteke /.extra/boot-secret. Predstavljena mogućnost može biti potrebna za dobivanje specifičnog za sustav slučajnog ključa za verifikaciju procesa pokretanja ili šifriranja na sustavima bez hardverskog TPM-a (Trusted Platform Module).
- Dodana je usluga systemd-tpm2-swtpm.service za pokretanje emulatora TPM mikropatika swtpm (Software TPM Emulator), koji se može koristiti za automatski povratak na softversku implementaciju TPM za sigurno pokretanje na sustavima bez hardverskog TPM-a. Softverski TPM radi u korisničkom prostoru i ne može postići razinu zaštite koju ima hardverski TPM, no u nekim situacijama njegova primjena je opravdana, u usporedbi s radom bez TPM-a. Na primjer, softverski TPM može dobiti ključ enkripcije particija putem nove funkcionalnosti „boot secret“ i koristiti za pohranu svog stanja particiju ESP (EFI System Partition) na disku. Za automatsko uključivanje softverskog TPM-a predložen je parametar naredbenog retka jezgre systemd.tpm2_software_fallback.
- Objavljen je stabilan i smješten u /usr/bin/ komponent systemd-sysupdate, namijenjen za automatsko određivanje, preuzimanje i instalaciju ažuriranja uz korištenje atomskog mehanizma zamjene particija, datoteka ili direktorija (koriste se dva neovisna particije/datoteke/direktoriji, na jednoj od kojih se nalazi trenutni radni resurs, a na drugoj se instalira sljedeće ažuriranje, a zatim se particije/datoteke/direktoriji zamjenjuju).
- U systemd-resolved ostvarena je mogućnost predefiniranja ili navođenja novih DNS zapisa putem postavljanja datoteka u JSON formatu u direktorije systemd/resolve/static.d/. Za razliku od /etc/hosts, u novim datotekama se ne samo da se povezuju IP adrese s nazivima hostova, već se mogu odrediti i resursni DNS RR zapisi, različiti od „A“ i „AAAA“. Osim toga, u systemd-resolved dodane su postavke veličine DNS predmemorije: DNSCacheSize, MulticastDNSCacheSize i LLMNRCacheSize.
- Dodana je alatka ‘storagectl’ za inspekciju skladišnih uređaja i upravljanje povezivanjem blokovnih uređaja i datotečnih sustava.
- U okviru inicijative za smanjenje ovisnosti u libsystemd ostvarena je dinamička učitavanje biblioteka libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk i libcryptsetup putem poziva dlopen() u situacijama kada su njihove funkcije zaista potrebne.
- U systemd-tmpfiles dodana je oznaka —inline, koja omogućuje postavljanje direktiva u naredbenom retku bez stvaranja konfiguracijskih datoteka u tmpfiles.d/ i bez slanja postavki putem STDIN. Dodan je novi tip direktiva k/K za postavljanje capabilities. Dodan je konfiguracijski fajl tmpfiles.d/root.conf koji postavlja dozvole 0555 (-r-xr-xr-x) za korijenski direktorijum (/) radi zaštite od postavljanja pogrešnih dozvola prilikom dinamičkog formiranja korijenske datotečne sistem.
- U alatu bootctl omogućeno je čuvanje sigurnosne kopije bootloader-a systemd-boot i upisivanje stare verzije u UEFI kao rezervne opcije za pokretanje.
- U systemd-vmspawn dodana je podrška za direktno pokretanje jezgre bez korištenja UEFI firmware-a. Implementirana je opcija —firmware-features za selektivno uključivanje ili isključivanje pojedinih funkcija firmware-a. Dodana je opcija —console=headless za pokretanje virtualne mašine bez konzole i ekrana. Dodana je opcija —image-disk-type za izbor tipa blokovne pohrane koji se koristi u VM-u (virtio-blk, virtio-scsi, nvme, scsi-cd). Dodana je opcija —coco (Povjerljivo računarstvo) za uključivanje načina šifriranja memorije virtualnih mašina koristeći AMD SEV-SNP tehnologiju.
- U systemd-hostnamed i /etc/machine-info dodana je podrška za pridruživanje proizvoljnih oznaka trenutnom sistemu koristeći parametar Tags. Dodijeljene oznake se zatim mogu koristiti za selektivnu primjenu postavki uz provjeru putem izraza ConditionMachineTag.
- Dodane su postavke EventLoopRateLimitIntervalSec i EventLoopRateLimitBurst, koje ograničavaju intenzitet ciklusa obrade događaja u PID1 kako bi se oslobodili CPU resursi u slučaju zagušenja.
- U menadžeru usluga implementirana je postavka MinimumUptimeSec za određivanje minimalnog vremena rada sustava (po defaultu 15 sekundi). Ako se do isteka tog vremena inicira gašenje ili ponovno pokretanje, na završnoj fazi dodaje se odgovarajuća kašnjenja.
- Za jedinice su implementirane nove postavke CPUSetPartition za postavljanje tipa particije cpuset u cgroup (root, isolated, member), RestrictFileSystemAccess za dozvolu pokretanja samo izvršnih fajlova verifikovanih digitalnim potpisom pomoću dm-verity, i CPUPressureWatch/CPUPressureThresholdSec/IOPressureWatch/IOPressureThresholdSec za primanje obaveštenja o visokom opterećenju CPU i ulaz/izlaz.
- Proširen je spisak metrika koje daje alat systemd-report. Na primer, dodane su informacije o veličini fizičke memorije i aktivnim jezgrama CPU-a, podaci o sadržaju polja SMBIOS i /etc/machine-info, informacije o podršci za režim Povjerljivog računarstva i podaci o proizvođaču čipova TPM2.
- U systemd-oomd implementirana je mogućnost definisanja pravila za isključivanje procesa prilikom nedostatka memorije u sistemu. Pravila se mogu postavljati u direktorijumu /etc/systemd/oomd/rules.d/ ili u servisnim jedinicama putem direktive OOMRule.
- U systemd-socket-proxy dodana je podrška za PROXY protokol koji odgovara prvoj verziji haproxy protokola.
- U systemd-networkd implementiran je novi backend sd-dhcp-relay za DHCP releje. Postavke u odjeljku [DHCPServer] — BindToInterface, RelayTarget, RelayAgentCircuitId i RelayAgentRemoteId su označene kao zastarjele, a umjesto njih treba koristiti parametar DHCPRelay u odjeljku [Network] i niz novih postavki u odjeljku [DHCPRelay] te u datoteci networkd.conf. Dodana je naredba networkctl dhcp-lease INTERFACE za očuvanje dump-a s informacijama o dodeli IP adresa (DHCP lease).
- U alat systemd-nspawn dodana je opcija —restrict-address-families, a u .nspawn datotekama konfiguracija RestrictAddressFamilies za ograničavanje korištenih adrese familija soketa unutar kontejnera. U budućim izdanjima, prema zadanim postavkama, bit će dozvoljene samo familije AF_INET, AF_INET6 i AF_UNIX.
- Podrška za stari format baze podataka udev (verzije 0.x) je prekinuta. Vruće ažuriranje s verzija systemd do izdanja 247 (opennet.hr) više nije podržano.
- Prilikom gradnje s C bibliotekom musl sada je potrebno najmanje izdanje musl 1.2.6.
Dodatno se može istaknuti izdanje projekta liberated-systemd 261, fork systemd-a koji je oslobođen koda koji bi mogao biti korišten za praćenje korisnika. U predloženom izdanju promjene se svode na uklanjanje koda koji dodaje polje birthDate s datumom rođenja korisnika u userdb, a u alat homectl dodana je opcija —birth-date za postavljanje dobi.
Izvor: linux.org.ru
