Nakon tri meseca razvoja je na voljo izdanje sistemskog menadžera systemd 261. Ključne promjene: priprema za podršku API-ju za provjeru godine, podrška za Kexec Handover i Live Update Orchestration za ponovni pokret bez gubitka stanja, podsklop IMDS (Instance Metadata Service), funkcionalnost za zaštitu pokretanja na sustavima bez fizičkog TPM-a (Trusted Platform Module), komponenta systemd-sysinstall s implementacijom instalatora.
Med sprememb u novom izdanju:
- Dodana nova komponenta systemd-sysinstall s implementacijom jednostavnog instalatora operativnog sustava kojim se može upravljati iz naredbene linije ili putem interaktivnog tekstualnog sučelja. Funkcionalnost systemd-sysinstall formirana je od već postojećih mogućnosti systemd: za konfiguraciju diskovnih particija koristi se systemd-repart, za instalaciju jezgre i generiranje izbornika za pokretanje — naredba «bootctl link», za instalaciju bootloadera systemd-boot — naredba «bootctl install», za inicijalnu konfiguraciju instaliranog sustava (npr. odabir lokalizacije i rasporeda tipkovnice) — systemd-creds.
- U okviru pripreme za implementaciju zahtjeva zakona o integraciji u OS API-ja za provjeru godine u BDP-u userdb dodano polje birthDate s datumom rođenja korisnika. Dodano polje može se koristiti u razvoju za distribucije temeljenom na xdg-desktop-portal i servisu AccountsService za davanje aplikacijama informacija o starosnoj kategoriji korisnika putem D-Bus sučelja org.freedesktop.AgeVerification1 ili org.freedesktop.ParentalControls. Za postavljanje godine dodana je opcija —birth-date u alatu homectl.
- U obradu PID1 dodana je podrška za podsklop Linux jezgre LUO (Live Update Orchestration) i KHO (Kexec Handover), koji omogućuju potpuno ponovno pokretanje i ažuriranje jezgre bez zaustavljanja rada i bez gubitka stanja sustava, uređaja i procesa. KHO omogućuje pokretanje nove jezgre iz stare bez gubitka stanja sustava, dok LUO implementira očuvanje stanja uređaja i radne memorije, kao i osigurava kontinuitet operacija vezanih uz DMA i obradu prekida.
U systemd-u za sistemske i korisničke jedinice implementirana je mogućnost očuvanja datotečnih deskriptora prije poziva na kexec i njihovo obnavljanje nakon ponovnog pokretanja jezgre putem kexec. U jedinicama također je moguće kreirati vlastite sesije. LUO, ki se shranjujejo in obnavljajo med izvajanjem kexec. Za vključitev shranjevanja stanja shramba datotečnih descriptorjev uporabite nastavitev FileDescriptorStorePreserve=yes. - Izvedena podpora systemd-imdsd, ki zagotavlja API na osnovi Varlink IPC za dostop lokalnih programov do storitev IMDS (Instance Metadata Service), ki jih nudijo različni ponudniki oblačnih sistemov. IMDS omogoča virtualnim strojem, da pridobijo informacije o oblačnem okolju, na primer, omogoča pridobitev podatkov o omrežni konfiguraciji, geografski lokaciji vozlišča, tipu CPU in velikosti shranjevanja. V systemd-imdsd je na voljo nizko-nivojski API za dostop do posameznih polj in visoko-nivojski vmesnik za poizvedbe po standardnih ključih, povezanih s ključi, specifičnimi za posamezne oblačne platforme. Za interakcijo s systemd-imdsd je bila dodana orodje systemd-imds, ki omogoča uvoz polj iz IMDS v lokalni sistem računov.
Za prepoznavanje oblačnih platform na podlagi informacij iz SMBIOS in določitev funkcionalnosti IMDS, ki je na voljo na trenutnem vozlišču, je bila dodana nova baza podatkov hwdb.d/40-imds.hwdb. Izvedeno je prepoznavanje oblačnih platform Amazon EC2, Microsoft Azure, Google Compute Engine, Hetzner, Oracle Cloud, Scaleway, Tencent Cloud, Alibaba ECS in Vultr. Na voljo je obdelovalec systemd-imds-generator za samodejno vstavitev storitve za pridobivanje podatkov preko IMDS v primeru odkritja delovanja pod upravljanjem podprte oblačne platforme. Možno je ustvarjanje univerzalnih slik, ki podpirajo uporabo IMDS pri zagonu v oblačnih okoljih, vendar lahko delujejo tudi brez IMDS. - V systemd-stub je izvedena funkcionalnost boot secret, ki omogoča generiranje ključa na osnovi EFI-spremenljivke, shranjene v nedostopnem območju za operacijski sistem in inicializirane z naključnimi vrednostmi. V initrd se ključ prenese preko datoteke /.extra/boot-secret. Predstavljena možnost je lahko potrebna za pridobitev specifičnega za sistem naključnega ključa za overitev postopka zagona ali šifriranje na sistemih brez strojnega TPM (Trusted Platform Module).
- Dodana je storitev systemd-tpm2-swtpm.service za zagon emulatorja TPM čipov swtpm (Software TPM Emulator), ki ga lahko uporabite za samodejno preklapljanje na programsko implementacijo TPM za zaščiteno inicializacijo na sistemih brez strojnega TPM. Programski TPM deluje v uporabniškem prostoru in ne omogoča ravni zaščite, kot jo nudi strojni TPM, vendar je v določenih situacijah njegova uporaba upravičena v primerjavi z delom brez TPM. Na primer, programski TPM lahko pridobi ključ za šifriranje particij z novo funkcionalnostjo „boot secret“ in uporablja za shranjevanje svojega stanja particijo ESP (EFI sistemska particija) na disku. Za samodejno vključitev programske TPM je predlagana nastavitvena parameter ukazne vrstice systemd.tpm2_software_fallback.
- Razglašen je bil za stabilnega in umaknjen v /usr/bin/ komponento systemd-sysupdate, namenjen samodejnemu odkrivanju, prenosu in namestitvi posodobitev z uporabo atomske mehanizme zamenjave particij, datotek ali imenikov (uporabljata se dve neodvisni particiji/datoteki/imeniki, kjer je ena trenutni aktivni vir, druga pa se uporablja za novo posodobitev, nato se particije/datoteke/imeniki zamenjajo).
- V systemd-resolved je bila implementirana možnost preusmeritve ali določanja novih DNS zapisov s postavitvijo datotek v formatu JSON v imenike systemd/resolve/static.d/. V nasprotju s /etc/hosts v novih datotekah ni mogoče le povezati IP naslovov z imeni gostiteljev, ampak tudi določiti DNS RR zapise, ki so različni od „A“ in „AAAA“. Poleg tega so v systemd-resolved dodane nastavitve velikosti DNS predpomnilnika: DNSCacheSize, MulticastDNSCacheSize in LLMNRCacheSize.
- Dodana je bila orodje ‘storagectl’ za pregledovanje naprav za shranjevanje in upravljanje povezav blokovnih naprav ter datotečnih sistemov.
- V okviru inicijativi za zmanjšanje odvisnosti je bil v libsystemd implementiran dinamični nalagalnik knjižnic libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk in libcryptsetup z uporabo klica dlopen() v situacijah, ko so njihove funkcije dejansko potrebne.
- V systemd-tmpfiles je bil dodan parameter —inline, ki omogoča definiranje direktiv v ukazni vrstici brez ustvarjanja konfiguracijskih datotek v tmpfiles.d/ in brez pošiljanja nastavitev prek STDIN. Dodan je nov tip direktiv k/K za določanje. capabilities. Dodan je konfiguracijski fajl tmpfiles.d/root.conf koji postavlja dozvole 0555 (-r-xr-xr-x) za korijenski direktorij (/) kako bi se zaštitio od postavljanja pogrešnih prava tijekom dinamičkog formiranja korijenske datotečne sustave.
- U alatu bootctl omogućen je backup bootloadera systemd-boot i zapisivanje stare verzije u UEFI kao alternativne opcije za pokretanje.
- V systemd-vmspawn dodana je podrška za izravno pokretanje jezgre bez korištenja UEFI firmware-a. Implementirana je opcija —firmware-features za selektivno uključivanje ili isključivanje pojedinih mogućnosti firmware-a. Dodan je način —console=headless za pokretanje virtualne mašine bez konzole i ekrana. Dodana je opcija —image-disk-type za odabir vrste blokovnog skladišta koja se koristi u VM-u (virtio-blk, virtio-scsi, nvme, scsi-cd). Dodana je opcija —coco (Confidential Computing) za uključivanje načina šifriranja memorije virtualnih mašina koristeći AMD SEV-SNP tehnologiju.
- V systemd-hostnamed i /etc/machine-info dodana je podrška za vezivanje proizvoljnih oznaka na trenutni sustav korištenjem parametra Tags. Dodijeljene oznake mogu se zatim koristiti za selektivnu primjenu postavki uz provjeru kroz izraz ConditionMachineTag.
- Dodane su postavke EventLoopRateLimitIntervalSec i EventLoopRateLimitBurst koje ograničavaju intenzitet ciklusa obrade događaja u PID1 radi oslobađanja resursa CPU-a u slučaju zatezanja.
- V upravljalniku storitev je bila uvedena nastavitev MinimumUptimeSec za določitev minimalnega časa delovanja sistema (privzeto 15 sekund). Če je pred potekom tega časa sproženo zaustavljanje ali ponovni zagon, se v končni fazi doda ustrezna zakasnitev.
- Za jedinice su uvedene nove postavke CPUSetPartition za postavljanje tipa particija cpuset u cgroup (root, isolated, member), RestrictFileSystemAccess za dozvolu pokretanja samo izvršnih datoteka verificiranih digitalnim potpisom putem dm-verity, te CPUPressureWatch/CPUPressureThresholdSec/IOPressureWatch/IOPressureThresholdSec za obavještavanje o visokom opterećenju CPU-a i ulaza/izlaza.
- Proširen je popis metrika koje pruža alat systemd-report. Na primjer, dodane su informacije o veličini fizičke memorije i aktivnim jezgrima CPU-a, podaci o sadržaju polja SMBIOS i /etc/machine-info, informacije o podršci za način Confidential Computing, te informacije o proizvođaču čipova TPM2.
- V systemd-oomd implementirana je mogućnost određivanja pravila za filtriranje procesa pri nedostatku memorije u sustavu. Pravila se mogu postaviti u direktoriju /etc/systemd/oomd/rules.d/ ili unutar servisnih jedinica putem direktive OOMRule.
- V systemd-socket-proxy dodana je podrška za PROXY protokol, koji odgovara prvoj verziji haproxy protokola.
- V systemd-networkd implementiran je novi backend sd-dhcp-relay za DHCP releje. Postavke u sekciji [DHCPServer] — BindToInterface, RelayTarget, RelayAgentCircuitId i RelayAgentRemoteId su označene kao zastarjeli, a umjesto njih treba koristiti parametar DHCPRelay u sekciji [Network] i niz novih postavki u sekciji [DHCPRelay] i u datoteci networkd.conf. Dodana je komanda networkctl dhcp-lease INTERFACE za čuvanje dumpa s informacijama o vezivanju IP adresa (DHCP lease).
- V orodju systemd-nspawn dodana je opcija —restrict-address-families, a u datotekama .nspawn postavka RestrictAddressFamilies za ograničavanje korištenih u kontejneru familija adresa soketa. U budućim izdanjima, po defaultu će biti dozvoljene samo familije AF_INET, AF_INET6 i AF_UNIX.
- Prethodna podrška za stari format baze udev (verzije 0.x) je ukinuta. Mogućnost „hot upgrade“ s verzija systemd na izdanje 247 (opennet.ru) više nije podržano.
- Pri gradnji s C knjižnico musl je sedaj potreben vsaj izdelek musl 1.2.6.
Dodatno lahko omenimo izdanje projekta liberated-systemd 261, razvijajući fork systemd, oslobođen od koda koji se može koristiti za praćenje korisnika. U predloženom izdanju promjene se svode na uklanjanje koda koji dodaje u userdb polje birthDate s datumom rođenja korisnika, a u utiliteta homectl opciju —birth-date za postavljanje dobi.
Izvor: linux.org.ru
