Linux 5.12 yadro versiyasi

Ikki oylik ishlab chiqishdan so'ng Linus Torvalds Linux yadrosi 5.12 versiyasini taqdim etdi. Eng e'tiborga molik o'zgarishlar orasida: Btrfs-da zonalangan blokli qurilmalarni qo'llab-quvvatlash, fayl tizimi uchun foydalanuvchi identifikatorlarini xaritalash qobiliyati, eski ARM arxitekturalarini tozalash, NFS-da "ishtiyoqli" yozish rejimi, keshdan fayl yo'llarini aniqlash uchun LOOKUP_CACHED mexanizmi. , BPF-da atom ko'rsatmalarini qo'llab-quvvatlash, xotira bilan ishlashda xatolarni aniqlash uchun KFENCE disk raskadrovka tizimi, tarmoq stekidagi alohida yadro ipida ishlaydigan NAPI so'rov rejimi, ACRN gipervizori, vazifada tezkor modelni o'zgartirish imkoniyati rejalashtiruvchi va Clang-da qurishda LTO optimallashtirishlarini qo'llab-quvvatlash.

Yangi versiya 14170 (15480) ishlab chiquvchilardan 1946 (oldingi versiyada 1991) tuzatishlarni o'z ichiga oladi, yamoq hajmi 38 MB (o'zgarishlar ta'sir ko'rsatdi 12102 (12090) fayl, 538599 (868025) kod qatori qo'shildi, 333377 (261456)) satrlar o'chirildi). 43-da kiritilgan barcha o'zgarishlarning taxminan 5.12% qurilma drayverlari bilan bog'liq, o'zgarishlarning taxminan 17% apparat arxitekturasiga xos kodni yangilash bilan bog'liq, 12% tarmoq stekiga, 5% fayl tizimlariga va 4% ichki yadro quyi tizimlari bilan bog'liq.

Asosiy innovatsiyalar:

  • Disk quyi tizimi, kiritish-chiqarish va fayl tizimlari
    • O'rnatilgan fayl tizimlari uchun foydalanuvchi identifikatorlarini xaritalash imkoniyati amalga oshirildi (siz o'rnatilgan xorijiy bo'limda bir foydalanuvchining fayllarini joriy tizimdagi boshqa foydalanuvchi bilan taqqoslashingiz mumkin). Xaritalash FAT, ext4 va XFS fayl tizimlari uchun qo'llab-quvvatlanadi. Taklif etilayotgan funksionallik turli xil foydalanuvchilar va turli kompyuterlarda fayllarni almashishni soddalashtirish imkonini beradi, shu jumladan, xaritalash tizimga o'rnatilgan ko'chma uy katalogi mexanizmida qo'llaniladi, bu foydalanuvchilarga uy kataloglarini tashqi muhitga ko'chirish va ularni turli xil qurilmalarda ishlatish imkonini beradi. foydalanuvchi identifikatorlari mos kelmaydigan kompyuterlar. Yana bir foydali dastur - bu fayl tizimidagi fayllar egalari haqidagi ma'lumotlarni o'zgartirmasdan, tashqi xostdan fayllarga umumiy kirishni ta'minlashni tashkil qilishdir.
    • LOOKUP_CACHED yamoqlari yadroga qabul qilingan bo'lib, operatsiyalar foydalanuvchi bo'shlig'idan bloklanmasdan, faqat keshdagi mavjud ma'lumotlar asosida fayl yo'lini aniqlash imkonini beradi. LOOKUP_CACHED rejimi openat2() chaqiruvida RESOLVE_CACHED bayrog‘ini o‘tkazish orqali faollashtiriladi, bunda ma’lumotlar faqat keshdan taqdim etiladi va agar yo‘lni aniqlash haydovchiga kirishni talab qilsa, EAGAIN xatosi qaytariladi.
    • Btrfs fayl tizimi zonali blokli qurilmalar uchun dastlabki yordamni qo'shdi (qattiq magnit disklardagi qurilmalar yoki NVMe SSD-lar, saqlash maydoni bloklar yoki sektorlar guruhlarini tashkil etuvchi zonalarga bo'lingan, ularga faqat ketma-ket ma'lumotlarni qo'shishga ruxsat beriladi, bloklarning butun guruhini yangilash). Faqat o'qish rejimida sahifadan (pastki sahifadan) kichikroq metadata va ma'lumotlarga ega bloklarni qo'llab-quvvatlash amalga oshiriladi.
    • F2FS fayl tizimida algoritm va siqish darajasini tanlash imkoniyati qo'shildi. LZ4 algoritmi uchun yuqori darajadagi siqish uchun qo'shilgan yordam. Checkpoint_merge o'rnatish opsiyasi amalga oshirildi.
    • fs-verity bilan himoyalangan fayllardan metama'lumotlarni o'qish uchun yangi ioctl buyrug'i FS_IOC_READ_VERITY_METADATA amalga oshirildi.
    • NFS mijozi "ishtiyoqli" yozish rejimini (yozadi = ishtiyoqli) amalga oshiradi, yoqilganda, faylga yozish operatsiyalari sahifa keshini chetlab o'tib, darhol serverga o'tkaziladi. Ushbu rejim sizga xotira sarfini kamaytirishga imkon beradi, fayl tizimidagi bo'sh joyning tugashi to'g'risida bir zumda ma'lumot olishni ta'minlaydi va ba'zi hollarda yuqori ishlashga erishishga imkon beradi.
    • CIFS (SMB) ga yangi o'rnatish imkoniyatlari qo'shildi: fayllarni keshlashni boshqarish uchun acregmax va katalog metama'lumotlarini keshlashni boshqarish uchun acdirmax.
    • XFSda ko'p tarmoqli kvotani tekshirish rejimi yoqildi, fsync bajarilishi tezlashtirildi va fayl tizimining hajmini kamaytirish funksiyasini amalga oshirish uchun growfs kodi tayyorlandi.
  • Xotira va tizim xizmatlari
    • DTMP (Dynamic Thermal Power Management) quyi tizimi qo'shildi, bu sizga o'rnatilgan umumiy harorat chegaralari asosida turli qurilmalarning quvvat sarfini dinamik ravishda tartibga solish imkonini beradi.
    • Bog'lanish bosqichida (LTO, Link Time Optimization) optimallashtirishni o'z ichiga olgan holda Clang kompilyatoridan foydalanib yadro yaratish imkoniyati amalga oshirildi. LTO optimallashtirishlari qurish jarayonida ishtirok etadigan barcha fayllar holatini hisobga olgan holda farqlanadi, an'anaviy optimallashtirish rejimlari esa har bir faylni alohida optimallashtiradi va boshqa fayllarda belgilangan funksiyalarni chaqirish shartlarini hisobga olmaydi. Masalan, LTO bilan boshqa fayllardagi funktsiyalar uchun inline joylashtirish mumkin, foydalanilmagan kod bajariladigan faylga kiritilmagan, turni tekshirish va umumiy optimallashtirish umuman loyiha darajasida amalga oshiriladi. LTO-ni qo'llab-quvvatlash hozirda x86 va ARM64 arxitekturalari bilan cheklangan.
    • Agar yadroni yaratishda PREEMPT_DYNAMIC sozlamasi belgilangan bo'lsa, yuklash bosqichida (preempt=yo'q/ixtiyoriy/to'liq) yoki disk raskadrovka (/debug/sched_debug) orqali ishlayotganda vazifalarni rejalashtiruvchida oldingi rejimlarni (PREEMPT) tanlash mumkin. Ilgari ekstruziya rejimi faqat yig'ish parametrlari darajasida o'rnatilishi mumkin edi. O'zgartirish PREEMPT rejimi yoqilgan holda tarqatishlarga yadrolarni jo'natish imkonini beradi, bu kichik o'tkazuvchanlik jarimasi hisobiga ish stoli kompyuterlari uchun minimal kechikishni ta'minlaydi va kerak bo'lganda PREEMPT_VOLUNTARY (ish stoli kompyuterlari uchun oraliq rejim) yoki PREEMPT_NONE (serverlar uchun maksimal o'tkazuvchanlikni ta'minlaydi) ga qaytariladi. .
    • BPF quyi tizimiga BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG va BPF_CMPXCHG atom operatsiyalarini qo'llab-quvvatlash qo'shildi.
    • BPF dasturlariga o'zgaruvchan ofsetli ko'rsatkichlar yordamida stekdagi ma'lumotlarga kirish imkoniyati beriladi. Misol uchun, agar ilgari siz stekdagi massivga kirish uchun faqat doimiy element indeksidan foydalanishingiz mumkin bo'lsa, endi siz o'zgaruvchan indeksdan foydalanishingiz mumkin. Faqatgina mavjud chegaralar ichida kirishni boshqarish BPF tekshirgichi tomonidan amalga oshiriladi. Bu xususiyat faqat spekulyativ kod ijrosidagi zaifliklardan foydalanish xavotirlari tufayli imtiyozli dasturlarda mavjud.
    • BPF dasturlarini foydalanuvchi maydonida ko'rinadigan kuzatuv hodisalari bilan bog'liq bo'lmagan yalang'och kuzatuv nuqtalariga biriktirish imkoniyati qo'shildi (bunday kuzatuv nuqtalari uchun ABI saqlanishi kafolatlanmaydi).
    • CPU va xotira qurilmalari o'rtasida yuqori tezlikdagi o'zaro aloqani tashkil qilish uchun foydalaniladigan CXL 2.0 (Compute Express Link) avtobusini qo'llab-quvvatlash amalga oshirildi (tashqi xotira qurilmalarini RAM yoki doimiy xotiraning bir qismi sifatida ishlatishga imkon beradi, xuddi shu xotira kabi. CPUdagi standart xotira kontrolleri orqali ulangan).
    • Linux uchun to'g'ridan-to'g'ri kirish imkoni bo'lmagan proshivka tomonidan ajratilgan xotira maydonlaridan ma'lumotlarni olish uchun nvmem drayveri qo'shildi (masalan, faqat mikrodastur uchun jismoniy kirish mumkin bo'lgan EEPROM xotirasi yoki faqat dastlabki yuklash bosqichida foydalanish mumkin bo'lgan ma'lumotlar).
    • "Oprofile" profil tizimini qo'llab-quvvatlash olib tashlandi, u keng qo'llanilmadi va uning o'rniga zamonaviyroq perf mexanizmi keldi.
    • io_uring asinxron I/U interfeysi xotiradan foydalanishni nazorat qiluvchi guruhlar bilan integratsiyani ta'minlaydi.
    • RISC-V arxitekturasi NUMA tizimlarini, shuningdek, kproblar va problar mexanizmlarini qo'llab-quvvatlaydi.
    • Jarayon holatining oniy tasvirlari (nazorat nuqtasi/tiklash) funksiyasidan qat'i nazar, kcmp() tizim chaqiruvidan foydalanish imkoniyati qo'shildi.
    • Ko'p yillar davomida amalda qo'llanilmagan EXPORT_UNUSED_SYMBOL() va EXPORT_SYMBOL_GPL_FUTURE() makroslari olib tashlandi.
  • Virtualizatsiya va xavfsizlik
    • Xotira bilan ishlashda xatoliklarni ushlaydigan KFence (Kernel Electric Fence) himoya mexanizmi qo'shildi, masalan, buferning haddan tashqari ko'tarilishi va xotirani bo'shatgandan keyin kirish. KASAN disk raskadrovka mexanizmidan farqli o'laroq, KFence quyi tizimi yuqori ish tezligi va past yuk bilan tavsiflanadi, bu sizga faqat ishchi tizimlarda yoki uzoq muddatli ish paytida paydo bo'ladigan xotira xatolarini ushlash imkonini beradi.
    • Haqiqiy vaqtdagi vazifalarga tayyorlik va muhim tizimlarda foydalanishga yaroqliligini hisobga olgan holda yozilgan ACRN gipervisoriga qo'shimcha yordam. ACRN minimal qo'shimcha xarajatlarni ta'minlaydi, uskuna bilan o'zaro aloqada bo'lganda past kechikish va etarli darajada javob berishni kafolatlaydi. Protsessor resurslari, kiritish-chiqarish, tarmoq quyi tizimi, grafik va ovoz operatsiyalarini virtualizatsiya qilishni qo'llab-quvvatlaydi. ACRN elektron boshqaruv bloklari, asboblar panellari, avtomobil axborot tizimlari, iste'molchi IoT qurilmalari va boshqa o'rnatilgan texnologiyalarda bir nechta izolyatsiya qilingan virtual mashinalarni ishlatish uchun ishlatilishi mumkin. ACRN ikki turdagi mehmon tizimlarini qo'llab-quvvatlaydi - tizim resurslarini (CPU, xotira, kiritish/chiqarish va h.k.) boshqarish uchun foydalaniladigan imtiyozli xizmat ko'rsatish VMlari va Linux, Android va Windows distributivlarini ishga tushirishi mumkin bo'lgan maxsus foydalanuvchi VM'lari.
    • Fayllar va tegishli metama'lumotlarning yaxlitligini tekshirish uchun xesh ma'lumotlar bazasini saqlaydigan IMA (Integrity Measurement Architecture) quyi tizimida endi yadro ma'lumotlarining yaxlitligini tekshirish, masalan, SELinux qoidalaridagi o'zgarishlarni kuzatish mumkin bo'ladi. .
    • KVM gipervizoriga Xen giperqo'ng'iroqlarini ushlab qolish va ularni foydalanuvchi maydonida ishlaydigan emulyatorga yo'naltirish imkoniyati qo'shildi.
    • Hyper-V gipervisorining ildiz muhiti sifatida Linuxdan foydalanish imkoniyati qo'shildi. Ildiz muhiti apparat vositalariga to'g'ridan-to'g'ri kirish huquqiga ega va mehmon tizimlarini ishga tushirish uchun ishlatiladi (Xen'dagi Dom0 ga o'xshash). Hozirgacha Hyper-V (Microsoft Hypervisor) Linuxni faqat mehmon muhitida qo'llab-quvvatlagan, ammo gipervisorning o'zi Windows-ga asoslangan muhitdan boshqarilardi.
    • eMMC kartalari uchun ichki shifrlash uchun qoʻshimcha qoʻllab-quvvatlash, kirish/chiqarishni shaffof shifrlash va shifrini ochish uchun haydovchi boshqaruvchisiga oʻrnatilgan shifrlash mexanizmlaridan foydalanish imkonini beradi.
    • Yadroda ishlatilmaydigan RIPE-MD 128/256/320 va Tiger 128/160/192 xeshlarini, shuningdek, ChaCha20 algoritmi bilan almashtirilgan Salsa20 oqim shifrini qo'llab-quvvatlash o'chirildi. kripto quyi tizimi. Blake2 algoritmi blake2sni amalga oshirish uchun yangilandi.
  • Tarmoq quyi tizimi
    • Tarmoq qurilmalari uchun NAPI so'rovini qayta ishlash moslamasini alohida yadro oqimiga ko'chirish imkoniyati qo'shildi, bu esa ish yukining ayrim turlari uchun ishlashni yaxshilash imkonini beradi. Ilgari so'rovlar softirq kontekstida amalga oshirilgan va vazifalarni rejalashtiruvchi tomonidan qamrab olinmagan, bu esa maksimal ishlashga erishish uchun nozik taneli optimallashtirishni amalga oshirishni qiyinlashtirgan. Alohida yadro chizig'ida bajarilishi so'rovni ishlov beruvchini foydalanuvchi maydonidan kuzatish, alohida CPU yadrolariga biriktirish va vazifalarni almashtirishni rejalashtirishda hisobga olish imkonini beradi. Sysfs-da yangi rejimni yoqish uchun /sys/class/net/ parametri taklif etiladi. / ipli.
    • Turli IP-manzillar bilan bog'langan turli tarmoq interfeyslari orqali bir vaqtning o'zida bir nechta marshrutlar bo'ylab paketlarni etkazib berish bilan TCP ulanishining ishlashini tashkil qilish uchun TCP protokolining kengaytmasi bo'lgan MPTCP (MultiPath TCP) yadrosiga integratsiya. Yangi versiyada ma'lum iplarga ustuvorlik berish qobiliyati qo'shiladi, bu, masalan, faqat asosiy ip bilan bog'liq muammolar mavjud bo'lganda yoqiladigan zaxira iplar ishini tashkil qilish imkonini beradi.
    • IGMPv3 EHT (Explicit Host Tracking) mexanizmini qo'llab-quvvatlaydi.
    • Netfilterning paketli filtrlash mexanizmi eksklyuziv boshqaruvni qo'lga kiritish uchun ma'lum jadvallarga egalik qilish imkoniyatini beradi (masalan, fon xavfsizlik devori jarayoni ma'lum jadvallarga egalik qilishi va boshqalarning ularga aralashishini oldini olishi mumkin).
  • uskunalar
    • Biz eskirgan va parvarish qilinmagan ARM platformalarini tozaladik. efm32, picoxcell, prima2, tango, u300, zx va c6x platformalarining kodi hamda ularga tegishli drayverlar olib tashlandi.
    • Amdgpu drayveri Sienna Cichlid GPU (Navi 22, Radeon RX 6xxx) asosidagi kartalarni overclock qilish (OverDrive) imkoniyatini beradi. 16-dan 8-avlodgacha bo'lgan DCE (displeyni boshqarish mexanizmi) uchun FP11 piksel formatini qo'llab-quvvatlash qo'shildi. GPU Navy Flounder (Navi 21) va APU Van Gogh uchun GPUni qayta o'rnatish imkoniyati amalga oshirildi.
    • Intel grafik kartalari uchun i915 drayveri yaxshilangan ishlash foydasiga izolyatsiya va himoya mexanizmlarini o'chirish uchun i915.mitigations parametrini amalga oshiradi. Tiger ko'lidan boshlangan chiplar uchun VRR (Variable Rate Refresh) mexanizmini qo'llab-quvvatlash kiritilgan bo'lib, bu sizga o'yinlar davomida silliqlik va bo'shliqlar bo'lmasligi uchun monitorning yangilanish tezligini mos ravishda o'zgartirish imkonini beradi. Rangning aniqligini oshirish uchun Intel Clear Color texnologiyasini qo'llab-quvvatlash kiritilgan. DP-HDMI 2.1 uchun qo'shimcha qo'llab-quvvatlash. eDP panellarining orqa yorug'ligini boshqarish imkoniyati amalga oshirildi. LSPCON (Level Shifter va Protocol Converter) qo'llab-quvvatlanadigan Gen9 GPU'lar uchun HDR qo'llab-quvvatlashi yoqilgan.
    • Nouveau drayveri GA100 (Amper) arxitekturasiga asoslangan NVIDIA GPU'lari uchun dastlabki yordamni qo'shadi.
    • MSM drayveri SDM (Snapdragon) 508, 509 va 512 chiplarida ishlatiladigan Adreno 630, 636 va 660 GPU-larni qo'llab-quvvatlaydi.
    • Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s va Pioneer DJM-750 ovoz kartalari uchun qo'shimcha qo'llab-quvvatlash. Intel Alder Lake PCH-P audio quyi tizimi uchun qo'shimcha yordam. Foydalanuvchi maydonida ishlov beruvchilarni disk raskadrovka qilish uchun audio ulagichni ulash va o'chirishning dasturiy simulyatsiyasini qo'llab-quvvatlash amalga oshirildi.
    • 64 yildan 1996 yilgacha ishlab chiqarilgan Nintendo 2003 o'yin konsollarini qo'llab-quvvatlash qo'shildi (Lintendo 64 ga o'tkazish bo'yicha oldingi urinishlar tugallanmagan va Vaporware sifatida tasniflangan). Deyarli yigirma yil davomida chiqarilmagan eskirgan platforma uchun yangi port yaratish motivatsiyasi emulyatorlarning rivojlanishini rag'batlantirish va o'yinlarni ko'chirishni soddalashtirish istagi.
    • Sony PlayStation 5 DualSense o'yin boshqaruvchisi uchun drayver qo'shildi.
    • ARM platalari, qurilmalari va platformalari uchun qo‘shimcha qo‘llab-quvvatlash: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M NanoB, Nano.
    • Purism Librem5 Evergreen, Xperia Z3+/Z4/Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, Samsung GT-I9070 smartfonlarini qo‘llab-quvvatlash qo‘shildi.
    • Broadcom VK tezlatkich platalari (masalan, Valkyrie va Viper PCIe platalari) uchun bcm-vk drayveri qo‘shildi, undan audio, video va tasvirlarni qayta ishlash operatsiyalarini, shuningdek, shifrlash bilan bog‘liq operatsiyalarni alohida qurilmaga yuklash uchun foydalanish mumkin.
    • Doimiy zaryadlash va klaviatura yoritilishini boshqarish qobiliyatiga ega Lenovo IdeaPad platformasi uchun qoʻshimcha qoʻllab-quvvatlash. Shuningdek, quvvat iste'moli rejimlarini boshqarish qobiliyatiga ega ThinkPad platformasining ACPI profilini qo'llab-quvvatlash taqdim etiladi. Lenovo ThinkPad X1 Tablet Gen 2 HID quyi tizimi uchun drayver qo'shildi.
    • Raspberry Pi uchun kamera modulini qo'llab-quvvatlaydigan ov5647 drayveri qo'shildi.
    • RISC-V SoC FU740 va HiFive Unleashed platalari uchun qo‘shimcha qo‘llab-quvvatlash. Kendryte K210 chipi uchun yangi drayver ham qo'shildi.

Manba: opennet.ru

a Izoh qo'shish