Үч айлык иштеп чыгуудан кийин, systemd 261 системасынын менеджери эми жеткиликтүү. Негизги өзгөрүүлөргө төмөнкүлөр кирет: жашты текшерүү үчүн API колдоосуна даярдык көрүү, абалсыз кайра иштетүүлөр үчүн Kexec Handover жана Live Update Orchestration кичи системаларын колдоо, IMDS (Instance Metadata Service) кичи системасы, физикалык TPM (Ишенимдүү платформа модулу) жок системаларда жүктөөдөн коргоо функциясы жана орнотуучуну ишке ашыруу менен systemd-sysinstall компоненти.
Жаңы релиздеги өзгөрүүлөрдүн арасында:
- systemd-sysinstall деген жаңы компонент кошулду, ал буйрук сабынан же интерактивдүү тексттик интерфейс аркылуу башкарылуучу жөнөкөй операциялык система орноткучун ишке ашырат. systemd-sysinstall функциясы бар systemd мүмкүнчүлүктөрүнө негизделген: systemd-repart диск бөлүмдөрүн конфигурациялоо үчүн колдонулат, "bootctl link" буйругу ядрону орнотуу жана жүктөө менюсун түзүү үчүн колдонулат, "bootctl install" буйругу systemd-boot жүктөөчүсүн орнотуу үчүн колдонулат жана systemd-creds орнотулган системанын баштапкы конфигурациясы үчүн колдонулат (мисалы, локалдык жана клавиатура жайгашуусун тандоо).
- ОС интеграциясы боюнча юридикалык талаптарды ишке ашырууга даярдык көрүү максатында, жашын текшерүү үчүн userdb маалымат базасына колдонуучунун туулган күнүн камтыган birthDate талаасы кошулду. Бул талаа xdg-desktop-portal (таратуучулар үчүн иштелип чыккан) жана AccountsService кызматында "org.freedesktop.AgeVerification1" же "org.freedesktop.ParentalControls" D-Bus интерфейси аркылуу тиркемелерге колдонуучунун жаш курагы жөнүндө маалымат берүү үчүн колдонулушу мүмкүн. Жашын коюу үчүн homectl утилитасын "--birth-date" опциясы кошулду.
- PID1 иштеткичке подсистемаларды колдоо кошулду. Linux- LUO (Live Update Orchestration) жана KHO (Kexec Handover) ядролору, алар иштөөнү үзгүлтүккө учуратпастан же системанын, түзмөктөрдүн же процесстердин абалын жоготпостон толук кайра жүктөөгө жана ядрону жаңыртууга мүмкүндүк берет. KHO системанын абалын жоготпостон эски ядродон жаңы ядрону ишке киргизүү мүмкүнчүлүгүн берет, ал эми LUO түзмөктүн жана RAM абалын сактоону ишке ашырат жана DMA жана үзгүлтүктөрдү иштетүүгө байланыштуу операциялардын үзгүлтүксүздүгүн камсыз кылат.
systemdде система жана колдонуучу блоктору kexecти чакырардан мурун файл дескрипторлорун сактап, аларды kexec аркылуу ядрону кайра жүктөгөндөн кийин калыбына келтирүү мүмкүнчүлүгүнө ээ. Блоктор ошондой эле өздөрүнүн LUO сессияларын түзө алышат, алар kexecти аткаруу учурунда сакталат жана калыбына келтирилет. Файл дескрипторунун сактагыч абалын сактоону иштетүү үчүн, 'FileDescriptorStorePreserve=yes' жөндөөсүн колдонуңуз.
- systemd-imdsd кичи системасы ишке ашырылды. Ал жергиликтүү программалар үчүн ар кандай булут провайдерлери тарабынан сунушталган IMDS (Instance Metadata Service) кызматтарына кирүү үчүн Varlink IPC негизиндеги API менен камсыз кылат. IMDS виртуалдык машиналарга булут чөйрөсү жөнүндө маалыматты, мисалы, тармактын конфигурациясы, түйүндүн географиялык жайгашуусу, CPU түрү жана сактагычтын көлөмүн алууга мүмкүндүк берет. systemd-imdsd жеке талааларга кирүү үчүн төмөнкү деңгээлдеги API жана платформага тиешелүү ачкычтарга байланышкан стандарттык ачкычтарды суроо үчүн жогорку деңгээлдеги интерфейсти камсыз кылат. IMDS талааларын жергиликтүү каттоо системасына импорттоого мүмкүндүк берген systemd-imds утилитасы systemd-imdsd менен өз ара аракеттенүү үчүн кошулду.
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 "жүктөө сыры" функциясын ишке ашырат, ал операциялык система жетпеген аймакта сакталган жана кокустук маани менен инициализацияланган EFI өзгөрмөсүнө негизделген ачкычты түзүүгө мүмкүндүк берет. Ачкыч initrdге /.extra/boot-secret файлы аркылуу берилет. Бул функция аппараттык TPM (Ишенимдүү платформа модулу) жок системаларда жүктөө текшерүүсү же шифрлөө үчүн системага тиешелүү кокустук ачкычты түзүү үчүн талап кылынышы мүмкүн.
- systemd-tpm2-swtpm.service кызматы swtpm TPM чип эмуляторун (Программалык камсыздоонун TPM эмулятору) иштетүү үчүн кошулду, ал аппараттык TPM жок системаларда коопсуз жүктөө үчүн программалык камсыздоонун TPM ишке ашыруусуна автоматтык түрдө кайтып келүү үчүн колдонулушу мүмкүн. Программалык камсыздоонун TPM колдонуучу мейкиндигинде иштейт жана аппараттык TPM сыяктуу эле коргоо деңгээлин камсыз кылбайт, бирок кээ бир учурларда аны TPMсиз иштөөгө салыштырмалуу колдонуу акталат. Мисалы, программалык камсыздоонун TPMи жаңы "жүктөө сыры" функциясын колдонуп, бөлүмдүн шифрлөө ачкычын ала алат жана анын абалын сактоо үчүн дисктеги ESP (EFI Системалык Бөлүм) колдоно алат. Программалык камсыздоонун TPMин автоматтык түрдө иштетүү үчүн systemd.tpm2_software_fallback ядросунун буйрук сабынын параметри киргизилген.
- Туруктуу деп жарыяланып, /usr/bin/ папкасына systemd-sysupdate компоненти жайгаштырылган, ал бөлүмдөрдү, файлдарды же каталогдорду алмаштыруу үчүн атомдук механизмди колдонуу менен жаңыртууларды автоматтык түрдө аныктоо, жүктөп алуу жана орнотуу үчүн иштелип чыккан (эки көз карандысыз бөлүм/файл/каталог колдонулат, алардын биринде учурда иштеп жаткан ресурс бар, ал эми экинчисинде кийинки жаңыртуу орнотулат, андан кийин бөлүмдөр/файлдар/каталогдор алмаштырылат).
- systemd-resolved эми JSON файлдарын systemd/resolve/static.d/ каталогдоруна жайгаштыруу менен жаңы DNS жазууларын өзгөртүүнү же көрсөтүүнү колдойт. /etc/hosts файлынан айырмаланып, бул жаңы файлдар IP даректерин хост аттарына байлоого гана мүмкүндүк бербестен, "A" жана "AAAA"дан башка DNS ресурстарынын жазууларын аныктоого да мүмкүндүк берет. Мындан тышкары, systemd-resolved эми DNS кэш өлчөмүнүн жөндөөлөрүн колдойт: 'DNSCacheSize', 'MulticastDNSCacheSize' жана 'LLMNRCacheSize'.
- Сактоо түзмөктөрүн текшерүү жана блоктук түзмөктөр менен файл системаларынын туташуусун башкаруу үчүн 'storagectl' утилитасы кошулду.
- Көз карандылыкты азайтуу демилгесинин алкагында, libsystemd азыр 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) кылып, түпкү файл системасын динамикалык түрдө түзүүдө туура эмес уруксаттардан коргоого мүмкүндүк берди.
- bootctl утилитасы systemd-boot bootloaderдин камдык көчүрмөсүн сактоого жана эски версиясын UEFIде камдык жүктөө опциясы катары каттоого мүмкүнчүлүк берет.
- Systemd-vmspawn эми UEFI микропрограммасын колдонбостон ядрону түз жүктөөнү колдойт. "--firmware-features" опциясы айрым микропрограммалык камсыздоо функцияларын тандап иштетүү же өчүрүү үчүн ишке ашырылган. Виртуалдык машинаны консоль же экрансыз иштетүү үчүн "--console=headless" режими кошулду. Виртуалдык машинада колдонулган блок сактоо түрүн (virtio-blk, virtio-scsi, nvme же scsi-cd) тандоо үчүн "--image-disk-type" опциясы кошулду. AMD SEV-SNP технологиясын колдонуп, виртуалдык машинанын эс тутумун шифрлөөнү иштетүү үчүн "--coco" (Жашыруун эсептөө) опциясы кошулду.
- Учурдагы системага каалагандай тегдерди тиркөө үчүн колдоо systemd-hostnamed жана /etc/machine-info файлдарына "Тегдер" параметрин колдонуу менен кошулду. Андан кийин бул тегдерди ConditionMachineTag туюнтмасы аркылуу текшерилген жөндөөлөрдү тандап колдонуу үчүн колдонсо болот.
- Цикл учурунда CPU ресурстарын бошотуу максатында PID1деги окуяны иштетүү циклинин ылдамдыгын чектөө үчүн EventLoopRateLimitIntervalSec жана EventLoopRateLimitBurst жөндөөлөрү кошулду.
- Кызмат менеджери эми системанын минималдуу иштөө убактысын (демейки боюнча 15 секунд) орнотуу үчүн MinimumUptimeSec жөндөөсүн камтыйт. Эгерде бул убакыт бүтө электе өчүрүү же кайра жүктөө башталса, акыркы этапка тиешелүү кечигүү кошулат.
- Бирдиктер үчүн жаңы жөндөөлөр ишке ашырылды: cpuset бөлүмүнүн түрүн cgroup ("root", "isolated", "member") кылып коюу үчүн CPUSetPartition, dm-verity аркылуу санариптик кол тамга менен текшерилген аткарылуучу файлдарды гана иштетүү үчүн RestrictFileSystemAccess жана CPUPressureWatch/CPUPressureThresholdSec/IOPressureWatch/IOPressureThresholdSec жогорку CPU жана I/O жүктөмү жөнүндө эскертмелерди алуу үчүн.
- systemd-report утилитасы тарабынан билдирилген метрикалардын тизмеси кеңейтилди. Мисалы, физикалык эс тутумдун көлөмү жана активдүү CPU өзөктөрү, SMBIOS жана /etc/machine-info талааларынын мазмуну, Купуя эсептөө режимин колдоо жана TPM2 чип өндүрүүчүсү жөнүндө маалымат кошулду.
- systemd-oomd системасы эс тутуму аз шарттарда болгондо процесстерди жок кылуу эрежелерин аныктоо мүмкүнчүлүгүн ишке ашырат. Эрежелерди /etc/systemd/oomd/rules.d/ каталогунда же OOMRule директивасын колдонуп, тейлөө бирдиктеринде аныктоого болот.
- systemd-socket-proxy эми "haproxy" протоколунун биринчи версиясына туура келген "PROXY" протоколун колдойт.
- systemd-networkd DHCP релелери үчүн жаңы sd-dhcp-relay серверин ишке ашырат. "[DHCPServer]" бөлүмүндөгү жөндөөлөр — BindToInterface, RelayTarget, RelayAgentCircuitId жана RelayAgentRemoteId — эскирип калган. Анын ордуна, "[Network]" бөлүмүндөгү DHCPRelay параметрин жана [DHCPRelay] бөлүмүндөгү жана networkd.conf файлындагы бир катар жаңы жөндөөлөрдү колдонуңуз. IP дарегин байланыштыруу маалыматынын дампын сактоо үчүн 'networkctl dhcp-lease INTERFACE' буйругу кошулду (DHCP ижаралары).
- "--restrict-address-families" опциясы systemd-nspawn утилитине кошулду, ал эми RestrictAddressFamilies жөндөөсү контейнерлерде колдонулган сокет даректеринин үй-бүлөлөрүн чектөө үчүн .nspawn файлдарына кошулду. Келечектеги чыгарылыштарда демейки боюнча AF_INET, AF_INET6 жана AF_UNIX үй-бүлөлөрүнө гана уруксат берилет.
- Эски udev маалымат базасынын форматын (0.x версиясы) колдоо токтотулду. 247 чыгарылышына чейинки systemd версияларынан алынган тез жаңыртуулар мындан ары колдоого алынбайт.
- musl C китепканасы менен түзүүдө, жок дегенде musl 1.2.6 версиясы талап кылынат.
Мындан тышкары, колдонуучуну көзөмөлдөө үчүн колдонулушу мүмкүн болгон кодду алып салган systemdдин бир бөлүгү болгон freedosed-systemd 261 версиясынын чыгарылышын белгилей кетүү керек. Бул чыгарылыштын өзгөртүүлөрү колдонуучунун туулган күнүн сактаган userdbге birthDate талаасын кошкон кодду жана жашты коюу үчүн homectl утилитасын "--birth-date" опциясын алып салууга кайтып келет.
Source: opennet.ru
