UKI (Unified Kernel Image) qo'llab-quvvatlashi bilan systemd tizim menejeri 252 chiqarilishi

Besh oylik ishlab chiqishdan so'ng systemd 252 tizim menejerining chiqarilishi taqdim etildi.Yangi versiyadagi asosiy o'zgarish modernizatsiya qilingan yuklash jarayonini qo'llab-quvvatlashning integratsiyasi bo'ldi, bu sizga nafaqat yadro va yuklovchini, balki komponentlarni ham tekshirish imkonini beradi. raqamli imzolardan foydalangan holda asosiy tizim muhiti.

Taklif etilayotgan usul yuklashda yadroni UEFI (UEFI boot stub) dan yuklash uchun ishlov beruvchini, Linux yadro tasvirini va xotiraga yuklangan initrd tizim muhitini birlashtirgan birlashgan yadro tasviri UKI (Unified Kernel Image) dan foydalanishni o'z ichiga oladi. ildiz FS o'rnatishdan oldin bosqichida dastlabki ishga tushirish uchun. UKI tasviri PE formatida bitta bajariladigan fayl sifatida paketlangan bo'lib, uni an'anaviy yuklash moslamalari yordamida yuklash yoki to'g'ridan-to'g'ri UEFI mikrodasturidan chaqirish mumkin. UEFI dan chaqirilganda, nafaqat yadro, balki initrd tarkibining raqamli imzosining yaxlitligi va ishonchliligini tekshirish mumkin.

Yaxlitligini kuzatish va UKI tasvirining raqamli imzosini yaratish uchun foydalaniladigan TPM PCR (Ishonchli platforma moduli platformasi konfiguratsiya registri) registrlarining parametrlarini hisoblash uchun tizimd-measure yangi yordamchi dasturi kiritilgan. Imzoda ishlatiladigan ochiq kalit va unga hamroh bo'lgan PCR ma'lumotlari to'g'ridan-to'g'ri UKI yuklash tasviriga kiritilishi mumkin (kalit va imzo PE faylida ".pcrsig" va ".pcrkey" maydonlarida saqlanadi) va undan tashqi dastur yordamida chiqarib olish mumkin. yoki ichki kommunal xizmatlar.

Xususan, systemd-cryptsetup, systemd-cryptenroll va systemd-creds yordam dasturlari ushbu ma'lumotlardan foydalanishga moslashtirilgan bo'lib, ular yordamida shifrlangan disk bo'limlari raqamli imzolangan yadroga bog'langanligini ta'minlashingiz mumkin (bu holda, shifrlangan bo'limga kirish UKI tasviri TPM da joylashgan parametrlar asosida raqamli imzo bilan tekshirishdan o'tgan bo'lsagina taqdim etiladi).

Bundan tashqari, systemd-pcrphase yordam dasturi mavjud bo'lib, u sizga turli xil yuklash bosqichlarini TPM 2.0 spetsifikatsiyasini qo'llab-quvvatlaydigan kriptoprotsessorlar xotirasida joylashgan parametrlarga bog'lashni nazorat qilish imkonini beradi (masalan, siz LUKS2 bo'limini shifrlash kalitini faqat initrd tasvirini o'rnating va keyingi bosqichlarda yuklashda unga kirishni bloklang).

Boshqa ba'zi o'zgarishlar:

  • Sozlamalarda boshqa til koʻrsatilmagan boʻlsa, standart til C.UTF-8 boʻlishini taʼminlaydi.
  • Endi birinchi yuklash paytida to'liq xizmatni oldindan o'rnatish operatsiyasini (“systemctl preset”) bajarish mumkin. Yuklash vaqtida oldindan sozlashlarni yoqish uchun "-Dfirst-boot-full-preset" opsiyasini yaratish talab etiladi, ammo keyingi versiyalarda sukut bo'yicha yoqilishi rejalashtirilgan.
  • Foydalanuvchilarni boshqarish bloklari protsessor resurs boshqaruvchisini o'z ichiga oladi, bu esa CPUWeight sozlamalari tizimni qismlarga bo'lish uchun ishlatiladigan barcha bo'lak birliklariga (app.slice, background.slice, session.slice) qo'llanilishini ta'minlash imkonini berdi. CPU resurslari uchun raqobatlashadigan turli xil foydalanuvchi xizmatlari. CPUWeight shuningdek, tegishli resurslarni ta'minlash rejimini faollashtirish uchun "bo'sh" qiymatini qo'llab-quvvatlaydi.
  • Vaqtinchalik ("o'tkinchi") birliklar va systemd-repart yordam dasturida /etc/systemd/system/name.d/ katalogida ochiladigan fayllarni yaratish orqali sozlamalarni bekor qilishga ruxsat beriladi.
  • Tizim tasvirlari uchun /etc/os-release faylidagi “SUPPORT_END=” yangi parametrining qiymatiga asoslanib, ushbu faktni aniqlaydigan qo'llab-quvvatlanadigan bayroq o'rnatiladi.
  • “ConditionCredential=” va “AssertCredential=” sozlamalari qo‘shildi, ular tizimda ma’lum hisob ma’lumotlari mavjud bo‘lmasa, birliklarni e’tiborsiz qoldirish yoki ishdan chiqarish uchun ishlatilishi mumkin.
  • Standart SMACK xavfsizlik darajasini va blokni faollashtirish vaqti tugashini aniqlash uchun system.conf va user.conf ga “DefaultSmackProcessLabel=” va “DefaultDeviceTimeoutSec=” sozlamalari qo‘shildi.
  • "ConditionFirmware=" va "AssertFirmware=" sozlamalarida alohida SMBIOS maydonlarini belgilash imkoniyati qo'shilgan, masalan, agar /sys/class/dmi/id/board_name maydonida "Custom" qiymati bo'lsa, birlikni ishga tushirish uchun. Kengash”, siz “ConditionFirmware=smbios” -maydon(board_name = “Maxsus taxta”)”ni belgilashingiz mumkin.
  • Ishga tushirish jarayonida (PID 1) SMBIOS maydonlaridan hisobga olish maʼlumotlarini import qilish imkoniyati (11-tur, “OEM sotuvchisi satrlari”) ularning taʼrifiga qoʻshimcha ravishda qemu_fwcfg orqali qoʻshildi, bu virtual mashinalarga hisob maʼlumotlarini taqdim etishni soddalashtiradi va Cloud -init va ignition kabi uchinchi tomon vositalariga ehtiyoj.
  • O'chirish vaqtida virtual fayl tizimlarini (proc, sys) o'chirish mantig'i o'zgartirildi va fayl tizimlarini o'chirishni bloklaydigan jarayonlar haqidagi ma'lumotlar jurnalda saqlanadi.
  • Tizim chaqiruv filtri (SystemCallFilter) sukut bo'yicha riscv_flush_icache tizim chaqiruviga kirish imkonini beradi.
  • Sd-boot yuklash moslamasi aralash rejimda yuklash imkoniyatini qo'shadi, bunda 64-bitli Linux yadrosi 32-bitli UEFI proshivkasidan ishlaydi. ESP (EFI tizim bo'limi) da topilgan fayllardan SecureBoot kalitlarini avtomatik ravishda qo'llash uchun eksperimental qobiliyat qo'shildi.
  • Bootctl yordam dasturiga yangi variantlar qo'shildi: barcha qo'llab-quvvatlanadigan EFI arxitekturalari uchun ikkilik fayllarni o'rnatish uchun "-all-architectures", katalog yoki disk tasviri bilan ishlash uchun "-root=" va "-image=", "-install-source" =” oʻrnatish manbasini aniqlash uchun, “-efi-boot-option-description=" yuklash yozuvi nomlarini boshqarish uchun.
  • Avtomatik o'rnatilgan kataloglar ro'yxatini ko'rsatish uchun systemctl yordam dasturiga "list-automounts" buyrug'i va belgilangan disk tasviriga nisbatan buyruqlarni bajarish uchun "--image=" opsiyasi qo'shildi. “Show” va “status” buyruqlariga “--state=” va “--type=” parametrlari qo‘shildi.
  • systemd-networkd TCP tiqilib qolishni boshqarish algoritmini tanlash uchun “TCPCongestionControlAlgorithm=” parametrlarini, TUN/TAP interfeyslarining fayl deskriptorini saqlash uchun “KeepFileDescriptor=”, NetLabelsni oʻrnatish uchun “NetLabel=”, DCPv6 orqali konfiguratsiyani tezlashtirish uchun “RapidCommit=” opsiyalarini qoʻshdi. (RFC 3315). “RouteTable=” parametri marshrutlash jadvallari nomlarini belgilash imkonini beradi.
  • systemd-nspawn "--bind=" va "--overlay=" parametrlarida nisbiy fayl yo'llaridan foydalanishga imkon beradi. Konteynerdagi ildiz foydalanuvchi identifikatorini xost tomonidagi oʻrnatilgan katalog egasiga ulash uchun “--bind=" opsiyasiga “rootidmap” parametri qoʻshildi.
  • systemd-resolved sukut bo'yicha OpenSSL dan shifrlash uchun ishlatiladi (gnutls qo'llab-quvvatlash variant sifatida saqlanadi). Qo'llab-quvvatlanmaydigan DNSSEC algoritmlari endi xato (SERVFAIL) qaytarish o'rniga xavfli deb hisoblanadi.
  • systemd-sysusers, systemd-tmpfiles va systemd-sysctl hisob ma'lumotlarini saqlash mexanizmi orqali sozlamalarni uzatish qobiliyatini amalga oshiradi.
  • Satrlarni versiya raqamlari ("rpmdev-vercmp" va "dpkg --compare-versionlar" kabi) bilan solishtirish uchun systemd-analyze yordam dasturiga "qiyoslash versiyalari" buyrug'i qo'shildi. "Systemd-analyze dump" buyrug'iga niqob bo'yicha birliklarni filtrlash imkoniyati qo'shildi.
  • Ko'p bosqichli uyqu rejimini tanlashda (to'xtatib turish, keyin kutish), kutish rejimida o'tkaziladigan vaqt qolgan batareya quvvati prognozi asosida tanlanadi. Kutish rejimiga zudlik bilan o'tish batareya zaryadi 5% dan kam qolganda sodir bo'ladi.
  • Jurnaldagi turli xabarlar orasidagi vaqt farqini ko'rsatuvchi "journalctl" ga yangi "-o short-delta" chiqish rejimi qo'shildi.
  • systemd-repart Squashfs fayl tizimi va dm-verity uchun bo'limlar, shu jumladan raqamli imzolar bilan bo'limlarni yaratishni qo'llab-quvvatlaydi.
  • Belgilangan vaqt tugashidan keyin nofaol seansni tugatish uchun systemd-logind-ga "StopIdleSessionSec=" sozlamasi qo'shildi.
  • Systemd-cryptenroll fayldan parolni ochish kalitini foydalanuvchiga so‘rash o‘rniga “--unlock-key-file=" opsiyasini qo‘shdi.
  • Endi systemd-growfs yordam dasturini udevsiz muhitda ishga tushirish mumkin.
  • systemd-backlight bir nechta grafik kartalari bo'lgan tizimlar uchun yaxshilangan qo'llab-quvvatlashga ega.
  • Hujjatlarda keltirilgan kod misollari uchun litsenziya CC0 dan MIT-0 ga o'zgartirildi.

Moslikni buzadigan o'zgarishlar:

  • ConditionKernelVersion direktivasi yordamida yadro versiyasi raqamini tekshirishda endi '=' va '!=' operatorlarida oddiy satr taqqoslash qo'llaniladi va agar taqqoslash operatori umuman ko'rsatilmagan bo'lsa, glob-maska ​​moslashuvidan foydalanish mumkin. '*', '?' va '[', ']' belgilar. Stverscmp() funksiyasi uslubidagi versiyalarni solishtirish uchun siz '', '=' operatorlaridan foydalanishingiz kerak.
  • Birlik faylidan kirishni tekshirish uchun ishlatiladigan SELinux yorlig'i endi kirishni tekshirish vaqtida emas, balki fayl yuklangan vaqtda o'qiladi.
  • "ConditionFirstBoot" sharti endi tizimning birinchi yuklanishida faqat to'g'ridan-to'g'ri yuklash bosqichida ishga tushiriladi va yuklash tugagandan so'ng birliklarni chaqirganda "noto'g'ri" ni qaytaradi.
  • 2024-yilda systemd cgroup v1 resursni cheklash mexanizmini qo‘llab-quvvatlashni to‘xtatishni rejalashtirmoqda, bu tizim 248-versiyasida eskirgan. Administratorlarga cgroup v2-ga asoslangan xizmatlarni v1-ga ko‘chirishdan avval ehtiyot bo‘lishlari tavsiya etiladi. v2 va v1 guruhlari o'rtasidagi asosiy farq protsessor resurslarini taqsimlash, xotira sarfini tartibga solish va kiritish-chiqarish uchun alohida ierarxiyalar o'rniga barcha turdagi resurslar uchun umumiy guruhlar ierarxiyasidan foydalanishdir. Alohida ierarxiyalar ishlov beruvchilar o'rtasidagi o'zaro aloqani tashkil etishda qiyinchiliklarga va turli ierarxiyalarda havola qilingan jarayon qoidalarini qo'llashda yadro resurslarining qo'shimcha xarajatlariga olib keladi.
  • 2023 yilning ikkinchi yarmida biz /usr ildizdan alohida o'rnatilgan yoki /bin va /usr/bin, /lib va ​​/usr/lib ajratilgan bo'lingan katalog ierarxiyasini qo'llab-quvvatlashni tugatishni rejalashtirmoqdamiz.

Manba: opennet.ru

a Izoh qo'shish