Linux 6.0 yadro versiyasi

Ikki oylik rivojlanishdan so'ng Linus Torvalds Linux 6.0 yadrosining chiqarilishini taqdim etdi. Versiya raqamining sezilarli o'zgarishi estetik sabablarga ko'ra va seriyadagi ko'p sonli muammolarni to'plash noqulayligini engillashtirish uchun rasmiy qadamdir (Linus filial raqamini o'zgartirish sababi uning barmoqlari tugashi ehtimoli ko'proq ekanligini hazillashdi. va versiya raqamlarini hisoblash uchun oyoq barmoqlari). Eng e'tiborli o'zgarishlar orasida: XFS-da asinxron buferli yozishni qo'llab-quvvatlash, ublk blok drayveri, vazifalarni rejalashtiruvchini optimallashtirish, yadroning to'g'ri ishlashini tekshirish mexanizmi, ARIA blok shifrini qo'llab-quvvatlash.

6.0 yadrosidagi asosiy yangiliklar:

  • Disk quyi tizimi, kiritish-chiqarish va fayl tizimlari
    • XFS fayl tizimi io_uring mexanizmidan foydalangan holda asinxron buferli yozishni qo'llab-quvvatladi. Fio vositalari (1 ip, 4kB blok hajmi, 600 soniya, ketma-ket yozish) yordamida o'tkazilgan ishlash testlari soniyada kiritish/chiqarish operatsiyalari (IOPS) 77k dan 209k gacha, ma'lumotlarni uzatish tezligi 314MB/s dan 854MB/s gacha, va kechikishning 9600ns dan 120ns gacha (80 marta) pasayishi.
    • Btrfs fayl tizimi "yuborish" buyrug'i uchun protokolning ikkinchi versiyasini amalga oshiradi, u qo'shimcha metama'lumotlarni qo'llab-quvvatlaydi, ma'lumotlarni katta bloklarda (64K dan ortiq) jo'natadi va siqilgan shaklda uzatadi. To'g'ridan-to'g'ri o'qish operatsiyalarining ishlashi 3 tagacha sektorni bir vaqtning o'zida o'qish hisobiga sezilarli darajada oshirildi (256 barobargacha). Kechiktirilgan elementlar uchun zahiradagi metamaʼlumotlarni qisqartirish orqali blokirovkalash bahsi kamaytirildi va metamaʼlumotlarni tekshirish tezlashtirildi.
    • Superblokda saqlangan UUIDni olish yoki o'rnatish uchun ext4 fayl tizimiga yangi ioctl operatsiyalari EXT4_IOC_GETFSUUID va EXT4_IC_SETFSUUID qo'shildi.
    • F2FS fayl tizimi kichik hajmdagi operativ xotiraga ega qurilmalarda ishlashni optimallashtiradigan va unumdorlikni pasaytirish hisobiga xotira sarfini kamaytirish imkonini beruvchi kam xotira iste'moli rejimini taklif etadi.
    • NVMe drayverini autentifikatsiya qilish uchun qo'shimcha yordam.
    • NFSv4 serveri faol mijozlar soni bo'yicha cheklovni amalga oshiradi, bu tizimdagi har bir gigabayt operativ xotira uchun 1024 ta haqiqiy mijoz sifatida o'rnatiladi.
    • CIFS mijoz dasturi ko'p kanalli uzatish rejimida ish faoliyatini yaxshiladi.
    • Muayyan hodisalarni e'tiborsiz qoldirish uchun fanotify FSdagi hodisalarni kuzatish quyi tizimiga yangi FAN_MARK_IGNORE bayrog'i qo'shildi.
    • Overlayfs FS-da, foydalanuvchi identifikatori xaritasi bilan FS ustiga o'rnatilganda, POSIX-mos kirishni boshqarish ro'yxatlarini to'g'ri qo'llab-quvvatlash ta'minlanadi.
    • ublk blok drayveri qo'shildi, u ma'lum mantiqni foydalanuvchi maydonida fon jarayoni tomoniga o'tkazadi va io_uring quyi tizimidan foydalanadi.
  • Xotira va tizim xizmatlari
    • DAMON (Data Access MONitor) quyi tizimiga yangi funksiyalar qo‘shildi, ular nafaqat foydalanuvchi maydonidan operativ xotiraga kirish jarayonini kuzatish, balki xotira boshqaruviga ham ta’sir qilish imkonini beradi. Xususan, ma'lum xotira sahifalarining ustuvorligini oshirish uchun LRU (Eng kam ishlatilgan) ro'yxatlarini qayta guruhlashni ta'minlaydigan yangi "LRU_SORT" moduli taklif qilindi.
    • Yangi xotira hududlarini yaratish imkoniyati protsessor va xotira qurilmalari o'rtasida yuqori tezlikdagi o'zaro aloqani tashkil qilish uchun foydalaniladigan CXL (Compute Express Link) avtobusining imkoniyatlaridan foydalangan holda amalga oshirildi. CXL sizga tashqi xotira qurilmalari tomonidan taqdim etilgan yangi xotira hududlarini ulash va ulardan tizimning tasodifiy kirish xotirasi (DDR) yoki doimiy xotirasini (PMEM) kengaytirish uchun qo'shimcha jismoniy manzil maydoni resurslari sifatida foydalanish imkonini beradi.
    • Ba'zi chipsetlardagi apparat muammosini hal qilish uchun 20 yil oldin qo'shilgan kod tufayli kelib chiqqan AMD Zen protsessorlari bilan ishlash muammolari hal qilindi (protsessorni sekinlashtirish uchun qo'shimcha WAIT ko'rsatmasi qo'shildi, shuning uchun chipset bo'sh holatga o'tishga vaqt topdi). O'zgarish bo'sh va band holatlar o'rtasida tez-tez almashinadigan ish yuklarida ishlashning pasayishiga olib keldi. Misol uchun, vaqtinchalik yechim o'chirilgandan so'ng, o'rtacha tbench test ballari 32191 MB/s dan 33805 MB/s gacha ko'tarildi.
    • Evristik kodlar vazifalarni rejalashtiruvchidan olib tashlandi, bu energiya iste'molining taxminiy daromadini hisobga olgan holda jarayonlarning eng kam yuklangan protsessorlarga o'tishini ta'minlaydi. Ishlab chiquvchilar evristik etarli darajada foydali emasligi va uni olib tashlash va jarayonlarni qo'shimcha baholashsiz ko'chirish osonroq degan xulosaga kelishdi, agar bunday migratsiya quvvat sarfini kamaytirishga olib kelishi mumkin bo'lsa (masalan, maqsadli protsessor pastroq quvvat darajasida bo'lsa). Evristikani o'chirib qo'yish intensiv vazifalarni bajarishda quvvat sarfini kamaytirishga olib keldi, masalan, video dekodlash testida quvvat sarfi 5.6% ga kamaydi.
    • Katta tizimlardagi CPU yadrolari bo'yicha vazifalarni taqsimlash optimallashtirildi, bu esa muayyan turdagi ish yuklari uchun unumdorlikni oshirdi.
    • io_uring asinxron kiritish/chiqarish interfeysi yangi IORING_RECV_MULTISHOT bayrog'ini taklif etadi, bu sizga recv() tizimi qo'ng'irog'i bilan bir vaqtning o'zida bir nechta o'qish operatsiyalarini bir vaqtning o'zida bir tarmoq rozetkasidan bajarish uchun ko'p tortishish rejimidan foydalanish imkonini beradi. io_uring, shuningdek, oraliq buferlashsiz (nol nusxa) tarmoq uzatishni qo'llab-quvvatlaydi.
    • Uprobga biriktirilgan BPF dasturlarini uyqu holatiga o'tkazish qobiliyati amalga oshirildi. BPF shuningdek, yadro belgilari jadvallari bilan ishlash uchun yangi iterator ksym qo'shadi.
    • UEFI yuklash o'zgaruvchilariga kirish uchun mo'ljallangan sysfs-dagi eskirgan "efivars" interfeysi olib tashlandi (efivarfs virtual FS endi EFI ma'lumotlariga kirish uchun universal tarzda qo'llaniladi).
    • Perf yordam dasturida blokirovkalar to'qnashuvlari va yadro komponentlarini bajarish uchun protsessor sarflagan vaqtni tahlil qilish uchun yangi hisobotlar mavjud.
    • CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 sozlamasi olib tashlandi, bu yadroni "-O3" optimallashtirish rejimida qurish imkonini berdi. Ta'kidlanishicha, optimallashtirish rejimlari bilan tajribalar yig'ish paytida bayroqlarni o'tkazish yo'li bilan amalga oshirilishi mumkin ("KCFLAGS=-O3 qiling") va Kconfig-ga sozlamani qo'shish takrorlanadigan ishlash profilini talab qiladi, bu esa "-O3" rejimida ishlatiladigan tsiklni ochish imkonini beradi. “-O2” optimallashtirish darajasiga nisbatan foyda.
    • Alohida "xotirani qisqartiruvchilar" ning ishlashi haqida ma'lumot olish uchun disk raskadrovka interfeysi qo'shildi (xotira yetarli bo'lmaganda ishlov beruvchilar chaqiriladi va ularning xotira sarfini kamaytirish uchun yadro ma'lumotlar tuzilmalari paketlanadi).
    • OpenRISC va LoongArch arxitekturalari uchun PCI avtobusini qo'llab-quvvatlash amalga oshiriladi.
    • RISC-V arxitekturasi uchun "Zicbom" kengaytmasi kesh-kogerent bo'lmagan DMA qurilmalarini boshqarish uchun joriy qilingan.
  • Virtualizatsiya va xavfsizlik
    • Hech qanday nosozlikni kafolatlaydigan yuqori ishonchli tizimlarda to'g'ri ishlashini tekshirish uchun RV (Runtime Verification) tekshirish mexanizmi qo'shildi. Tasdiqlash ish vaqtida bajarilishning amaldagi borishini tizimning kutilgan harakatini aniqlaydigan mashinaning oldindan belgilangan mos yozuvlar deterministik modeliga nisbatan tekshiradigan kuzatuv nuqtalariga ishlov beruvchilarni biriktirish orqali amalga oshiriladi. Ishlash vaqtida model bilan tekshirish klassik ishonchlilikni tekshirish usullarini to'ldiruvchi muhim tizimlarda bajarilishining to'g'riligini tasdiqlash uchun engilroq va amalga oshirish oson usul sifatida joylashtirilgan. RV ning afzalliklari orasida butun tizimni modellashtirish tilida alohida amalga oshirmasdan qat'iy tekshirishni ta'minlash, shuningdek, kutilmagan hodisalarga moslashuvchan javob berish imkoniyati mavjud.
    • Intel SGX2 (Software Guard eXtensions) texnologiyasi asosida anklavlarni boshqarish uchun integratsiyalangan yadro komponentlari, bu tizimning qolgan qismiga kirish imkoniyati cheklangan, ilovalarga xotiraning ajratilgan shifrlangan sohalarida kodni bajarishga imkon beradi. Intel SGX2 texnologiyasi Intel Ice Lake va Gemini Lake chiplarida qo'llab-quvvatlanadi va Intel SGX1 dan anklavlarning dinamik xotirasini boshqarish bo'yicha qo'shimcha ko'rsatmalarda farqlanadi.
    • X86 arxitekturasi uchun bootloader sozlamalari orqali psevdor tasodifiy raqamlar generatori uchun urug'ni uzatish imkoniyati amalga oshirildi.
    • SafeSetID LSM moduli endi setgroups() chaqiruvi orqali kiritilgan o'zgarishlarni boshqarish imkoniyatiga ega. SafeSetID tizim xizmatlariga foydalanuvchilarni imtiyozlarni oshirmasdan (CAP_SETUID) va ildiz huquqlarini olmasdan xavfsiz boshqarish imkonini beradi.
    • ARIA blok shifrini qo'llab-quvvatlash qo'shildi.
    • BPF-ga asoslangan xavfsizlikni boshqarish moduli ishlov beruvchilarni alohida jarayonlarga va jarayon guruhlariga (guruhlarga) biriktirish imkoniyatini beradi.
    • vCPU faoliyatini monitoring qilish asosida mehmon tizimlarining osilganligini aniqlash uchun qo'riqchi ilovasi bilan mexanizm qo'shildi.
  • Tarmoq quyi tizimi
    • BPF quyi tizimiga SYN cookie-fayllarini yaratish va tekshirish uchun ishlov beruvchilar qo'shildi. Shuningdek, ulanishlar holatiga kirish va o'zgartirish uchun funktsiyalar to'plami (kfunc) qo'shilgan.
    • Simsiz stek WiFi 7 spetsifikatsiyasida belgilangan MLO (Multi-Link Operation) mexanizmini qo'shimcha qo'llab-quvvatladi va qurilmalarga bir vaqtning o'zida turli chastota diapazonlari va kanallari yordamida ma'lumotlarni qabul qilish va jo'natish, masalan, bir vaqtning o'zida bir nechta aloqa kanallarini o'rnatish imkonini beradi. mijoz qurilmasiga kirish nuqtasi.
    • Yadroga o'rnatilgan TLS protokolining ishlashi yaxshilandi.
    • Yadro buyruq qatori "hostname=" opsiyasi qo'shildi, bu kompyuter nomini yuklash jarayonining boshida, foydalanuvchi bo'shlig'i komponentlarini ishga tushirishdan oldin o'rnatish imkonini beradi.
  • uskunalar
    • i915 (Intel) drayveri Intel Arc (DG2/Alchemist) A750 va A770 diskret video kartalarini qo'llab-quvvatlaydi. Intel Ponte Vecchio (Xe-HPC) va Meteor Lake GPU-larini qo'llab-quvvatlashning dastlabki amalga oshirilishi taklif qilindi. Intel Raptor Lake platformasini qo'llab-quvvatlash bo'yicha ishlar davom etmoqda.
    • Amdgpu drayveri AMD RDNA3 (RX 7000) va CDNA (Instinct) platformalarini qo'llab-quvvatlashda davom etmoqda.
    • Nouveau drayveri NVIDIA nv50 GPU displey dvigatellari uchun qo'llab-quvvatlash kodini qayta ishladi.
    • LogiCVC ekranlari uchun yangi logicvc DRM drayveri qo'shildi.
    • v3d drayveri (Broadcom Video Core GPU uchun) Raspberry Pi 4 platalarini qo'llab-quvvatlaydi.
    • MSM drayveriga Qualcomm Adreno 619 GPU qo'llab-quvvatlashi qo'shildi.
    • Panfrost drayveriga ARM Mali Valhall GPU-ni qo'llab-quvvatlash qo'shildi.
    • Lenovo ThinkPad X8s noutbuklarida ishlatiladigan Qualcomm Snapdragon 3cx Gen13 protsessorlari uchun dastlabki yordam qo'shildi.
    • AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake va Mediatek MT8186 platformalari uchun ovoz drayverlari qo‘shildi.
    • Intel Habana Gaudi 2 mashina o‘rganish tezlatgichlari uchun qo‘shimcha qo‘llab-quvvatlash.
    • ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3 uchun qo‘shimcha yordam.

Shu bilan birga, Lotin Amerikasi bepul dasturiy ta'minot jamg'armasi butunlay bepul yadro 6.0 versiyasini - Linux-libre 6.0-gnu versiyasini yaratdi, u dasturiy ta'minot elementlaridan va bepul bo'lmagan komponentlarni yoki kod bo'limlarini o'z ichiga olgan drayverlardan tozalandi. ishlab chiqaruvchi tomonidan cheklangan. Yangi versiya CS35L41 HD-audio drayveri va STM32G0 mikrokontrollerlari uchun UCSI drayverida bloblardan foydalanishni o'chirib qo'yadi. Qualcomm va MediaTek chiplari uchun DTS fayllari tozalandi. MediaTek MT76 drayverida bloblarni o'chirish qayta ishlandi. AMDGPU, Adreno, Tegra VIC, Netronome NFP va Habanalabs Gaudi2 drayverlari va quyi tizimlarida yangilangan blob tozalash kodi. Yadrodan olib tashlangan VXGE drayverini tozalashni to'xtatdi.

Manba: opennet.ru

a Izoh qo'shish