Pas gjashtë muajsh zhvillimi, është prezantuar lëshimi i menaxherit të sistemit systemd 257. Ndryshimet kryesore: utilitetet e reja systemd-sbsign dhe systemd-keyutil, mbështetje për MPTCP kur aktivizohet përmes soketeve, mbështetje fillestare për ndërtimin me bibliotekën e C-së Musl, utiliteti updatectl për menaxhimin e instalimeve të azhurnimeve përmes systemd-sysupdate, mundësia për të filluar shërbimet në një hapësirë PID të veçantë, mbrojtja nga fshirja aksidentale e skedarëve kur përdoret "systemd-tmpfiles --purge".
Mes ndryshimeve në versionin e ri:
- Është shtuar një utilitet i ri systemd-sbsign për të vërtetuar nënshkrimin digjital të skedarëve ekzekutivë në formatin PE (Portable Executable), të destinuar për përdorim gjatë ngarkimit në modalitetin EFI Secure Boot. Për të formuar nënshkrimin mund të përdoren motorë dhe ofrues të siguruar nga biblioteka OpenSSL. Systemd-sbsign mund të aplikohët si një alternativë për aplikacionet sbsigntool dhe pesign në utilitetin ukify gjatë formimit të imazheve universale të bërthamës UKI (Unified Kernel Image), që kombinojnë në një skedar ngarkuesin për UEFI (UEFI boot stub), imazhin e bërthamës Linux dhe ambientin e sistemit initrd të ngarkuar në memorie.
- Është shtuar një utilitet i ri systemd-keyutil, i cili realizon operacione të ndryshme mbi çelësat e fshehtë dhe certifikatat X.509. Për shembull, systemd-keyutil mund të përdoret për të kontrolluar mundësinë e ngarkimit të çelësave të fshehtë dhe certifikatave, si dhe për të nxjerrë çelësat e hapur nga ato në formatin PEM.
- Në njësitë ".socket", të përdorura për të siguruar funksionimin e mekanizmit të aktivizimit përmes soketëve (fillimin e proceseve kur provohet krijimi i një lidhjeje rrjetësore), është realizuar mbështetje për MPTCP (Multipath TCP), një zgjerim i protokollit TCP për të organizuar funksionimin e lidhjes TCP me dorëzimin e paketave në mënyrë simultane përmes disa rrugëve përmes interface të ndryshme rrjetësh, të lidhura me të ndryshme. IP adresat.
- Janë përfshirë ndryshime të nevojshme për ndërtimin duke përdorur bibliotekën standarde C Musl.
- Në komponentët e ndryshëm të systemd, që shfaqin tregues të përparimit të operacioneve (p.sh. systemd-repart, systemd-sysupdate/updatectl dhe importctl), është shtuar mundësia për të përdorur sekuenca ANSI për animimin e shfaqjes së përparimit. Të tilla sekuenca aktualisht mbështeten vetëm në Windows Terminal (pritet që me kalimin e kohës kjo mundësi të transferohet edhe në emulatorët e terminaleve për Linux).
- Janë zgjeruar mundësitë e komponentit systemd-sysupdate, i cili përdoret për përcaktimin automatik, shkarkimin dhe instalimin e azhurnimeve duke përdorur një mekanizëm atomik për zëvendësimin e particioneve, skedarëve ose kataloshëve (përdoren dy partiçione/skedarë/kataloshë të pavarur, ku njëra ka burimin aktual në punë dhe tjetra instalohet azhurnimi i radhës, pas së cilës partitë/skedarët/kataloshët swapohen). Në praktikë, systemd-sysupdate përdoret tashmë në GNOME OS.
Përveç procesit systemd-sysupdate, është shtuar një shërbim me të njëjtin emër, i cili lejon përdorimin e D-Bus për menaxhimin e azhurnimit të sistemit nga një përdorues pa privilegje. Për menaxhimin e shërbimit është përfshirë gjithashtu një utilitar i ri updatectl. Në systemd-sysupdate është shtuar flag '—offline' për të ndaluar shkarkimin e metadata nga rrjeti dhe të përdorë vetëm versionet e shkarkuara tashmë në sistemin lokal. Për të gjitha komandat është shtuar mbështetje për daljen në formatin JSON.
- Për shërbimet është implementuar një pronë e re ‘PrivatePIDs’, me anë të së cilës mund të organizohet nisja e proceseve me PID 1 (procesi inic) në një hapësirë të veçantë identifikuesish procesesh (PID namespace). Në ambientin e krijuar për procesin e nisur do të jenë të dukshme vetëm proceset nga hapësira e emrave të krijuar për të.
- Regullave të udev iu është shtuar mbështetje për përputhjet pa marrë parasysh regjistrin e karaktereve (p.sh., 'ATTR{foo}=="abcd"'). Përmes udev është realizuar sigurimi i aksesit për përdoruesit lokalë pa privilegje (‘uaccess’) në pajisjen /dev/udmabuf, e cila është e nevojshme për të punuar me kamerat IPMI përmes libcamera. Në udev është e mundur njohja e portofolëve të ndryshëm të harduerit me ndërfaqe USB dhe caktimi i tiparit ID_HARDWARE_WALLET për ta, që lejon përdorimin e modit ‘uaccess’ për aksesin e përdoruesve pa privilegje.
- Në skedarin /etc/os-release janë shtuar fushat e reja RELEASE_TYPE, EXPERIMENT dhe EXPERIMENT_URL. ‘RELEASE_TYPE’ mund të ketë vlera ‘experimental’, ‘development’, ‘stable’ dhe ‘lts’ për të ndarë versionet stabile nga ato në zhvillim dhe ndërtimet eksperimentale. Parametrat EXPERIMENT dhe EXPERIMENT_URL janë të destinuara për shpjegimin e natyrës së ndërtimit eksperimental.
- Në utilitarin run0, i zhvilluar si zëvendësim për programin sudo, është shtuar opsioni «—shell-prompt-prefix», i cili përcakton stringun-prefiks të komandës së shërbimit. Nga default, si prefiks shfaqet emoji «🦸» për të theksuar vizualisht seancën me privilegje të shtuar.
- Në systemd-tmpfiles me qëllim shmangien e fshirjes aksidentale të skedhave, opsioni «—purge» tani aplikohet vetëm për konfigurimet në tmpfiles.d/, për të cilat është vendosur qartë flamuri «$». Për të kryer operacionin «—purge» tani kërkohet gjithashtu specifikimi i të paktën një skedari nga каталогу tmpfiles.d/. Për rreshtat me tipin ‘L’ është shtuar flamuri ‘?’, duke specifikuar se linku simbolik do të krijohet vetëm nëse ekziston skedari që është objektiv.
- Në menaxherin e shërbimeve dhe utilitetet përkatëse, është vazhduar përkthimi i kodit të gjurmimit të proceseve në përdorimin e PIDFD në vend të PID. Identifikuesi PIDFD është i lidhur me një proces të veçantë dhe nuk ndryshon, ndërsa PID mund të lidhet me një proces tjetër pas përfundimit të procesit aktual që është i lidhur me këtë PID.
- Për shërbimet është realizuar mundësia e përcaktimit në parametrin «RestartMode» të vlerës «debug», ku rinisja e shërbimit të dështuar do të kryhet duke përfshirë modin e debugimit (në vendoset variabla ambientale DEBUG_INVOCATION=1), ndërsa vlera LogLevelMax do të rritet përkohësisht në nivelin e debugimit.
- Në procesorin PID 1 është realizuar mundësia e ngarkimit të rregullave për modulin LSM IPE (Integrity Policy Enforcement), që përcakton politikën e sigurisë për gjithë sistemin (cilat operacione janë të lejuara dhe si duhet të verifikohet autenticiteti i komponenteve).
- Në skedarët unit «.timer» është shtuar opsioni «DeferReactivation», i cili lejon kalimin e aktivizimit të radhës sipas timerit, nëse shërbimi ende nuk ka përfunduar ekzekutimin e tij që nga aktivizimi i kaluar.
- Në parametrin e skedarëve unit PrivateUsers është realizuar mundësia e përcaktimit të vlerës «identity» për të aktivizuar hartimin e identifikatorëve të përdoruesve gjatë krijimit të hapësirës së emrave (user namespace).
- Në parametrin e skedarëve unit PrivateTmp është shtuar mbështetja për vlerën «disconnected», ku për katalogët /tmp/ dhe /var/tmp/ do të përdoren instanca të veçanta të tmpfs.
- Në parametrin e skedave unit të ProtectControlGroups është shtuar përkrahja për modet e reja "private" dhe "strict", të cilat krijojnë një hapësirë të re emërimi për shërbimin cgroup (cgroup namespace) dhe montojnë cgroupfs. Në rastin e opsionit "strict", montimi i cgroupfs bëhet në mënyrë vetëm për lexim.
- Në parametrat StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory dhe ConfigurationDirectory është ofruar mundësia e përdorimit të flagut ‘:ro’ për të kufizuar q aksesin në katalogët përkatës në mënyrë vetëm për lexim.
- Në parametrin e komandës së bërthamës "systemd.machine_id" është shtuar përkrahja për vlerën "firmware", ku identifikuesi i sistemit (machine ID) do të llogaritet në bazë të UUID nga SMBIOS/DeviceTree.
- Shtuar mbështetje për thirrjet sistemike mseal(), listmount() dhe statmount(), që janë shfaqur në versionet e fundit të bërthamës Linux.
- Në utilitetet resolvectl, timedatectl dhe systemd-inhibit është shtuar mbështetje interaktive për autorizim përmes Polkit.
- Në utilitetin systemctl është shtuar mundësia e përdorimit të flagut "—now" në komandën "reenable".
- Në utilitetin systemd-mount është shtuar opsioni "—json" për daljen në formatin JSON (për shembull, nëse përdoret së bashku me "—list-devices", do të jepet një listë e pajisjeve në formatin JSON).
- Në utilitetin "localectl" janë shtuar opsionet "-l" dhe "—full" për të çaktivizuar prerjen e linjave të gjata gjatë daljes.
- Në sleep.conf është shtuar opsioni HibernateOnACPower që lejon të shtyhet kalimi në modalitetin e gjumit deri në shkëputjen e pajisjes nga burimi i energjisë.
- Në systemd-sysusers në rreshtat "u" është shtuar mbështetje për modifikuesin "!", me anë të të cilit mund të krijohen llogari përdoruesish tërësisht të bllokuar (më parë, për të bllokuar një përdorues, përdorej vendosja e një fjalëkalimi të papërshtatshëm, që, për shembull, nuk e çonte në bllokimin gjatë autentifikimit me çelësa në SSH).
- Në systemd-coredump është shtuar opsioni "EnterNamespace", që ofron qasje në hapësirën e pikave të montimit të çdo procesi që ka përfunduar në mënyrë të gabuar për të marrë simbolet e tij të depuratorit. Në praktikë, ky opsion mund të jetë i dobishëm për organizimin e gjurmimit mbrapsht (backtrace) të skedarëve core nga aplikacionet që funskionojnë në konteinerë të izoluar.
- Në systemd-logind është aktivizuar trajtimi i kombinimit Ctrl-Alt-Shift-Esc për dërgimin e sinjalit org.freedesktop.login1.SecureAttentionKey ndaj komponenteve të mjedisit të përdoruesit me kërkesën për të shfaqur dialogun për hyrjen e sigurt në sistem. Është zbatuar konfigurimi "DesignatedMaintenanceTime" për planifikimin automatik të ndalimit në një kohë të caktuar. Në përputhje me mbështetje për aparatet DRM dhe evdev është shtuar mbështetje për konfigurimin e aksesit të përdoruesve të pa privilegjuar në aparaturat hidraw (kontrollues lojërash dhe joystick-e).
- Në systemd-machined është shtuar mbështetje për regjistrimin nga klientët e pa privilegjuar makinat virtuale dhe kontejnerët. Është ofruar akses në funksionalitetin e systemd-machined përmes API Varlink, përveç D-Bus.
- Në skedarin e konfigurimit networkd.conf është shtuar një seksion i ri "[IPv6AddressLabel]" për konfigurimin e etiketave dhe përfaqësuesve për adresat IPv6.
- Në komandën ‘networkctl edit’ është shtuar opsioni «—stdin» për marrjen e përmbajtjes së skedarit nga rrjedha standarde. Në komandat ‘networkctl edit’ dhe ‘networkctl cat’ është shtuar mbështetje për redaktimin dhe shfaqjen e skedarëve .netdev duke specifikuar ndërfaqen rrjetë. Është shtuar opsioni «—no-ask-password» për çaktivizimin e autorizimit interaktiv.
- Në utilitat e ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart, dhe systemd-sbsign është shtuar opsioni «—certificate-source» për ngarkimin e certifikatës X.509 përmes ofruesit OpenSSL në vend të ngarkimit të drejtpërdrejtë nga skedari.
- Në systemd-boot është shtuar mundësia e përdorimit të butonave të kontrollit të volumit për të lëvizur lart dhe poshtë në menunë e boot, gjë që mund të jetë e dobishme në pajisje të tilla si smartphone. Në utilitën bootctl është shtuar mbështetje për vendosjen e DB-ve UEFI Secure Boot në formatin ESL(db/dbx/…) për systemd-boot.
- Në journalctl është shtuar opsioni «—list-invocation» për të treguar një listë të thirrjeve të njëit dhe opsioni «—invocation» («-I») për të treguar loge që lidhen vetëm me një thirrje të caktuar.
- Në systemd-nspawn është shtuar mbështetje për përdorimin e pa privilegjuar të FUSE (Filesystem in Userspace) në kontejnerë. Kur përdoret opsioni «—bind-user» është garantuar kalimi i çelësave SSH të përdoruesit në konteiner, të nevojshëm për qasje përmes SSH.
- Në libsystemd është shtuar një ndërfaqe e re programore «sd-json», që përdor formatin JSON, si dhe një ndërfaqe «sd-varlink», që përdor IPC Varlink.
- Versioni themelore të bërthamasë është rritur në versionin 5.4, i formuluar në vitin 2019. Në vitin e ardhshëm planifikohet të ndërpritet mbështetja për bërthamat më të vjetra dhe të shpallet versioni 5.4 si versioni minimalisht i mbështetur.
- Mbështetja për cgroups v1 është e përkufizuar si e vjetruar dhe e çaktivizuar siç është standarde (për ta aktivizuar në linjën e komandës së bërthamës, duhet të specifikoni SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 përveç aktivizimit në konfigurimet e systemd). Në lëshimin e ardhshëm të systemd 258 planifikohet që kodi i lidhur me cgroups v1 të fshihet plotësisht. Në versionin e systemd 258 gjithashtu pritet që mbështetja për skenaret e shërbimeve System V të fshihet.
Burimi: opennet.ru
