Linux 5.19 yadro versiyasi

Ikki oylik rivojlanishdan so'ng, Linus Torvalds Linux yadrosi 5.19 versiyasini taqdim etdi. Eng e'tiborli o'zgarishlar orasida: LoongArch protsessor arxitekturasini qo'llab-quvvatlash, "BIG TCP" yamoqlarini integratsiyalash, fscache-da talab bo'yicha rejim, a.out formatini qo'llab-quvvatlash uchun kodni olib tashlash, mikrodasturlarni siqish uchun ZSTD-dan foydalanish qobiliyati, interfeys xotirani foydalanuvchi maydonidan olib tashlashni boshqarish, psevdo-tasodifiy raqamlar generatorining ishonchliligi va ishlashini oshirish, Intel IFS (In-Field Scan), AMD SEV-SNP (Secure Nested Paging), Intel TDX (Ishonchli domen kengaytmalari) va ARM-ni qo'llab-quvvatlash SME (Scalable Matrix Extension) kengaytmalari.

E'londa Linusning ta'kidlashicha, keyingi yadro versiyasi katta ehtimol bilan 6.0 raqamlangan bo'ladi, chunki 5.x filiali versiya raqamidagi birinchi raqamni o'zgartirish uchun etarlicha relizlar to'plagan. Raqamlashning o'zgarishi estetik sabablarga ko'ra amalga oshiriladi va seriyadagi ko'p sonli masalalarning to'planishi tufayli noqulaylikni engillashtiradigan rasmiy qadamdir.

Linus, shuningdek, relizni yaratish uchun ARM64 arxitekturasi (Apple Silicon) asosidagi Apple noutbukidan Asahi Linux distribyutsiyasi asosidagi Linux muhitiga ega bo‘lganini eslatib o‘tdi. Bu Linusning asosiy ish stantsiyasi emas, lekin u platformadan yadro ishlashi uchun yaroqliligini sinab ko'rish va qo'lida engil noutbuk bilan sayohat qilganda yadro relizlarini ishlab chiqarishga ishonch hosil qilish uchun foydalangan. Ilgari, ko'p yillar oldin Linus Apple uskunalarini ishlab chiqish uchun ishlatish tajribasiga ega edi - u bir marta ppc970 protsessoriga asoslangan shaxsiy kompyuter va Macbook Air noutbukidan foydalangan.

Yangi versiya 16401 ta ishlab chiquvchidan 2190 ta tuzatishni oʻz ichiga oladi (oldingi versiyada 16206 ta ishlab chiquvchidan 2127 ta tuzatish kiritilgan), yamoq hajmi 90 MB (oʻzgarishlar 13847 ta faylga taʼsir koʻrsatdi, 1149456 ta kod qatori qoʻshildi, 349177 ta satr oʻchirildi). 39-da kiritilgan barcha o'zgarishlarning taxminan 5.19% qurilma drayverlari bilan bog'liq, o'zgarishlarning taxminan 21% apparat arxitekturasiga xos kodni yangilash bilan bog'liq, 11% tarmoq stekiga, 4% fayl tizimlariga va 3% ichki yadro quyi tizimlari bilan bog'liq.

5.19 yadrosidagi asosiy yangiliklar:

  • Disk quyi tizimi, kiritish-chiqarish va fayl tizimlari
    • Faqat o'qish uchun bo'limlarda foydalanish uchun mo'ljallangan EROFS (Enhanced Read-Only File System) fayl tizimi ma'lumotlarni keshlashni ta'minlovchi fscache quyi tizimidan foydalanishga aylantirildi. O'zgartirish EROFS-ga asoslangan tasvirdan ko'p miqdordagi konteynerlar ishga tushiriladigan tizimlarning ish faoliyatini sezilarli darajada yaxshiladi.
    • EROFSni optimallashtirish uchun foydalaniladigan fscache quyi tizimiga talab bo'yicha o'qish rejimi qo'shildi. Yangi rejim mahalliy tizimda joylashgan FS tasvirlaridan o'qish keshini tashkil qilish imkonini beradi. Tarmoq fayl tizimlari orqali uzatiladigan ma'lumotlarni mahalliy fayl tizimida keshlashga yo'naltirilgan dastlabki mavjud ish rejimidan farqli o'laroq, "talab bo'yicha" rejimi ma'lumotlarni olish va keshga yozish funktsiyalarini alohida xotiraga topshiradi. foydalanuvchi maydonida ishlaydigan fon jarayoni.
    • XFS i-tugunda milliardlab kengaytirilgan atributlarni saqlash imkoniyatini beradi. Bitta fayl uchun maksimal kengaytmalar soni 4 milliarddan 247 gacha oshirildi. Bir vaqtning o'zida bir nechta kengaytirilgan fayl atributlarini atomik yangilash rejimi joriy etildi.
    • Btrfs fayl tizimi qulflar bilan ishlashni optimallashtirdi, bu esa to'g'ridan-to'g'ri nowait rejimida yozishda unumdorlikni taxminan 7% ga oshirish imkonini berdi. NOCOW rejimida operatsiyalarning ishlashi (yozishda nusxa ko'chirishsiz) taxminan 3% ga oshiriladi. "Yuborish" buyrug'ini ishga tushirishda sahifa keshidagi yuk kamaydi. Pastki sahifalarning minimal hajmi 64K dan 4K gacha qisqartirildi (yadro sahifalaridan kichikroq pastki sahifalardan foydalanish mumkin). Radix daraxtini ishlatishdan XArrays algoritmiga o'tish amalga oshirildi.
    • So'rovlarga javob berishni to'xtatgan mijoz tomonidan o'rnatilgan qulflash holatini saqlashni kengaytirish uchun NFS serveriga rejim qo'shildi. Yangi rejim, agar boshqa mijoz raqobatdosh qulfni talab qilmasa, qulfni tozalashni bir kungacha kechiktirish imkonini beradi. Oddiy rejimda blokirovka mijoz javob berishni to'xtatgandan keyin 90 soniyadan keyin o'chiriladi.
    • Fanotify FS-dagi hodisalarni kuzatish quyi tizimi FAN_MARK_EVICTABLE bayrog'ini qo'llaydi, uning yordamida siz keshdagi maqsadli i-tugunlarni mahkamlashni o'chirib qo'yishingiz mumkin, masalan, keshda ularning qismlarini mahkamlamasdan kichik filiallarni e'tiborsiz qoldirish uchun.
    • FAT32 fayl tizimining drayveri fayl haqida kengaytirilgan ma'lumotlarni qaytaradigan stat() ning yanada samarali va funktsional versiyasini amalga oshirish bilan statx tizimi chaqiruvi orqali faylni yaratish vaqti haqida ma'lumot olish uchun qo'shimcha qo'shimcha qildi.
    • ExFAT drayverini ketma-ket sektorlar boʻyicha tozalash oʻrniga “dirsync” rejimi faol boʻlganda bir vaqtning oʻzida sektorlar guruhini tozalash imkonini beruvchi muhim optimallashtirishlar amalga oshirildi. Optimallashtirishdan so'ng blok so'rovlar sonini kamaytirish orqali SD-kartada ko'p sonli kataloglarni yaratish ko'rsatkichlari klaster hajmiga qarab 73-85% dan ko'proqqa oshdi.
    • Yadro ntfs3 drayveriga birinchi tuzatuvchi yangilanishni o'z ichiga oladi. O'tgan oktyabr oyida ntfs3 5.15 yadrosiga kiritilganligi sababli, drayver yangilanmadi va ishlab chiquvchilar bilan aloqa uzildi, ammo ishlab chiquvchilar endi nashr etish o'zgarishlarini qayta boshladilar. Taklif etilayotgan yamalar xotiraning oqishiga va ishdan chiqishiga olib keladigan xatolarni bartaraf etdi, xfstests ijrosi bilan bog'liq muammolarni hal qildi, foydalanilmagan kodlarni tozaladi va matn terish xatolarini tuzatdi.
    • OverlayFS uchun o'rnatilgan fayl tizimlarining foydalanuvchi identifikatorlarini xaritalash qobiliyati amalga oshirildi, bu o'rnatilgan xorijiy bo'limdagi ma'lum bir foydalanuvchining fayllarini joriy tizimdagi boshqa foydalanuvchi bilan moslashtirish uchun ishlatiladi.
  • Xotira va tizim xizmatlari
    • MIPS va RISC-V ga o'xshash yangi RISC ISA ni amalga oshiradigan Loongson 3 5000 protsessorlarida ishlatiladigan LoongArch ko'rsatmalar to'plami arxitekturasi uchun dastlabki yordam qo'shildi. LoongArch arxitekturasi uchta turda mavjud: o'chirilgan 32 bitli (LA32R), oddiy 32 bitli (LA32S) va 64 bitli (LA64).
    • 5.1 versiyasida eskirgan a.out bajariladigan fayl formatini qo'llab-quvvatlash uchun kod olib tashlandi. Linux tizimlarida a.out formati uzoq vaqtdan beri bekor qilingan va a.out fayllarini yaratish standart Linux konfiguratsiyalarida zamonaviy vositalar tomonidan qo'llab-quvvatlanmaydi. a.out fayllari uchun yuklovchi to'liq foydalanuvchi maydonida amalga oshirilishi mumkin.
    • X86-ga xos yuklash opsiyalarini qo'llab-quvvatlash to'xtatildi: nosp, nosmap, nosmep, noexec va noclflush).
    • Uzoq vaqt davomida qo'llab-quvvatlanmasdan qolgan eskirgan h8300 CPU arxitekturasini (Renesas H8/300) qo'llab-quvvatlash to'xtatildi.
    • Atom buyrug'ini bajarishda ma'lumotlar protsessorning ikkita kesh chizig'ini kesib o'tishi sababli xotirada tekislanmagan ma'lumotlarga kirishda yuzaga keladigan ajratilgan qulflarni ("split qulflar") aniqlashga javob berish bilan bog'liq kengaytirilgan imkoniyatlar. Bunday blokirovkalar ishlashning sezilarli pasayishiga olib keladi. Agar ilgari sukut bo'yicha yadro blokirovkaga sabab bo'lgan jarayon haqida ma'lumot bilan ogohlantirish bergan bo'lsa, endi tizimning qolgan qismining ishlashini saqlab qolish uchun muammoli jarayon yanada sekinlashadi.
    • Intel protsessorlarida amalga oshirilgan IFS (In-Field Scan) mexanizmi uchun qo'shimcha qo'llab-quvvatlash, bu sizga xatolarni tuzatish kodlari (ECC) yoki paritet bitlari asosida standart vositalar tomonidan aniqlanmagan muammolarni aniqlay oladigan past darajadagi CPU diagnostika testlarini o'tkazish imkonini beradi. . Amalga oshirilgan testlar mikrokod yangilanishlariga o'xshash tarzda ishlab chiqilgan, yuklab olinadigan proshivka shaklida bo'ladi. Sinov natijalari sysfs orqali mavjud.
    • Bootconfig faylini yadroga joylashtirish imkoniyati qo'shildi, bu buyruq qatori opsiyalariga qo'shimcha ravishda sozlamalar fayli orqali yadro parametrlarini aniqlash imkonini beradi. O'rnatish "CONFIG_BOOT_CONFIG_EMBED_FILE="/PATH/TO/BOOTCONFIG/FILE"' yig'ish opsiyasi yordamida amalga oshiriladi. Ilgari bootconfig initrd tasviriga biriktirish orqali aniqlangan. Yadroga integratsiya bootconfig-dan initrdsiz konfiguratsiyalarda foydalanish imkonini beradi.
    • Zstandard algoritmi yordamida siqilgan proshivkani yuklab olish imkoniyati amalga oshirildi. Sysfs-ga /sys/class/firmware/* boshqaruv fayllari to'plami qo'shildi, bu sizga foydalanuvchi maydonidan mikrodasturni yuklashni boshlash imkonini beradi.
    • io_uring asinxron kiritish-chiqarish interfeysi yangi IORING_RECVSEND_POLL_FIRST bayrog‘ini taklif qiladi, u o‘rnatilganda birinchi navbatda so‘rov yordamida qayta ishlash uchun tarmoq operatsiyasini yuboradi, bu esa operatsiyani biroz kechikish bilan qayta ishlash maqbul bo‘lgan holatlarda resurslarni tejash imkonini beradi. io_uring shuningdek, socket() tizimi chaqiruvini qo‘llab-quvvatlashni qo‘shdi, fayl identifikatorlarini boshqarishni soddalashtirish uchun yangi bayroqlarni taklif qildi, accept() chaqiruvida bir vaqtning o‘zida bir nechta ulanishlarni qabul qilish uchun “ko‘p tortishish” rejimini qo‘shdi va NVMe-ni yo‘naltirish uchun operatsiyalarni qo‘shdi. buyruqlar to'g'ridan-to'g'ri qurilmaga.
    • Xtensa arxitekturasi yadro ichidagi poyga sharoitlarini dinamik ravishda aniqlash uchun mo'ljallangan KCSAN (Yadro bir vaqtning o'zida sanitizer) disk raskadrovka vositasini qo'llab-quvvatlaydi. Shuningdek, uyqu rejimi va protsessorlarni qo'llab-quvvatlash qo'shildi.
    • M68k arxitekturasi (Motorola 68000) uchun Android Goldfish emulyatoriga asoslangan virtual mashina (platforma simulyatori) amalga oshirildi.
    • AArch64 arxitekturasi uchun Armv9-A SME (Scalable Matrix Extension) kengaytmalarini qo'llab-quvvatlash amalga oshirildi.
    • eBPF quyi tizimi xarita tuzilmalarida yozilgan ko'rsatkichlarni saqlashga imkon beradi, shuningdek, dinamik ko'rsatkichlarni qo'llab-quvvatlaydi.
    • Memory.reclaim fayli yordamida foydalanuvchi makonini boshqarishni qo'llab-quvvatlaydigan yangi proaktiv xotirani qayta tiklash mexanizmi taklif etiladi. Belgilangan faylga raqam yozish cgroup bilan bog'langan to'plamdan tegishli bayt sonini chiqarishga harakat qiladi.
    • Zswap mexanizmi yordamida almashtirish bo'limidagi ma'lumotlarni siqishda xotiradan foydalanishning aniqligi yaxshilandi.
    • RISC-V arxitekturasi uchun 32-bitli tizimlarda 64-bitli bajariladigan fayllarni ishga tushirish qoʻllab-quvvatlanadi, xotira sahifalariga cheklovchi atributlarni ulash uchun rejim qoʻshiladi (masalan, keshlashni oʻchirish uchun) va kexec_file_load() funksiyasi amalga oshiriladi. .
    • 32-bitli Armv4T va Armv5 tizimlarini qo'llab-quvvatlashni amalga oshirish turli xil ARM tizimlariga mos keladigan universal ko'p platformali yadro tuzilmalarida foydalanish uchun moslashtirilgan.
  • Virtualizatsiya va xavfsizlik
    • EFI quyi tizimi maxfiy ma'lumotlarni xost tizimiga oshkor qilmasdan mehmon tizimlariga maxfiy ravishda o'tkazish qobiliyatini amalga oshiradi. Ma'lumotlar securityfs-dagi security/coco katalogi orqali taqdim etiladi.
    • Ildiz foydalanuvchisining yadroga kirishini cheklaydigan va UEFI Secure Boot chetlab o'tish yo'llarini bloklaydigan blokirovkadan himoya qilish rejimi yadro tuzatuvchisini boshqarish orqali himoyani chetlab o'tishga imkon beruvchi bo'shliqni yo'q qildi.
    • Pseudo-tasodifiy raqamlar generatorining ishonchliligi va ishlashini yaxshilashga qaratilgan yamalar kiritilgan.
    • Clang 15 dan foydalangan holda qurishda yadro tuzilmalarini randomizatsiyalash mexanizmini qo'llab-quvvatlash amalga oshiriladi.
    • Bir qator jarayonlarning tashqi muhit bilan o'zaro ta'sirini cheklash imkonini beruvchi Landlock mexanizmi fayl nomini o'zgartirish operatsiyalarining bajarilishini nazorat qilish imkonini beruvchi qoidalarni qo'llab-quvvatlaydi.
    • Raqamli imzo va xeshlar yordamida operatsion tizim komponentlarining yaxlitligini tekshirish uchun mo‘ljallangan IMA (Integrity Measurement Architecture) quyi tizimi fayllarni tekshirish uchun fs-verity modulidan foydalanishga o‘tkazildi.
    • EBPF quyi tizimiga imtiyozsiz kirishni o'chirishda harakatlar mantig'i o'zgartirildi - ilgari bpf() tizim chaqiruvi bilan bog'liq barcha buyruqlar o'chirilgan va 5.19 versiyasidan boshlab ob'ektlarni yaratishga olib kelmaydigan buyruqlarga kirish huquqi qoldirildi. . Ushbu xatti-harakatlar BPF dasturini yuklash uchun imtiyozli jarayonni talab qiladi, ammo keyin imtiyozsiz jarayonlar dastur bilan o'zaro ta'sir qilishi mumkin.
    • AMD SEV-SNP (Secure Encrypted Paging) kengaytmasi uchun qo‘shimcha qo‘llab-quvvatlandi, bu ichki xotira sahifalari jadvallari bilan xavfsiz ishlashni ta’minlaydi va AMD SEV (Secure Encrypted Virtualization) ni chetlab o‘tish imkonini beruvchi AMD EPYC protsessorlariga “undeSErVed” va “SEVerity” hujumlaridan himoya qiladi. ) himoya mexanizmi.
    • Intel TDX (Ishonchli domen kengaytmalari) mexanizmi uchun qo'shimcha qo'llab-quvvatlash, bu sizga virtual mashinalarning shifrlangan xotirasiga kirishga uchinchi tomon urinishlarini blokirovka qilishga imkon beradi.
    • Blok qurilmalarini taqlid qilish uchun ishlatiladigan virtio-blk drayveri so'rovlar yordamida kiritish-chiqarish uchun qo'shimcha qo'llab-quvvatladi, bu testlarga ko'ra, kechikishni taxminan 10% ga qisqartirdi.
  • Tarmoq quyi tizimi
    • To'plam yuqori tezlikdagi ichki ma'lumotlar markazi tarmoqlarining ishlashini optimallashtirish uchun TCP paketining maksimal paket hajmini 4 Gbaytgacha oshirish imkonini beruvchi bir qator BIG TCP yamoqlarini o'z ichiga oladi. 16 bitli sarlavha maydoni o'lchamiga ega bo'lgan paket hajmining xuddi shunday o'sishiga IP sarlavhasidagi hajmi 0 ga o'rnatilgan va haqiqiy hajmi alohida 32 bitli uzatiladigan "jumbo" paketlarni amalga oshirish orqali erishiladi. alohida biriktirilgan sarlavhadagi maydon. Ishlash testida paket hajmini 185 KB ga o'rnatish o'tkazish qobiliyatini 50% ga oshirdi va ma'lumotlarni uzatish kechikishini sezilarli darajada kamaytirdi.
    • Paketlarni tashlab ketish sabablarini (sabab kodlari) kuzatish uchun vositalarni tarmoq stekiga integratsiyalash bo'yicha ishlar davom ettirildi. Sabab kodi paket bilan bog'langan xotira bo'shatilganda yuboriladi va sarlavhadagi xatolar tufayli paketni bekor qilish, rp_filtrni buzishni aniqlash, noto'g'ri nazorat summasi, xotirada yo'qligi, ishga tushirilgan IPSec XFRM qoidalari, noto'g'ri tartib raqami TCP va hokazo.
    • MPTCP (MultiPath TCP) ulanishlarining ba'zi MPTCP xususiyatlaridan foydalanish mumkin bo'lmagan holatlarda oddiy TCP dan foydalanish uchun qo'shimcha yordam qo'shildi. MPTCP - bu 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. Foydalanuvchi maydonidan MPTCP oqimlarini boshqarish uchun API qo'shildi.
  • uskunalar
    • Amdgpu drayveri bilan bog'liq 420 mingdan ortiq kod qatorlari qo'shildi, ulardan taxminan 400 ming satr AMD GPU drayveridagi ASIC registr ma'lumotlari uchun avtomatik yaratilgan sarlavha fayllari va yana 22.5 ming qator AMD SoC21 uchun dastlabki qo'llab-quvvatlashni ta'minlaydi. AMD grafik protsessorlari uchun jami drayver hajmi 4 million kod qatoridan oshdi. SoC21 dan tashqari, AMD drayveri SMU 13.x (Tizim boshqaruv bloki), USB-C va GPUVM uchun yangilangan qo‘llab-quvvatlash hamda RDNA3 (RX 7000) va CDNA (AMD Instinct) platformalarining keyingi avlodlarini qo‘llab-quvvatlashga tayyorgarlikni o‘z ichiga oladi. .
    • i915 drayveri (Intel) quvvatni boshqarish bilan bog'liq kengaytirilgan imkoniyatlarga ega. Noutbuklarda ishlatiladigan Intel DG2 (Arc Alchemist) GPUlari uchun identifikatorlar qo‘shildi, Intel Raptor Lake-P (RPL-P) platformasi uchun dastlabki yordam taqdim etildi, Arctic Sound-M grafik kartalari haqida ma’lumot qo‘shildi, hisoblash dvigatellari uchun ABI joriy etildi, DG2 kartalari Tile4 formatini qo'llab-quvvatlaydi; Haswell mikroarxitekturasiga asoslangan tizimlar uchun DisplayPort HDR qo'llab-quvvatlashi amalga oshiriladi.
    • Nouveau drayveri drm_gem_plane_helper_prepare_fb ishlov beruvchisidan foydalanishga o'tdi; ba'zi tuzilmalar va o'zgaruvchilarga statik xotira ajratish qo'llanilgan. Nouveau-da NVIDIA tomonidan ochiq kodli yadro modullaridan foydalanishga kelsak, ish hozirgacha xatolarni aniqlash va yo'q qilish bilan bog'liq. Kelajakda chop etilgan proshivkadan drayverlarning ish faoliyatini yaxshilash uchun foydalanish rejalashtirilgan.
    • M1 chipiga asoslangan Apple kompyuterlarida ishlatiladigan NVMe kontrolleri uchun drayver qo'shildi.

Shu bilan birga, Lotin Amerikasi Erkin dasturiy ta'minot jamg'armasi butunlay bepul yadro 5.19 - Linux-libre 5.19-gnu versiyasini yaratdi, u dasturiy ta'minot elementlari va bepul bo'lmagan komponentlar yoki kod bo'limlarini o'z ichiga olgan drayverlardan tozalangan, ularning doirasi ishlab chiqaruvchi tomonidan cheklangan. Yangi versiya pureLiFi X/XL/XC va TI AMx3 Wkup-M3 IPC uchun drayverlarni tozalaydi. Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Peripheral Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS, pu3-imgu drayverlari va quyi tizimlarida yangilangan blob tozalash kodi. Qualcomm AArch64 qurilma daraxti fayllarini qayta ishlash amalga oshirildi. Yangi Sound Open Firmware komponentlarini nomlash sxemasi uchun qoʻshimcha qoʻllab-quvvatlash. Yadrodan olib tashlangan ATM Ambassador drayverini tozalashni to'xtatdi. HDCP va Mellanox Core-da blobni tozalashni boshqarish alohida kconfig teglariga ko'chirildi.

Manba: opennet.ru

a Izoh qo'shish