Երեք ամսվա մշակման հետեւից հասանելի է systemd 261 համակարգային կառավարման արձանագրության թողարկումը։ Ինքնաբեր փոփոխություններ՝ API աջակցություն տարիքային վավերացման, Kexec Handover և Live Update Orchestration ենթաամսյակի աջակցություն, IMDS (Instance Metadata Service) ենթաամսյակ, ֆունկցիոնալություն ֆիզիկական TPM (Trusted Platform Module) չունեցող համակարգերում բեռնավորման պաշտպանություն, systemd-sysinstall բաղադրիչի իրականացմանտպավորություն։
Նկատի առնելով նոր թողարկման փոփոխությունները՝
- Ավելացվել է նոր systemd-sysinstall բաղադրիչ, որը իրականացնում է օպերացիոն համակարգի պարզ ինստալլատոր, որը կարելի է կառավարել command-line կամ ինտերակտիվ տեքստային միջավայրից։ systemd-sysinstall-ի ֆունկցիոնալությունը ձևավորվել է արդեն գոյություն ունեցող systemd հնարավորություններով. սկիզբը մարմնավորելու համար օգտագործվում է systemd-repart, kernel-ի տեղադրելու և բեռնման մենյու ստանալու համար՝ «bootctl link» հրաման, systemd-boot բեռնող սարքի տեղադրման համար՝ «bootctl install» հրաման, որ պետք է նախատեսված լինի համակարգված համակարգի առաջին կարգավորմամբ (օրինակ, լեզվի և ստեղնաշարի դասավորման ընտրություն)՝ systemd-creds-ի միջոցով։
- Տեղեկատվության պահանջների համաձայն, լրացվել է userdb-ում ծննդյան ամսաթվի դաշտ, որը նախատեսված է օգտագործողի ծննդյան ամսաթվի ստուգման հիման վրա API-ի իրականացնելու համար։ Ավելացված դաշտը կարող է օգտագործվել xdg-desktop-portal և AccountsServiceի համար, որոնք թույլ են տալիս приложениями տեղեկություններ տրամադրել օգտագործողի տարիքի մասին D-Busին «org.freedesktop.AgeVerification1» կամ «org.freedesktop.ParentalControls» միջոցով։ homectl ծառայության գործում ավելացվել է «--birth-date» տարբերակ։
- PID1 մշակողին ավելացվել է Linux kernel LUO (Live Update Orchestration) և KHO (Kexec Handover) ենթաամսյակների աջակցություն, որոնք թույլ են տալիս ամբողջական ցերով վերագործարկել և թարմացնել kernel առանց համակարգի աշխատանքը կանգնեցնելու կամ համակարգի, սարքերի և գործընթացների վիճակը կորստի։ KHO հնարավորություն է տալիս նոր kernel-ը սկսելուց առանց համակարգի վիճակի կորստի, իսկ LUO-ը կյանքի վիճակի պահպանություն ապահովող հնարավորություններ և տրամադրում է միաժամանակյա գործողություններ, որոնք կապված են DMA-ի և ընդհատման մշակման հետ։
systemd-ի համակարգային և օգտվողական unit-ներում իրականացված է ֆայլերի նկարագրման պահպանման հնարավորությունը kexec հրամանների զանգից առաջ և վերականգնման միաժամանակ գնալուց հետո։ unit-ներում կարելի է ստեղծել սեփական LUO նստաշրջաններ, որոնք պահպանվում և վերականգնվում են kexec հրատվությունների միջոցով։ Դրույթը՝ մարտկոցային նկարագրերը պահելու համար, նշանակում է՝ ‘FileDescriptorStorePreserve=yes’։
- realized systemd-imdsd տեղաբաշխման ենթաամսյակ, որը տրամադրում է API Varlink IPC վրա հիմնված, տեղական ծրագրերի ծածկացման հարցեր IMDS (Instance Metadata Service) ծառայություններին, որոնք տրամադրվում են տարբեր ամպային ծառայությունների կողմից։ IMDS-ը հնարավորություն է տալիս... виртуальным машинам անտեղադրելի կլիմայական միջավայրի տեղեկատվություն ստանալ, օրինակ, կարելի է տեղեկություններ ստանալ ցանցային կոնֆիգուրացիայի, հանգույցի երկրաչափական գտնվելու վայրի, CPU-ի տեսակների և պահեստավորման չափի մասին։ systemd-imdsd-ն տրամադրում է թե՛ ցածր մակարդակի API, որը թույլ է տալիս մուտք գործել առանձին դաշտեր, և թե՛ բարձր մակարդակի ինտերֆեյս, որը թույլ է տալիս հարցումներ կատարել նմուշային բանալիների հիման վրա, որոնք համապատասխանել են առանձին կլիմայական հարթակներին հատուկ բանալիներին։ systemd-imds-ն աջակցող համակարգերում IMDS-ի դաշտերը ներմուծելու համար ավելացված է systemd-imds հարմարանք։
Կլիմայական հարթակները ճանաչելու համար SMBIOS-ից ստացված տեղեկատվությամբ և ընթացիկ հանգույցում IMDS-ի հասանելի գործառույթը որոշելու համար ավելացվել է նոր hwdb.d/40-imds.hwdb տվյալների բազա։ Իրականացվել են Amazon EC2, Microsoft Azure, Google Compute Engine, Hetzner, Oracle Cloud, Scaleway, Tencent Cloud, Alibaba ECS և Vultr կլիմայական հարթակների ճանաչումները։ Ընդունելի է systemd-imds-generator մշակող, որը ավտոմատ կերպով լրացնում է IMDS-ի միջոցով տվյալների ստացման ծառայությունը, եթե նշվում է աջակցվող կլիենտային հարթակում աշխատելու փաստը։ Հնարավոր է ստեղծել ընդհանուր պատկերներ, որոնք աջակցում են IMDS-ի օգտագործմանը կլիմայական միջավայրերում, սակայն կարող են աշխատել նաև առանց IMDS-ի։
- systemd-stub-ում իրականացել է «boot secret» ֆունկցիոնալությունը, որը թույլ է տալիս ձևավորել բանալին EFI-փոփոխականի հիման վրա, որը պահվում է օպերացիոն համակարգի համար անհասանելի տարածքում և սկզբնական արժեքով։ initrd-ում բանալին փոխանցվում է \/.extra\/boot-secret ֆայլի միջոցով։ Ներկայացված հնարավորությունը կարող է պահանջվել հատուկ համակարգի համար պատահական բանալու ստանալու համար, որը պետք է հաստատի բեռնման գործընթացը կամ կոդավորումը համակարգերում, որտեղ չկա ապարատային TPM (Trusted Platform Module)։
- systemd-tpm2-swtpm.service ծառայությունը ավելացված է swtpm (Software TPM Emulator) TPM-չիպեր էմուլյացիայի սկիզբը սկսելու համար, որը կարելի է օգտագործել ապարատային TPM-ի բացակայությամբ պաշտպանված բեռնման համար ծրագրային իրականացման որոշման վերադարձի համար։ Ծրագրային TPM-ն աշխատում է օգտատիրոջ տարածքում և չի կարող ապահովել ապարատային TPM-ի մակարդակի պաշտպանության, սակայն որոշ դեպքերում դրա կիրառումը նպատակահարմար է, համեմատած TPM-ի բացակայությամբ աշխատելու հետ։ Օրինակ, ծրագրային TPM-ն կարող է ձեռք բերել բաժինների կոդավորման բանալին, օգտագործելով նոր «boot secret» ֆունկցիոնալությունը և պահելու նրա վիճակը ESP (EFI System Partition) բաժնում։ Ծրագրային TPM-ի ավտոմատ ակտիվացման համար առաջարկվում է systemd.tpm2_software_fallback kernel-ի հրամանատիրոջ պարամետր։
- Աջակցված ու կայուն վիճակում է դրվել /usr/bin/ համակարգային unit systemd-sysupdate, որը նախատեսված է ավտոմատ طورով թարմացումների հայտնաբերման, ներբեռնելու և տեղադրելու համար՝ օգտագործելով ատոմար բաժանման մեխանիզմ, որտեղ երկու անկախ բաժին/ֆայլ/катալոգ է կենցաղվում, միում երկուս՝ ներկայիս գործնական աղբյուրից, իսկ մյուսում տեղադրվում է հերթական թարմացումը, ապա բաժինները/ֆայլերը/катալոգները փոխվում են տեղերով։
- systemd-resolved-ում ամրագրված է DNS-ռեկորդների վերագրառելու կամ նորերի հուշում կատարելու հնարավորությունը՝ JSON ֆորմատով ֆայլեր տեղադրելով systemd/resolve/static.d/ ղեկավարում։ Փոխանակ /etc/hosts-ի, նոր ֆայլերում հնարավոր է կապել նվազագույն որակների, IP-հասցեներ ոչ միայն հոսթ անունների, այլ նաև սահմանել ռեսուրսային DNS RR-ռեկորդներ, որոնք տարբեր են «A» և «AAAA»-ից։ Բացի այդ, systemd-resolved-ում ավելացվել են DNS-կանուշի չափի կարգավորումները՝ 'DNSCacheSize', 'MulticastDNSCacheSize' և 'LLMNRCacheSize':
- Ավելացվել է ‘storagectl’ ծրագիրը՝ պահեստավորող սարքերի տեսություն իրականացնելու և բլոկային սարքերի և ֆայլային համակարգերի միացման կառավարումը.
- Արդյունքում կախվածությունները կրճատելու նախաձեռնության շրջանակներում libsystemd-ում իրականացվում է dynamic library loading՝ libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk և libcryptsetup,
dlopen() ցուցակը օգտագործելով այն իրավիճակներում, երբ դրանց ֆունկցիաները իսկապես անհրաժեշտ են: - systemd-tmpfiles-ում ավելացել է «—inline» դրոշ, որը թույլ է տալիս ցուցադրել ցուցումներ հրամանային լուծման մեջ՝ առանց tmpfiles.d/ ֆայլերի ստեղծելու և առանց կարգավորումների փոխանցելու STDIN: Ավելացված է նոր ցուցանիշի ‘k/K’ տեսակը՝ կարողություններ ցուցադրելու համար։ Ավելացված է tmpfiles.d/root.conf կոնֆիգուրացիոն ֆայլը՝ 0555 թույլտվությամբ (–r-xr-xr-x) արմատային каталогին (/) արգելափակում տեղադրելու համար սխալ կարգավորումների ժամանակ, երբ դինամիկ ձևափոխվում է արմատային FS:
- bootctl utility-ում ապահովվում է systemd-boot բեռնողի резервային պատճենը պահպանելու և UEFI-ում հին տարբերակը որպես դիմացկուն բեռնում գրանցելու հնարավորություն:
- systemd-vmspawn-ում ավելացվել է աջակցություն անմիջական բեռնելու համար kernel-ն առանց UEFI прошивки օգտագործելու: Իրականացվել է «—firmware-features» տարբերակ՝ հատուկ firmware-ական հատկությունները միացնելու կամ անջատելու համար: Ավելացվել է режим «—console=headless» վիրտուալ մեքենան տեղադրելու համար առանց կոնսոլի և էկրանի: Ավելացվել է «—image-disk-type» տարբերակ՝ VM-ում օգտագործվող բլոկային պահեստի տեսակը (virtio-blk, virtio-scsi, nvme, scsi-cd) ընտրելու համար: Ավելացվել է «—coco» (Confidential Computing) տարբերակ՝ հիշողության encryption mode-ների միացման համար: օգտագործման համար կիրառվում է KubeVirt տեխնոլոգիան, որը թույլ է տալիս աշխատեցնել դասական վիրտուալ մեքենաներ ուղղակի Kubernetes կոնտեյներում և արդեն ունի բոլոր անհրաժեշտ ինտեգրացիաները Cluster API-ի հետ՝ կառավարվող Kubernetes կլաստերներ սկսելու համար «երևակայական» Kubernetes կլաստերում: AMD SEV-SNP տեխնոլոգիա օգտագործմամբ.
- systemd-hostnamed և /etc/machine-info-ում ավելացվել է օրվա համակարգին անհայտ նշանների ամրագրման աջակցություն՝ օգտագործելով «Tags» պարամետր։ Ցուցադրված նշանները ապա կարող են կիրառվել ընտրյալ կարգավորումներ տեղադրելու համար համապատասխանմամբ `ConditionMachineTag` արտահայտության միջոցով:
- Ավելացվել են EventLoopRateLimitIntervalSec և EventLoopRateLimitBurst կարգավորումները՝ PID1-ում իրադարձությունների մշակման ցիկլի ինտենսիվությունը սահմանելու համար՝ CPU ռեսուրսները ազատելու համար ցիկլում մնալիս:
- Սերվիսային կառավարիչում իրականացված է MinimumUptimeSec կարգավորմամբ համակարգի նվազագույն աշխատելու ժամանակը սահմանելու համար (նախադիտված է 15 վայրկյան): Եթե այս ժամանակահատվածի ավարտից առաջ սկսվում է գաղտնիք կամ վերուժում, ապա ավարտման փուլում ավելացվում է համապատասխանում ուշացում:
- Միավորների համար իրականացվել են նոր CPUSetPartition կարգավորումներ՝ cpuset բաժանի տեսակները սահմանելու համար cgroup-ում («root», «isolated», «member»), RestrictFileSystemAccess, որը թույլ է տալիս մեկնարկել միայն գործարկելի ֆայլեր, որոնք թվային թվագրումով վավերացված են dm-verity-ի միջոցով, և CPUPressureWatch/CPUPressureThresholdSec/IOPressureWatch/IOPressureThresholdSec, որպեսզի ծանուցումներ ստանան բարձր CPU և մուտք/արտաձարյալ ծանրաբեռնվածության մասին:
- Systemd-report հնարավածությունների ցուցակը ընդլայնվել է: Օրինակ, ավելացվել են ֆիզիկական հիշողության և ակտիվ CPU միջուկների չափերի մասին տեղեկությունները, SMBIOS-ի և /etc/machine-info դաշտերի պարունակության մասին տվյալները, Confidential Computing ռեժիմի աջակցության մասին տեղեկատվություն և TPM2 չիպերի արտադրողի տվյալները:
- Systemd-oomd-ում իրականացվել է ավելացման համաձայնություն պարբերականների սահմանման համար՝ համակարգում հիշողության պակասի դեպքում գործերին մարմանը: Կանոնները կարող են սահմանվել /etc/systemd/oomd/rules.d/ կատալոգում կամ ծառայության միավորներում OOMRule ցուցանիշի միջոցով:
- Systemd-socket-proxy-ում ավելացվել է «PROXY» արձանագրության աջակցություն, որը համահունչ է առաջին haproxy արձանագրությանը:
- Systemd-networkd-ում իրականացվել է նոր sd-dhcp-relay բեքենդի աջակցություն DHCP ռելեի համար: Հին կարգավորումները հայտնում են «[DHCPServer]» բաժնում՝ BindToInterface, RelayTarget, RelayAgentCircuitId և RelayAgentRemoteId, որոնց փոխարեն պետք է օգտագործել DHCPRelay պարամետրը «[Network]» բաժնում և նոր կարգավորումների շարք «[DHCPRelay]» բաժնում և networkd.conf ֆայլում: Ավելացվել է ‘networkctl dhcp-lease INTERFACE’ հրամանը IP հասցեների կապի (DHCP lease) տեղեկությունների թղթապանակը պահպանելու համար:
- Systemd-nspawn գործիքին ավելացվել է «—restrict-address-families» տարբերակը, և .nspawn ֆայլերում RestrictAddressFamilies կարգավորումը՝ контейնելու մեջ օգտագործվող հասցեների ընտանիքները սահմանափակելու համար: Ապագա թողարկումներում ըստ խիստ կանոնների թույլատրվելու են միայն AF_INET, AF_INET6 և AF_UNIX ընտանիքը:
- Հին udev տվյալների բազայի (0.x տարբերակի) աջակցությունը դադարեցվել է: Գործընթացի ձեռքի զրոյական թարմացումը systemd-ի տարբերակներից 247-րդ թողարկմանը այլևս չի աջակցվում:
- Musl C գրադարանում հավաքելու համար այժմ անհրաժեշտ է նվազագույնը musl 1.2.6 թողարկում:
Այլևս կարելի է նշել liberated-systemd նախագծի 261 թողարկումը՝ systemd-ի չմիջամտող տարբերակ՝ ազատված օգտագործողների վերահսկման համար օգտագործվող կոդից: Առաջարկված թողարկման մեջ փոփոխությունները բաղկացած են այն կոդի վերացմանից, որը userdb-ին ավելացնում էր birthDate` օգտվողի ծննդյան ամսաթվով, և homectl գործիքին՝ «—birth-date» տարբերակը՝ տարիք սահմանելու համար:
Ընտանիք: opennet.ru
