Linux 5.11 yadro versiyasi

Ikki oylik rivojlanishdan so'ng, Linus Torvalds Linux yadrosi 5.11 versiyasini taqdim etdi. Eng e'tiborli o'zgarishlar qatorida: Intel SGX anklavlarini qo'llab-quvvatlash, tizim qo'ng'iroqlarini ushlab turishning yangi mexanizmi, virtual yordamchi avtobus, MODULE_LICENSE(siz) modullarni yig'ishni taqiqlash, seccomp-da tizim qo'ng'iroqlari uchun tezkor filtrlash rejimi, qo'llab-quvvatlashni tugatish. ia64 arxitekturasi, WiMAX texnologiyasini "staging" bo'limiga o'tkazish, UDPda SCTPni inkapsulyatsiya qilish qobiliyati.

Yangi versiya 15480 ta ishlab chiquvchilardan 1991 72 ta tuzatishni o'z ichiga oladi, yamoq hajmi 12090 MB (o'zgarishlar 868025 261456 ta faylga ta'sir qildi, 46 5.11 qator kod qo'shildi, 16 13 satr o'chirildi). 3 da kiritilgan barcha o'zgarishlarning taxminan 4% qurilma drayverlari bilan bog'liq, o'zgarishlarning taxminan XNUMX% apparat arxitekturasiga xos kodni yangilash bilan bog'liq, XNUMX% tarmoq stekiga, XNUMX% fayl tizimlariga va XNUMX% ichki yadro quyi tizimlari bilan bog'liq.

Asosiy innovatsiyalar:

  • Disk quyi tizimi, kiritish-chiqarish va fayl tizimlari
    • Btrfs-ga shikastlangan fayl tizimidan ma'lumotlarni tiklashda foydalanish uchun bir nechta o'rnatish opsiyalari qo'shildi: "rescue=ignorebadroots" o'rnatish uchun, ba'zi ildiz daraxtlari shikastlanganiga qaramay (katta, uuid, ma'lumotlarni qayta joylashtirish, qurilma, csum, bo'sh joy), " maʼlumotlar uchun nazorat summasini tekshirishni oʻchirish uchun rescue=ignoredatacsums” va bir vaqtning oʻzida “ignorebadroots”, “ignoredatacsums” va “nologreplay” rejimlarini yoqish uchun “rescue=all”. Ilgari eskirgan "inode_cache" o'rnatish opsiyasi to'xtatildi. Kod sahifa o'lchamidan (PAGE_SIZE) kichikroq bo'lgan metama'lumotlar va ma'lumotlarga ega bloklarni qo'llab-quvvatlash, shuningdek, bo'sh joy ajratish rejimini qo'llab-quvvatlash uchun tayyorlangan. Buferlanmagan (To'g'ridan-to'g'ri IO) so'rovlari iomap infratuzilmasiga ko'chirildi. Bir qator operatsiyalarning ishlashi optimallashtirildi, ba'zi hollarda tezlashuv o'nlab foizga yetishi mumkin.
    • XFS ta'mirlash zarurligini bildiruvchi "ta'mirlashga muhtoj" bayrog'ini qo'llaydi. Ushbu bayroq o'rnatilganda, bayroq xfs_repair yordam dasturi tomonidan qayta o'rnatilmaguncha fayl tizimini o'rnatib bo'lmaydi.
    • Ext4 faqat xatolarni tuzatish va optimallashtirishni, shuningdek kodni tozalashni taklif qiladi.
    • NFS orqali o'rnatilgan fayl tizimlarini qayta eksport qilishga ruxsat beriladi (ya'ni, NFS orqali o'rnatilgan bo'lim endi NFS orqali eksport qilinishi va oraliq kesh sifatida ishlatilishi mumkin).
    • Jarayonga ochiq fayl identifikatorlarining butun diapazonini birdaniga yopish imkonini beruvchi close_range() tizim chaqiruvi identifikatorlarni bajarish rejimida yopish uchun CLOSE_RANGE_CLOEXEC opsiyasini qo‘shdi.
    • F2FS fayl tizimi siqilgan shaklda saqlangan fayllar ustidan foydalanuvchi makonini boshqarish imkonini berish uchun yangi ioctl() qo'ng'iroqlarini qo'shadi. Siqish moslamasini yadro tomoniga yoki foydalanuvchi maydoniga joylashtirishni tanlash uchun "compress_mode=" o'rnatish opsiyasi qo'shildi.
    • Alohida foydalanuvchi nomlari maydonidan foydalangan holda imtiyozsiz jarayonlar orqali Overlayflarni o'rnatish imkoniyati taqdim etilgan. Xavfsizlik modelini amalga oshirishga muvofiqligini tekshirish uchun to'liq kod tekshiruvi o'tkazildi. Overlayfs shuningdek, UUID tekshiruvini ixtiyoriy ravishda o'chirib qo'yish orqali fayl tizimi tasvirlarining nusxalaridan foydalanish imkoniyatini ham qo'shadi.
    • Ceph fayl tizimi shifrlangan shaklda ma'lumotlarni uzatishda AES-GCM algoritmidan foydalanish imkonini beruvchi msgr2.1 protokolini qo'llab-quvvatladi.
    • Dm-multipath moduli kiritish-chiqarish so'rovlari uchun marshrutni tanlashda CPU yaqinligini ("IO yaqinligi") hisobga olish qobiliyatini amalga oshiradi.
  • Xotira va tizim xizmatlari
    • prctl() ga asoslangan yangi tizim qoʻngʻiroqlarini ushlab turish mexanizmi qoʻshildi, bu sizga maʼlum tizim chaqiruviga kirishda foydalanuvchi maydonidan istisnolar yaratish va uning bajarilishini taqlid qilish imkonini beradi. Ushbu funktsiya Wine va Proton-da Windows tizimi qo'ng'iroqlarini taqlid qilish uchun talab qilinadi, bu Windows API-ni chetlab o'tib, tizim qo'ng'iroqlarini bevosita amalga oshiradigan o'yinlar va dasturlar bilan mosligini ta'minlash uchun zarur (masalan, ruxsatsiz foydalanishdan himoya qilish uchun).
    • Foydalanuvchi fazosida sahifa xatoliklarini (ajratilmagan xotira sahifalariga kirish) boshqarish uchun mo'ljallangan userfaultfd() tizim chaqiruvi endi yadro darajasida yuzaga keladigan istisnolardan foydalanishni o'chirib qo'yish imkoniyatiga ega bo'lib, ayrim zaifliklardan foydalanishni qiyinlashtiradi.
    • BPF quyi tizimi ma'lum bir BPF ishlov beruvchisi bilan ma'lumotlarni bog'lashni ta'minlaydigan vazifalarni mahalliy saqlash uchun qo'shimcha qo'llab-quvvatladi.
    • BPF dasturlari tomonidan xotira iste'molini hisobga olish butunlay qayta ishlab chiqilgan - BPF ob'ektlarida xotiradan foydalanishni boshqarish uchun memlock rlimit o'rniga guruh boshqaruvchisi taklif qilingan.
    • BPF psevdokodida turni tekshirish ma'lumotlarini ta'minlovchi BTF (BPF Type Format) mexanizmi yadro modullarini qo'llab-quvvatlaydi.
    • O'chirish(), renameat2() va unlinkat() tizimi qo'ng'iroqlari uchun io_uring asinxron kiritish/chiqarish interfeysiga qo'shilgan yordam. io_uring_enter() ga qo'ng'iroq qilishda vaqt tugashini belgilash imkoniyati qo'shildi (siz IORING_FEAT_EXT_ARG bayrog'i yordamida vaqt tugashini belgilash uchun argumentni qo'llab-quvvatlashni tekshirishingiz mumkin).
    • Intel Itanium protsessorlarida ishlatiladigan ia64 arxitekturasi etim toifasiga ko'chirildi, ya'ni sinov to'xtatildi. Hewlett Packard Enterprise yangi Itanium uskunalariga buyurtmalarni qabul qilishni to'xtatdi va Intel buni o'tgan yili amalga oshirdi.
    • MicroBlaze arxitekturasiga asoslangan, xotira boshqaruv blokini (MMU) o'z ichiga olmagan tizimlarni qo'llab-quvvatlash to'xtatildi. Bunday tizimlar uzoq vaqt davomida kundalik hayotda kuzatilmagan.
    • MIPS arxitekturasi uchun gcov yordam dasturi yordamida kodni qamrab olish sinovini qo'llab-quvvatlash qo'shildi.
    • Turli drayverlarni (masalan, Ethernet va RDMA-ni qo'llab-quvvatlaydigan tarmoq kartalari) talab qiladigan funksiyalarni birlashtirgan ko'p funktsiyali qurilmalar bilan ishlash uchun virtual yordamchi shinani qo'llab-quvvatlash qo'shildi. Avtobus MFD (Ko'p funksiyali qurilmalar) quyi tizimidan foydalanish muammoli bo'lgan holatlarda qurilmaga asosiy va ikkilamchi drayverni belgilash uchun ishlatilishi mumkin.
    • RISC-V arxitekturasi uchun CMA (Contiguous Memory Allocator) xotira ajratish tizimi qo'shildi, bu xotira sahifalarini harakatlantirish texnikasidan foydalangan holda katta qo'shni xotira maydonlarini ajratish uchun optimallashtirilgan. RISC-V uchun /dev/mem-ga kirishni cheklash va uzilishlarni qayta ishlash vaqtini hisobga olish uchun vositalar ham amalga oshiriladi.
    • 32-bitli ARM tizimlari uchun xotira bilan ishlashda xatolarni aniqlashga yordam beruvchi KASan (Yadro manzilini tozalash vositasi) disk raskadrovka vositasi qo'shildi. 64-bitli ARM uchun KASan ilovasi MTE teglaridan (MemTag) foydalanishga aylantirildi.
    • Nanosekundlik aniqlikdagi vaqt tugashiga ruxsat berish uchun epoll_pwait2() tizim chaqiruvi qo'shildi (epoll_wait chaqiruvi millisekundlarni boshqaradi).
    • Qurilish tizimi endi yuklanishi mumkin bo'lgan yadro modullarini yaratishga urinayotganda xatolikni ko'rsatadi, unda kod litsenziyasi MODULE_LICENSE() makrosi yordamida aniqlanmagan. Bundan buyon statik funksiyalar uchun EXPORT_SYMBOL() makrosidan foydalanish ham tuzilish xatosiga olib keladi.
    • GEM obyektlarini kiritish/chiqarish uchun foydalaniladigan xotiradan xaritalash uchun qo‘shimcha qo‘llab-quvvatlash, bu ba’zi arxitekturalarda freymbufer bilan ishlashni tezlashtirish imkonini berdi.
    • Kconfig Qt4-ni qo'llab-quvvatlashni to'xtatdi (Qt5, GTK va Ncurses-ni qo'llab-quvvatlagan holda).
  • Virtualizatsiya va xavfsizlik
    • Seccomp() tizimi chaqiruviga tez javob berish rejimi qoʻshildi, bu jarayonga biriktirilgan doimiy harakatli bitmap asosida maʼlum bir tizim chaqiruviga ruxsat yoki taqiqlanganligini juda tez aniqlash imkonini beradi, bu esa ishga tushirishni talab qilmaydi. BPF ishlov beruvchisi.
    • Intel SGX (Software Guard eXtensions) texnologiyasi asosida anklavlarni yaratish va boshqarish uchun integratsiyalangan yadro komponentlari, bu tizimning qolgan qismiga kirish imkoniyati cheklangan, ilovalarga xotiraning ajratilgan shifrlangan sohalarida kodni bajarishga imkon beradi.
    • Foydalanuvchi maydonidan MSR (modelga xos registr) ga kirishni cheklash tashabbusi doirasida MSR_IA32_ENERGY_PERF_BIAS registriga yozib, protsessorning energiya samaradorligi rejimini o'zgartirishga imkon beradi ("normal", "ishlash", "quvvatni tejash") , taqiqlangan.
    • Protsessorlar o'rtasida yuqori ustuvor vazifalarning migratsiyasini o'chirish qobiliyati real vaqt tizimlari uchun yadro-rt filialidan ko'chirildi.
    • ARM64 tizimlari uchun MTE teglaridan (MemTag, Memory Tagging Extension) signal ishlov beruvchisi xotira manzillari uchun foydalanish imkoniyati qo'shildi. MTE-dan foydalanish sigaction() da SA_EXPOSE_TAGBITS opsiyasini belgilash orqali yoqiladi va allaqachon bo'shatilgan xotira bloklariga kirish, bufer to'lib ketishi, ishga tushirishdan oldin kirishlar va undan tashqarida foydalanish natijasida yuzaga kelgan zaifliklarning ekspluatatsiyasini bloklash uchun ko'rsatgichlardan to'g'ri foydalanishni tekshirish imkonini beradi. joriy kontekst.
    • "DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING" parametri qo'shildi, bu dm-verity quyi tizimiga ikkilamchi kalitlarga joylashtirilgan sertifikatlarning xesh imzolarini tekshirish imkonini beradi. Amalda, sozlash nafaqat yadroga o'rnatilgan sertifikatlarni, balki operatsiya vaqtida yuklangan sertifikatlarni ham tekshirishga imkon beradi, bu esa butun yadroni yangilamasdan sertifikatlarni yangilash imkonini beradi.
    • Linux foydalanuvchi rejimida toʻxtatib turish rejimini qoʻllab-quvvatlash qoʻshildi, bu sizga muhitni muzlatish va uyqu rejimidan uygʻonish uchun SIGUSR1 signalidan foydalanish imkonini beradi.
    • Xotirani virtual mashinalarga issiq ulash va o‘chirish imkonini beruvchi virtio-mem mexanizmi Big Block Mode (BBM) ni qo‘shimcha qo‘llab-quvvatladi, bu esa xotirani yadro xotirasi hajmidan kattaroq bloklarga o‘tkazish yoki olish imkonini beradi. QEMU-da VFIO-ni optimallashtirish uchun zarur bo'lgan blok.
    • TLS yadrosini amalga oshirishga CHACHA20-POLY1305 shifrini qo'llab-quvvatlash qo'shildi.
  • Tarmoq quyi tizimi
    • 802.1Q (VLAN) uchun ulanishdagi nosozliklarni boshqarish mexanizmi (CFM, Connectivity Fault Management) amalga oshirildi, bu sizga virtual ko'priklar (Virtual Bridged Networks) bilan tarmoqlardagi nosozliklarni aniqlash, tekshirish va izolyatsiya qilish imkonini beradi. Misol uchun, CFM bir nechta mustaqil tashkilotlarni qamrab olgan tarmoqlardagi muammolarni izolyatsiya qilish uchun ishlatilishi mumkin, ularning xodimlari faqat o'z jihozlariga kirishlari mumkin.
    • UDP paketlarida (RFC 6951) SCTP protokol paketlarini inkapsulyatsiya qilish uchun qo'shimcha qo'llab-quvvatlash, bu sizga SCTP-ni bevosita qo'llab-quvvatlamaydigan eski manzil tarjimonlari bo'lgan tarmoqlarda SCTP-dan foydalanishga, shuningdek IP-ga to'g'ridan-to'g'ri kirishni ta'minlamaydigan tizimlarda SCTP-ni amalga oshirishga imkon beradi. qatlam.
    • WiMAX texnologiyasini joriy qilish bosqichga o'tkazildi va agar WiMAX talab qiladigan foydalanuvchilar bo'lmasa, kelajakda olib tashlanishi rejalashtirilgan. WiMAX endi umumiy tarmoqlarda ishlatilmaydi va yadroda WiMAX-dan foydalanish mumkin bo'lgan yagona drayver eskirgan Intel 2400m drayveri hisoblanadi. 2015 yilda NetworkManager tarmoq konfiguratorida WiMAX-ni qo'llab-quvvatlash to'xtatildi. Hozirda WiMax deyarli butunlay LTE, HSPA+ va Wi-Fi 802.11n kabi texnologiyalar bilan almashtirildi.
    • Nolinchi rejimda kiruvchi TCP trafigini qayta ishlash samaradorligini optimallashtirish bo'yicha ishlar amalga oshirildi, ya'ni. yangi buferlarga qo'shimcha nusxa ko'chirmasdan. O'nlab yoki bir necha yuz kilobayt ma'lumotlarni qamrab oladigan o'rta o'lchamdagi trafik uchun recvmsg() o'rniga nol nusxadan foydalanish sezilarli darajada samaraliroq. Masalan, amalga oshirilgan o'zgarishlar nol nusxadan foydalanganda 32 KB xabarlar bilan RPC uslubidagi trafikni qayta ishlash samaradorligini 60-70% ga oshirish imkonini berdi.
    • Bir nechta PPP havolalarini qamrab olgan tarmoq ko'priklarini yaratish uchun yangi ioctl() qo'ng'iroqlari qo'shildi. Taklif etilgan imkoniyat kadrlarni bir kanaldan ikkinchisiga, masalan, PPPoE dan PPPoL2TP seansiga o'tkazish imkonini beradi.
    • 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 versiya mavjud MPTCP ulanishiga yangi oqimlarni qo'shganda ulanishi mumkin bo'lgan mavjud IP manzillarni reklama qilish uchun ADD_ADDR opsiyasini qo'llab-quvvatlaydi.
    • Ulanish so'rovi byudjeti oshib ketganda harakatlarni sozlash imkoniyati qo'shildi (band-so'rov). Ilgari mavjud boʻlgan SO_BUSY_POLL rejimi byudjet tugashi bilan softirqga oʻtishni anglatardi. So‘rovdan foydalanishda davom etishi kerak bo‘lgan ilovalar uchun SO_PREFER_BUSY_POLL yangi varianti taklif etiladi.
    • IPv6 ko'p foydalanuvchili IPv6 L4 VPN va VRF (Virtual marshrutlash va yo'naltirish) qurilmalarini yaratish uchun foydalaniladigan SRv6 End.DT4 va End.DT3 rejimlarini qo'llab-quvvatlaydi.
    • Netfilter to'plamlar ro'yxatining har bir elementi uchun bir nechta iboralarni belgilash imkonini bergan to'plam ifodalarini amalga oshirishni birlashtirdi.
    • API-lar SAR quvvat chegaralarini, shuningdek, AE PWE va HE MCS parametrlarini sozlash uchun 802.11 simsiz stekiga qo'shildi. Intel iwlwifi drayveri 6GHz (Ultra High Band) diapazonini qo'llab-quvvatladi. Qualcomm Ath11k drayveri FILS (IEEE 802.11ai sifatida standartlashtirilgan Fast Initial Link Setup) texnologiyasini qo‘llab-quvvatladi, bu sizga bir kirish nuqtasidan boshqasiga o‘tish vaqtida roumingdagi kechikishlardan xalos bo‘lish imkonini beradi.
  • uskunalar
    • Amdgpu drayveri AMD "Green Sardine" APU (Ryzen 5000) va "Dimgrey Cavefish" GPU (Navi 2) ni qo'llab-quvvatlaydi, shuningdek, Zen 2 yadroli va RDNA 2 GPU (Navi 2) bilan AMD Van Gogh APU uchun dastlabki yordam beradi. Yangi Renoir APU identifikatorlari uchun qo'shimcha qo'llab-quvvatlash (Zen 2 CPU va Vega GPU asosida).
    • Intel video kartalari uchun i915 drayveri etishmayotgan piksellar rangini aniqlash uchun qo'shni piksellar holatini (yaqin qo'shni interpolatsiyasi) hisobga olgan holda masshtabni oshirish uchun filtrni amalga oshirish bilan IS (Integer scaling) texnologiyasini qo'llab-quvvatlaydi. Diskret Intel DG1 kartalarini qo'llab-quvvatlash kengaytirildi. Ice Lake / Gen11 chiplaridan beri mavjud bo'lgan "Big Joiner" texnologiyasini qo'llab-quvvatlash amalga oshirildi va ikkita oqimni qayta ishlash uchun bitta transkoderdan foydalanishga imkon beradi, masalan, bitta DisplayPort orqali 8K ekranga chiqish. Video xotirasidagi ikkita bufer o'rtasida asinxron almashish rejimi qo'shildi (async flip).
    • Nouveau drayveri Ampere mikroarxitekturasi (GA100, GeForce RTX 30xx) asosida NVIDIA GPU-lar uchun dastlabki yordamni qo'shdi, hozirgacha video rejimlarini boshqarish vositalari bilan cheklangan.
    • LCD panellarda ishlatiladigan 3WIRE protokoli uchun qo'shimcha yordam. Novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 va ABT Y030XX067A 3.0 panellari uchun qoʻshimcha yordam. Alohida-alohida, OnePlus 6 va 6T smartfonlari panelini qo'llab-quvvatlashni qayd etishimiz mumkin, bu esa qurilmalarga o'zgartirilmagan yadroni yuklashni tashkil qilish imkonini berdi.
    • Intelning birinchi diskret USB4 xost-kontrolleri Maple Ridge uchun qo'shimcha qo'llab-quvvatlash.
    • Allwinner H6 I2S, ADAU1372 analog qurilmalari, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI va XCVR, Realtek RT715 va Qualcomm SM8250 audio kodeklari uchun qoʻshimcha qoʻllab-quvvatlash.
    • ARM platalari, qurilmalari va platformalari uchun qo‘shimcha qo‘llab-quvvatlash: Galaxy Note 10.1, Microsoft Lumia 950 XL, NanoPi R1, FriendlyArm ZeroPi, Elimo Initium SBC, Broadcom BCM4908, Mediatek MT8192/MT6779/MT8167, MStar Arm2 Infinity, Mar730ada, N382P98 ​Mikrotik Marvell Prestera 3236DX750 asosida, Nuvoton NPCM8 BMC, Kontron i.MX64M Mini, Espressobin Ultra, “Trogdor” Chromebook, Kobol Helios30, Engicam PXXNUMX.Core serverlari.
    • NVIDIA Tegra 3 asosidagi Ouya o'yin konsoli uchun o'rnatilgan yordam.

Shu bilan birga, Lotin Amerikasi Erkin dasturiy ta'minot jamg'armasi butunlay bepul 5.11 yadrosi - Linux-libre 5.11-gnu versiyasini yaratdi, u dasturiy ta'minot elementlari va bepul bo'lmagan komponentlar yoki kod bo'limlarini o'z ichiga olgan drayverlardan tozalandi, ularning doirasi cheklangan. ishlab chiqaruvchi tomonidan. Yangi versiya qat_4xxx (kripto), lt9611uxcm (dsi/hdmi ko‘prigi), ccs/smia++ (sensor), ath11k_pci, nxp audio qabul qiluvchi va mhi pci kontrolleri uchun drayverlarni tozalaydi. Amdgpu, btqca, btrtl, btusb, i915 csr drayverlari va quyi tizimlarida yangilangan blob tozalash kodi. m3 rproc, idt82p33 ptp soati va qualcomm arm64 da yangi bloblar o'chirildi.

Manba: opennet.ru

a Izoh qo'shish