Linux 6.1 yadro versiyasi

Ikki oylik rivojlanishdan so'ng Linus Torvalds Linux yadrosi 6.1 versiyasini taqdim etdi. Eng diqqatga sazovor o'zgarishlar orasida: Rust tilida drayverlar va modullarni ishlab chiqishni qo'llab-quvvatlash, ishlatilgan xotira sahifalarini aniqlash mexanizmini modernizatsiya qilish, BPF dasturlari uchun maxsus xotira menejeri, KMSAN xotira muammolarini diagnostika qilish tizimi, KCFI (Kernelk Control) -Flow Integrity) himoya mexanizmi, Maple strukturasi daraxtini joriy etish.

Yangi versiya 15115 ta ishlab chiquvchilardan 2139 ta tuzatishni oʻz ichiga oladi, yamoq hajmi 51 MB ni tashkil etadi, bu 2 va 6.0 yadrolari yamoqlari hajmidan taxminan 5.19 baravar kichikdir. O'zgarishlar 13165 716247 ta faylga ta'sir ko'rsatdi, 304560 45 qator kod qo'shildi va 6.1 14 qator o'chirildi. 14-da kiritilgan barcha o'zgarishlarning taxminan 3% qurilma drayverlari bilan bog'liq, o'zgarishlarning taxminan 3% apparat arxitekturasiga xos kodni yangilash bilan bog'liq, XNUMX% tarmoq stekiga, XNUMX% fayl tizimlariga va XNUMX% ichki yadro quyi tizimlari bilan bog'liq.

6.1 yadrosidagi asosiy yangiliklar:

  • Xotira va tizim xizmatlari
    • Drayvlar va yadro modullarini ishlab chiqish uchun Rust tilidan ikkinchi til sifatida foydalanish imkoniyati qo'shildi. Rust-ni qo'llab-quvvatlashning asosiy sababi xotira bilan ishlashda xato qilish ehtimolini kamaytirish orqali xavfsiz va yuqori sifatli qurilma drayverlarini yozishni osonlashtirishdir. Zangni qo'llab-quvvatlash sukut bo'yicha o'chirib qo'yilgan va Rust yadro qurilishiga zarur bo'lgan bog'liqlik sifatida kiritilishiga olib kelmaydi. Yadro hozirgacha yamoqlarning minimal, qisqartirilgan versiyasini qabul qildi, u kodning 40 dan 13 ming qatoriga qisqartirildi va Rust tilida yozilgan oddiy yadro modulini yaratish uchun etarli bo'lgan zarur minimalni ta'minlaydi. Kelajakda Rust-for-Linux filialidan boshqa o'zgarishlarni o'tkazib, mavjud funksionallikni bosqichma-bosqich oshirish rejalashtirilgan. Bunga parallel ravishda NVMe drayverlari, 9p tarmoq protokoli va Rust tilida Apple M1 GPU drayverlarini ishlab chiqish uchun taklif qilingan infratuzilmadan foydalanish bo'yicha loyihalar ishlab chiqilmoqda.
    • EFI bilan AArch64, RISC-V va LoongArch arxitekturalariga asoslangan tizimlar uchun siqilgan yadro tasvirlarini bevosita yuklash imkoniyati joriy qilingan. To'g'ridan-to'g'ri EFI zboot-dan chaqirilgan yadro tasvirlarini yuklash, ishga tushirish va tushirish uchun qo'shilgan ishlov beruvchilar. EFI protokoli ma'lumotlar bazasidan protokollarni o'rnatish va o'chirish uchun ishlov beruvchilar ham qo'shildi. Ilgari, o'ramni ochish alohida yuklovchi tomonidan amalga oshirilgan, ammo endi buni yadroning o'zida ishlov beruvchi amalga oshirishi mumkin - yadro tasviri EFI ilovasi sifatida shakllanadi.
    • Tarkibi turli xil ishlash xususiyatlariga ega xotira banklarini ajratish imkonini beruvchi ko'p darajali xotira boshqaruvi modelini amalga oshirish bilan yamoqlarning bir qismini o'z ichiga oladi. Misol uchun, eng ko'p ishlatiladigan sahifalar eng tez xotirada saqlanishi mumkin, eng kam ishlatiladigan sahifalar esa nisbatan sekin xotirada saqlanishi mumkin. Yadro 6.1 sekin xotirada ko'p ishlatiladigan sahifalar qayerda joylashganligini aniqlash mexanizmini taqdim etadi, shuning uchun ularni tez xotiraga ko'tarish mumkin, shuningdek, xotira darajalari va ularning nisbiy ishlashi haqida umumiy tushunchani taqdim etadi.
    • U MGLRU (Ko'p avlod LRU) mexanizmini o'z ichiga oladi, u ikki navbatga asoslangan eski LRU (Eng kam so'nggi foydalanilgan) amalga oshirish o'rnini bosadi, bu ko'p bosqichli tuzilishga ega bo'lib, qaysi xotira sahifalari amalda qo'llanilishini va qaysi sahifalarga surilishi mumkinligini aniqlaydi. almashtirish bo'limi.
    • Oracle muhandislari tomonidan taklif qilingan “qizil-qora daraxt” strukturasini yanada samarali o‘rnini bosuvchi “zarang daraxti” ma’lumotlar tuzilmasini qo‘llab-quvvatlash qo‘shildi. Chinor daraxti diapazonni indekslashni qo'llab-quvvatlaydigan va zamonaviy protsessorlar keshidan samarali foydalanish uchun mo'ljallangan B-daraxtning bir variantidir. Xotirani boshqarishning ba'zi quyi tizimlari allaqachon chinor daraxtiga o'tkazildi, bu ularning ishlashiga ijobiy ta'sir ko'rsatdi. Kelajakda chinor daraxti diapazonni qulflashni amalga oshirish uchun ishlatilishi mumkin.
    • BPF quyi tizimiga crash_kexec() qo'ng'irog'i orqali favqulodda o'chirishni boshlash uchun maxsus ishlab chiqilgan "buzg'unchi" BPF dasturlarini yaratish qobiliyati qo'shildi. Bunday BPF dasturlari disk raskadrovka maqsadlarida ma'lum bir vaqtda halokatli chiqindilarni yaratishni boshlash uchun talab qilinishi mumkin. BPF dasturini yuklashda halokatli operatsiyalarga kirish uchun siz BPF_F_DESTRUCTIVE bayrog'ini ko'rsatishingiz, sysctl kernel.destructive_bpf_enabledni faollashtirishingiz va CAP_SYS_BOOT huquqlariga ega bo'lishingiz kerak.
    • BPF dasturlari uchun guruh elementlarini sanab o'tish, shuningdek, ma'lum bir mavzu yoki vazifaning resurslarini (fayllar, vma, jarayonlar va boshqalar) sanab o'tish mumkin. Foydalanuvchi ring buferlarini yaratish uchun yangi xarita turi joriy etildi.
    • BPF dasturlarida xotirani ajratish uchun maxsus chaqiruv qo'shildi (xotira ajratuvchi), bu BPF kontekstida standart kmalloc() ga qaraganda xavfsizroq xotira ajratishni ta'minlaydi.
    • O'zgarishlarning birinchi qismi BPF dasturlari ko'rinishida amalga oshirilgan HID (Inson interfeysi qurilmasi) interfeysi bilan kiritish qurilmalari uchun drayverlarni yaratish imkoniyatini ta'minlovchi integratsiya qilingan.
    • Yadro 5.1 versiyasida eskirgan va 5.18 va 5.19 versiyalaridan boshlab asosiy arxitekturalar uchun o‘chirib qo‘yilgan a.out bajariladigan fayl formatini qo‘llab-quvvatlash uchun kodni butunlay olib tashladi. 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.
    • Loongson 3 5000 protsessorlarida qo'llaniladigan va MIPS va RISC-V ga o'xshash yangi RISC ISA ni amalga oshiruvchi LoongArch ko'rsatmalar to'plami arxitekturasiga asoslangan tizimlar uchun unumdorlikni o'lchash hodisalari (perf hodisalari), kexec, kdump va BPF JIT kompilyatsiyasini qo'llab-quvvatlash amalga oshiriladi. .
    • io_uring asinxron kiritish/chiqarish interfeysi yangi IORING_SETUP_DEFER_TASKRUN rejimini taklif etadi, bu esa dastur so‘rovi amalga oshirilgunga qadar halqa buferi bilan bog‘liq ishni vaqtincha kechiktirishga imkon beradi, bu esa to‘plamli ishlarni bajarish va oldindan tanlash tufayli kechikish muammolarini oldini olish uchun ishlatilishi mumkin. noto'g'ri vaqt.
    • Foydalanuvchi maydonidagi jarayonlarga oddiy xotira sahifalari diapazonini katta xotira sahifalari to'plamiga (Transparent Huge-Pages) aylantirishni boshlash imkoniyati beriladi.
    • FSdagi kirish huquqlaridan foydalangan holda userfaultfd() tizim chaqiruvining funksionalligiga kirish imkonini beruvchi /dev/userfaultfd qurilmasining ilovasi qo'shildi. Userfaultfd funksiyasi foydalanuvchi maydonida ajratilmagan xotira sahifalariga (sahifa xatolari) kirish uchun ishlov beruvchilarni yaratishga imkon beradi.
    • GNU Make yordam dasturi versiyasiga talablar oshirildi - endi yadro yaratish uchun kamida 3.82 versiyasi talab qilinadi.
  • Disk quyi tizimi, kiritish-chiqarish va fayl tizimlari
    • Btrfs fayl tizimida unumdorlikni sezilarli darajada optimallashtirish amalga oshirildi; boshqa narsalar qatori, FIEMAP ioctl chaqiruvining unumdorligi kattalik buyurtmalari bilan oshirildi. io_uring-dan foydalanadigan ilovalar uchun asinxron buferli yozishni qo'llab-quvvatlash qo'shildi. "Yuborish" operatsiyasiga fs-verity bilan himoyalangan fayllar uchun qo'shimcha qo'llab-quvvatlash.
    • Ext4 fayl tizimi jurnalni saqlash va faqat o'qish uchun ishlash bilan bog'liq ishlash optimallashtirishlarini qo'shdi.
    • Faqat o'qish rejimida foydalanish mumkin bo'lgan bo'limlarda foydalanish uchun mo'ljallangan EROFS (Enhanced Read-Only File System) fayl tizimi turli fayl tizimlarida takrorlangan ma'lumotlarni almashish imkoniyatini amalga oshiradi.
    • Faylga to'g'ridan-to'g'ri kiritish-chiqarish qo'llanilishi mumkinligi haqidagi ma'lumotni ko'rsatish uchun statx() tizim chaqiruvi qo'shildi.
    • O_TMPFILE bayrog'i bilan vaqtinchalik fayllarni yaratishni qo'llab-quvvatlash FUSE (Foydalanuvchi maydonidagi fayl tizimlari) quyi tizimiga qo'shildi.
  • Virtualizatsiya va xavfsizlik
    • CFI (Control Flow Integrity) himoya mexanizmini amalga oshirish almashtirildi, bu funksiyaning har bir bilvosita chaqiruvidan oldin tekshiruvlar qo‘shildi, bu esa normal bajarish tartibini (boshqaruv oqimi) buzilishiga olib kelishi mumkin bo‘lgan noaniq xatti-harakatlarning ayrim shakllarini aniqlash imkonini beradi. xotirada saqlangan funktsiyalarga ko'rsatgichlarni o'zgartiradigan ekspluatatsiyalardan foydalanish natijasi. LLVM loyihasidan CFI-ning standart amalga oshirilishi Clang-dan foydalanishga asoslangan, ammo past darajadagi quyi tizimlar va operatsion tizim yadrolarini himoya qilish uchun maxsus moslashtirilgan variant bilan almashtirildi. LLVM-da Clang 16 versiyasida yangi dastur taklif etiladi va "-fsanitize=kcfi" opsiyasi bilan yoqiladi. Yangi dasturdan asosiy farq shundaki, u ulanish vaqtini optimallashtirish (LTO) bilan bog'lanmagan va funktsiya ko'rsatkichlarini o'tish jadvalidagi havolalar bilan almashtirmaydi.
    • LSM modullari uchun (Linux Security Module) nomlar bo'shliqlarini yaratish uchun operatsiyalarni to'xtatuvchi ishlov beruvchilarni yaratish mumkin.
    • BPF dasturlarida PKCS#7 raqamli imzolarini tekshirish uchun asboblar taqdim etilgan.
    • 5.6 yadrosida beixtiyor olib tashlangan bloklanmaydigan rejimda (O_NONBLOCK) ochish imkoniyati /dev/random ga qaytarildi.
    • X86 arxitekturali tizimlarda bir vaqtning o'zida bajarish va yozish imkonini beruvchi yadro quyi tizimlari tomonidan xotira sahifalarini xaritalash holatida ogohlantirish qo'shildi. Kelajakda bunday xotira xaritasini butunlay taqiqlash imkoniyati ko'rib chiqilmoqda.
    • Yadroda ishga tushirilmagan xotiradan foydalanishni, shuningdek, foydalanuvchi maydoni va qurilmalar o'rtasida ishga tushirilmagan xotira oqishini aniqlash uchun KMSAN (Yadro xotirasini tozalash vositasi) disk raskadrovka mexanizmi qo'shildi.
    • Tasodifiy qo'ng'iroqda ishlatiladigan kripto-xavfsiz CRNG psevdo-tasodifiy raqamlar generatorida yaxshilanishlar amalga oshirildi. O'zgarishlar VPN WireGuard muallifi Jeyson A. Donenfeld tomonidan tayyorlangan va psevdo-tasodifiy butun sonlarni ajratib olish xavfsizligini yaxshilashga qaratilgan.
  • Tarmoq quyi tizimi
    • TCP to'plami har bir nom maydoni uchun soket xesh jadvallarini alohida ishlatish imkoniyatini beradi (sukut bo'yicha o'chirilgan), bu ko'p sonli nomlar maydoniga ega tizimlarda ishlashni yaxshilaydi.
    • Eski DECnet protokolini qoʻllab-quvvatlash uchun kod olib tashlandi. DECnet-dan foydalanadigan ilovalarni kompilyatsiya qilish uchun foydalanuvchi maydoni API stublari o'rnida qoldiriladi, ammo bu ilovalar tarmoqqa ulana olmaydi.
    • Netlink protokoli hujjatlashtirilgan.
  • uskunalar
    • Amdgpu drayveri juda yuqori ruxsatlarni qo'llab-quvvatlaydigan ekranlar bilan ma'lumot almashishda ma'lumotlarni yo'qotishsiz siqish uchun DSC (Display Stream Compression) yo'naltirishni qo'llab-quvvatladi. AMD RDNA3 (RX 7000) va CDNA (Instinct) platformalarini qo'llab-quvvatlash bo'yicha ishlar davom etmoqda. DCN 3.2, SMU 13.x, NBIO 7.7, GC 11.x, PSP 13.x, SDMA 6.x va GMC 11.x IP komponentlarini qoʻllab-quvvatlash qoʻshildi. Amdkfd drayveri (Polaris kabi diskret AMD GPUlari uchun) GFX 11.0.3 ni qo'llab-quvvatlaydi.
    • i915 (Intel) drayveri Meteor Lake GPU-ni qo'llab-quvvatlaydi. Meteor Lake va yangi GPU'lar DP 2.0 (DisplayPort) interfeysini qo'llab-quvvatlaydi. Alder Lake S mikroarxitekturasi asosida video kartalar uchun identifikatorlar qo'shildi.
    • Apple Silicon, Intel SkyLake va Intel KabyLake protsessorlarida amalga oshirilgan audio quyi tizimlari uchun qo'shimcha yordam. CS35L41 HDA audio drayveri uyqu rejimini qo'llab-quvvatlaydi. Apple Silicon, AMD Rembrant DSPs, AMD Pink Sardine ACP 6.2, Everest ES8326, Intel Sky Lake va Kaby Lake, Mediatek MT8186, NXP i.MX8ULP DSPs, Qualcomm i.MX8280ULP DSPs, Qualcomm8250XP8450, integratsiyalangan audio chiplari uchun ASoC (ALSA System on Chip) qo'llab-quvvatlashi qo'shildi. SM4392 va Texas Instruments SRCXNUMX
    • Samsung LTL101AL01, B120XAN01.0, R140NWF5 RH, Densitron DMT028VGHMCMI-1A TFT, AUO B133UAN02.1, IVO M133NW4J-R3, Innolux N120XAN1, B116XAN01.6, B116XAN21. LCD panellari uchun qoʻshimcha qoʻllab-quvvatlash. 116WH M-N2, INX N116BCA- EA1 , INX N0800BCN-EA9, Multi-Inno texnologiyasi MIXNUMXFT-XNUMX.
    • Baikal-T1 SoC-da ishlatiladigan AHCI SATA kontrollerlari uchun qo'shimcha yordam.
    • Bluetooth chiplari MediaTek MT7921, Intel Magnetor (CNVi, Integrated Connectivity), Realtek RTL8852C, RTW8852AE va RTL8761BUV (Edimax BT-8500) uchun qo'shimcha qo'llab-quvvatlash.
    • Qualcomm simsiz modullari uchun ath11k drayveri 160 MGts diapazonida spektral skanerlashni qo'llab-quvvatladi, ko'p tarmoqli NAPIni amalga oshirdi va Qualcomm WCN6750 Wi-Fi chiplari uchun yaxshilangan qo'llab-quvvatladi.
    • PinePhone klaviaturasi, InterTouch sensorli panellari (ThinkPad P1 G3), X-Box Adaptiv Controller, PhoenixRC Flight Controller, VRC-2 Car Controller, DualSense Edge Controller, IBM Operation Panel, XBOX One Elite pultlari, XP-PEN Deco Pro S planshetlari uchun drayverlar qo‘shildi. va Intuos Pro Small (PTH-460).
    • Aspeed HACE (Hash va Crypto Engine) kriptografik tezlatgichlari uchun drayver qo‘shildi.
    • Integratsiyalashgan Thunderbolt/USB4 Intel Meteor Lake kontrollerlari uchun qo'shimcha yordam.
    • Sony Xperia 1 IV, Samsung Galaxy E5, E7 va Grand Max, Pine64 Pinephone Pro smartfonlarini qo‘llab-quvvatlash qo‘shildi.
    • ARM SoC va platalar uchun qo‘shimcha qo‘llab-quvvatlash: AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 va RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQ, IPQ Kontr8062/ BL i.MX8065MM OSM-S, MT8 (Acer Pomidor), Radxa ROCK 8195C+, NanoPi R4S Enterprise Edition, JetHome JetHub D4p. SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom va NXP uchun yangilangan drayverlar.

Shu bilan birga, Lotin Amerikasi Erkin dasturiy ta'minot fondi butunlay bepul yadro 6.1 versiyasini yaratdi - Linux-libre 6.1-gnu, dasturiy ta'minot elementlari va bepul bo'lmagan komponentlar yoki kod bo'limlarini o'z ichiga olgan drayverlardan tozalangan, qo'llanishi cheklangan. ishlab chiqaruvchi tomonidan. Yangi nashr yangi rtw8852b drayverini va AArch64 arxitekturasiga asoslangan protsessorlarga ega turli Qualcomm va MediaTek SoC uchun DTS fayllarini tozalaydi. Amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI drayverlari va quyi tizimlarida yangilangan blob tozalash kodi. Eskirgan drayverlarni tozalash tm6000 televizor kartalari, cpia2 v4l, sp8870, av7110 tuzatildi.

Manba: opennet.ru

a Izoh qo'shish