Linux 6.7 yadro versiyasi

Ikki oylik rivojlanishdan so'ng Linus Torvalds Linux yadrosi 6.7 versiyasini taqdim etdi. Eng diqqatga sazovor o'zgarishlar orasida: Bcachefs fayl tizimining integratsiyasi, Itanium arxitekturasini qo'llab-quvvatlashning to'xtatilishi, Nouvea-ning GSP-R mikrodasturlari bilan ishlash qobiliyati, NVMe-TCP-da TLS shifrlashni qo'llab-quvvatlash, BPF-da istisnolardan foydalanish qobiliyati, io_uring-da futex-ni qo'llab-quvvatlash, fq (Fair Queuing) rejalashtiruvchisi ishlashini optimallashtirish), TCP-AO kengaytmasini qo'llab-quvvatlash (TCP Authentication Option) va quruqlikdagi xavfsizlik mexanizmida tarmoq ulanishlarini cheklash qobiliyati, foydalanuvchi nomlari maydoni va io_uring-ga qo'shilgan kirish nazorati AppArmor orqali.

Yangi versiya 18405 ta ishlab chiquvchilardan 2066 72 tuzatishni o'z ichiga oladi, yamoq hajmi 13467 MB (o'zgarishlar 906147 341048 ta faylga ta'sir qildi, 15291 2058 kod qatori qo'shildi, 39 45 satr o'chirildi). Oxirgi versiyada 6.7 ta ishlab chiquvchi tomonidan 14 ta tuzatish bor edi, yamoq hajmi 13 MB edi. 5-da kiritilgan barcha o'zgarishlarning taxminan 3% 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.

6.7 yadrosidagi asosiy yangiliklar:

  • Disk quyi tizimi, kiritish-chiqarish va fayl tizimlari
    • Yadro Btrfs va ZFS da topilgan ilg'or funksionallik elementlari bilan birgalikda XFS unumdorligi, ishonchliligi va miqyoslanishiga erishishga harakat qiluvchi Bcachefs fayl tizimi kodini qabul qiladi. Misol uchun, Bcachefs bo'limga bir nechta qurilmalarni kiritish, ko'p qatlamli disk sxemalari (pastki qatlam tez SSD-larga asoslangan tez-tez ishlatiladigan ma'lumotlarga ega va yuqori qatlam qattiq disklardan kamroq foydalaniladigan ma'lumotlarga ega), replikatsiya (RAID) kabi xususiyatlarni qo'llab-quvvatlaydi. 1/10), keshlash, shaffof ma'lumotlarni siqish (LZ4, gzip va ZSTD rejimlari), holat bo'limlari (oniy tasvirlar), nazorat summalari yordamida yaxlitlikni tekshirish, Reed-Solomon xato tuzatish kodlarini saqlash qobiliyati (RAID 5/6), ma'lumotlarni saqlash shifrlangan shakl (ChaCha20 va Poly1305 ishlatiladi). Ishlash darajasi bo'yicha Bcachefs Btrfs va boshqa fayl tizimlaridan, Copy-on-Write mexanizmiga asoslangan va Ext4 va XFS ga yaqin ish tezligini namoyish etadi.
    • Btrfs fayl tizimi soddalashtirilgan kvota rejimini taqdim etadi, bu sizga faqat ular yaratilgan kichik bo'limdagi kengaytmalarni kuzatish orqali yuqori samaradorlikka erishish imkonini beradi, bu hisob-kitoblarni sezilarli darajada osonlashtiradi va ish faoliyatini yaxshilaydi, lekin bir nechta bo'limlarda bo'lingan hajmlarni hisobga olishga imkon bermaydi. pastki qismlar.
    • Btrfs yangi "chiziqli daraxt" ma'lumotlar tuzilmasini qo'shdi, u jismoniy xaritalash qurilmalarda mos kelmaydigan vaziyatlarda mantiqiy darajada xaritalash uchun mos keladi. Ushbu tuzilma hozirda zonali blokli qurilmalar uchun RAID0 va RAID1 ilovalarida qo'llaniladi. Kelajakda ular ushbu tuzilmani yuqori darajadagi RAIDlarda qo'llashni rejalashtirmoqdalar, bu esa joriy amalga oshirishda mavjud bo'lgan bir qator muammolarni hal qiladi.
    • Ceph fayl tizimi o'rnatilgan fayl tizimlarining foydalanuvchi identifikatorlarini xaritalash uchun yordamni amalga oshiradi, o'rnatilgan xorijiy bo'limdagi ma'lum bir foydalanuvchining fayllarini joriy tizimdagi boshqa foydalanuvchi bilan moslashtirish uchun ishlatiladi.
    • UEFI o'zgaruvchilarini o'zgartirish uchun ildiz bo'lmagan jarayonlarga ruxsat berish uchun efivarflarga o'rnatishda uid va gidni belgilash imkoniyati qo'shildi.
    • FS atributlarini o'qish va o'zgartirish uchun exFAT ga ioctl qo'ng'iroqlari qo'shildi. Nol o'lchamli kataloglar bilan ishlash qo'shildi.
    • F2FS 16K bloklardan foydalanish qobiliyatini amalga oshiradi.
    • Autofs automount mexanizmi yangi bo'limni o'rnatish API'sidan foydalanishga o'tkazildi.
    • OverlayFS "lowerdir+" va "datadir+" o'rnatish imkoniyatlarini taklif qiladi. Xattrlar yordamida OverlayFS-ni ichki o'rnatish uchun qo'shimcha yordam.
    • XFS real vaqtda bloklarni ajratish kodida protsessor yukini optimallashtirdi. Bir vaqtning o'zida o'qish va FICLONE operatsiyalarini bajarish imkoniyati taqdim etiladi.
    • EXT2 kodi sahifa foliolaridan foydalanishga aylantirildi.
  • Xotira va tizim xizmatlari
    • 64-yilda butunlay to‘xtatilgan Intel Itanium protsessorlarida qo‘llaniladigan ia2021 arxitekturasini qo‘llab-quvvatlash to‘xtatildi. Itanium protsessorlari 2001 yilda Intel tomonidan taqdim etilgan, biroq ia64 arxitekturasi AMD64 bilan raqobatlasha olmadi, bu asosan AMD64 ning yuqori ishlashi va 32 bitli x86 protsessorlaridan yumshoqroq o'tish tufayli. Natijada, Intelning manfaatlari x86-64 protsessorlari foydasiga o'zgardi va Itaniumning loti uch yil oldin buyurtmalar to'xtatilgan HP Integrity serverlari bo'lib qoldi. ia64 qo'llab-quvvatlash kodi asosan ushbu platformani uzoq vaqt davomida qo'llab-quvvatlamaganligi sababli yadrodan olib tashlandi, Linus Torvalds esa ia64 yordamini yadroga qaytarishga tayyorligini bildirdi, ammo faqat yuqori sifatni namoyish eta oladigan texnik xizmat ko'rsatuvchi bo'lsa. kamida bir yil davomida asosiy yadrodan tashqarida ushbu platformani qo'llab-quvvatlash.
    • Yuklash bosqichida x32-32 arxitekturasi uchun qurilgan yadrolarda 86-bitli rejim emulyatsiyasini qoʻllab-quvvatlashni yoqish yoki oʻchirish imkonini beruvchi “ia64_emulation” yadro qatori buyruq parametri qoʻshildi. Amaliy tomondan, yangi variant 32-bitli ilovalar bilan moslikni qo'llab-quvvatlaydigan yadro yaratishga imkon beradi, ammo yadrodagi hujum vektorini kamaytirish uchun ushbu rejimni sukut bo'yicha o'chirib qo'ying, chunki muvofiqlik API asosiy yadroga qaraganda kamroq sinovdan o'tgan. interfeyslar.
    • Rust-for-Linux bo'limidan drayverlar va yadro modullarini ishlab chiqish uchun ikkinchi til sifatida Rust tilidan foydalanish bilan bog'liq o'zgarishlarning davom etishi (Rust-ni qo'llab-quvvatlash sukut bo'yicha faol emas va Rust-ning qo'shilishiga olib kelmaydi. yadro uchun zarur bo'lgan montaj bog'liqliklari). Yangi versiya Rust 1.73 versiyasidan foydalanishga o'tadi va ish navbatlari bilan ishlash uchun bir qator bog'lashlarni taklif qiladi.
    • Alohida imtiyozsiz nom maydonlarida yangi bajariladigan fayl formatlarini (masalan, kompilyatsiya qilingan Java yoki Python ilovalarini ishga tushirish uchun) qo'llab-quvvatlash uchun binfmt_misc mexanizmidan foydalanish mumkin.
    • Vazifani bajarishda protsessor yadrolaridan foydalanishni boshqarish imkonini beruvchi cgroup kontroller cpuseti mahalliy va masofaviy bo'limlarga bo'linishni ta'minlaydi, ular ota-ona guruhi to'g'ri ildiz bo'limi yoki yo'qligi bilan farqlanadi. “cpuset.cpus.exclusive” va “cpuset.cpus.excluisve.effective” yangi sozlamalari ham protsessorni eksklyuziv ulash uchun cpuset-ga qo'shildi.
    • BPF quyi tizimi istisnolarni qo'llab-quvvatlashni amalga oshiradi, ular BPF dasturidan favqulodda chiqish sifatida qayta ishlanadi, stack ramkalarini xavfsiz ochish qobiliyatiga ega. Bundan tashqari, BPF dasturlari CPU bilan bog'liq holda kptr ko'rsatkichlaridan foydalanishga imkon beradi.
    • Futex bilan operatsiyalarni qo'llab-quvvatlash io_uring quyi tizimiga qo'shildi va yangi operatsiyalar amalga oshirildi: IORING_OP_WAITID (watchidning asinxron versiyasi), SOCKET_URING_OP_GETSOCKOPT (getsockoptand opsiyasi), SOCKET_URING_OP_SETSOCKOPT (setsockopti opsiyasi) va IORING_OP_WAITID (o'qilmaydi) to'xtang ma'lumotlar mavjud yoki to'liq bufer emas).
    • Faqat jarayon kontekstida navbatni bekor qilish uchun spinlockni talab qiluvchi va istalgan kontekstda navbatga atomik qo'shimchalar uchun spinlokdan voz kechadigan engil yagona ulangan FIFO navbatlarini amalga oshirish qo'shildi.
    • Ob'ektlarni ajratish va qaytarish uchun yuqori samarali navbatning kengaytiriladigan amalga oshirilishi bilan "objpool" halqali bufer qo'shildi.
    • O'zgarishlarning dastlabki qismi NUMA tizimlarida yaxshiroq ishlashga ega, 2 bitdan tashqari o'lchamlarni qo'llab-quvvatlaydigan va multiplekslangan futex() tizim chaqiruvi o'rniga ishlatilishi mumkin bo'lgan yangi futex32 API-ni amalga oshirish uchun qo'shildi.
    • ARM32 va S390x arxitekturalari uchun BPF ko'rsatmalarining joriy to'plamini (cpuv4) qo'llab-quvvatlash qo'shildi.
    • RISC-V arxitekturasi uchun Clang 17 da mavjud Shadow-Call Stack tekshirish rejimidan foydalanish mumkin, bu stekda bufer to'lib ketgan taqdirda funksiyadan qaytish manzilini qayta yozishdan himoya qilish uchun mo'ljallangan. Himoyaning mohiyati boshqaruvni funktsiyaga o'tkazgandan so'ng va funktsiyadan chiqishdan oldin ushbu manzilni olgandan so'ng, qaytarish manzilini alohida "soya" stekida saqlashdir.
    • Bir xil xotira sahifalarini birlashtirish mexanizmiga yangi aqlli xotira sahifalarini skanerlash rejimi qo'shildi (KSM: Kernel Samepage Merging), bu muvaffaqiyatsiz skanerlangan sahifalarni kuzatib boradi va ularni qayta skanerlash intensivligini pasaytiradi. Yangi rejimni yoqish uchun /sys/kernel/mm/ksm/smart_scan sozlamasi qo'shildi.
    • PAGEMAP_SCAN yangi ioctl buyrug'i qo'shildi, u userfaultfd() bilan foydalanilganda ma'lum bir xotira oralig'iga yozish faktlarini aniqlash imkonini beradi. Yangi xususiyat, masalan, tizimda CRIU jarayonlari holatini saqlash va tiklash uchun yoki o'yinda firibgarlikka qarshi tizimlarda ishlatilishi mumkin.
    • Yig'ish tizimida, agar Clang kompilyatori mavjud bo'lsa, BPF dasturlari sifatida yozilgan perf quyi tizimidan foydalanish misollarini yig'ish sukut bo'yicha yoqilgan.
    • Media quyi tizimidagi freymbuferlarni boshqarish uchun foydalanilgan va 10 yildan ko'proq vaqt oldin videobuf2 ning yangi ilovasi bilan almashtirilgan eski videobuf qatlami olib tashlandi.
  • Virtualizatsiya va xavfsizlik
    • Fayl tizimidagi blok hajmidan kichikroq bloklardagi ma'lumotlarni shifrlash imkoniyati fscrypt quyi tizimiga qo'shildi. Bu faqat kichik bloklarni qo'llab-quvvatlaydigan apparat shifrlash mexanizmlarini yoqish uchun talab qilinishi mumkin (masalan, faqat 4096 blok o'lchamini qo'llab-quvvatlaydigan UFS kontrollerlari 16K blok o'lchamli fayl tizimi bilan ishlatilishi mumkin).
    • IOMMU (I/O Memory-Management Unit) xotira sahifasi jadvallarini foydalanuvchi maydonidan fayl identifikatorlari orqali boshqarish imkonini beruvchi “iommufd” quyi tizimi DMA uchun keshdan (iflos) hali tozalanmagan maʼlumotlarni kuzatishni qoʻshdi. jarayonlarni ko'chirish paytida tozalanmagan ma'lumotlar bilan xotirani aniqlash uchun zarur bo'lgan operatsiyalar.
    • Landlock mexanizmiga TCP rozetkalari uchun kirishni boshqarish qoidalarini aniqlash qo'llab-quvvatlandi, bu bir qator jarayonlarning tashqi muhit bilan o'zaro ta'sirini cheklash imkonini beradi. Misol uchun, HTTPS ulanishlarini o'rnatish uchun faqat 443-tarmoq portiga kirishga ruxsat beruvchi qoida yaratishingiz mumkin.
    • AppArmor quyi tizimi io_uring mexanizmiga kirishni boshqarish va foydalanuvchi nomlari bo'shliqlarini yaratish qobiliyatini qo'shdi, bu sizga ushbu imkoniyatlardan faqat ma'lum jarayonlarga kirishga ruxsat berish imkonini beradi.
    • Virtual mashinani yuklash jarayonining yaxlitligini tekshirish uchun virtual mashina attestatsiyasi API qoʻshildi.
    • LoongArch tizimlari KVM gipervisor yordamida virtualizatsiyani qo'llab-quvvatlaydi.
    • RISC-V tizimlarida KVM gipervisoridan foydalanganda Smstateen kengaytmasini qo'llab-quvvatlash paydo bo'ldi, bu virtual mashinani gipervisor tomonidan aniq qo'llab-quvvatlanmaydigan CPU registrlariga kirishni bloklaydi. Mehmon tizimlarida ba'zi shartli butun operatsiyalardan foydalanishga imkon beruvchi Zicond kengaytmasidan foydalanish uchun qo'shimcha qo'llab-quvvatlandi.
    • KVM ostida ishlaydigan x86-ga asoslangan mehmon tizimlarida 4096 tagacha virtual protsessorga ruxsat beriladi.
  • Tarmoq quyi tizimi
    • NVMe-TCP (TCP orqali NVMe) drayveri, TCP protokolidan foydalangan holda tarmoq orqali NVMe drayverlariga (NVM Express orqali matolar) kirish imkonini beradi, TLS (KTLS va fon jarayonidan foydalangan holda) yordamida ma'lumotlar uzatish kanalini shifrlash uchun qo'shimcha qo'llab-quvvatladi. ulanish muzokaralari uchun tlshd foydalanuvchi maydonida).
    • Fq (Fair Queuing) paketlarni rejalashtiruvchisining ishlashi optimallashtirildi, bu tcp_rr (TCP Request/Response) testida og'ir yuklarda o'tkazish qobiliyatini 5% ga va UDP paketlarining cheksiz oqimi bilan 13% ga oshirish imkonini berdi.
    • TCP ixtiyoriy mikrosoniyali aniqlik vaqt tamg'asi (TCP TS) qobiliyatini (RFC 7323) qo'shadi, bu esa kechikishni aniqroq baholash va tirbandlikni boshqarish modullarini yanada ilg'orlash imkonini beradi. Uni yoqish uchun siz "ip route add 10/8 ... features tcp_usec_ts" buyrug'idan foydalanishingiz mumkin.
    • TCP to'plami TCP-AO kengaytmasini (TCP autentifikatsiya opsiyasi, RFC 5925) qo'llab-quvvatladi, bu esa zamonaviyroq HMAC-SHA1 va CMAC-AES- algoritmlaridan foydalangan holda MAC kodlari (Xabar autentifikatsiya kodi) yordamida TCP sarlavhalarini tekshirish imkonini beradi. 128 o'rniga eski MD5 algoritmiga asoslangan TCP-MD5 opsiyasi mavjud edi.
    • Virtual tarmoq qurilmalarining yangi turi "netkit" qo'shildi, ma'lumotlar uzatish mantig'i BPF dasturi yordamida o'rnatiladi.
    • KSMBD, SMB serverining yadro darajasidagi tatbiqi, surrogat juft birikmali belgilarni o'z ichiga olgan fayl nomlarini hal qilish uchun qo'shimcha yordamni taqdim etdi.
    • NFS RPC xizmatlari bilan iplarni amalga oshirishni yaxshiladi. Yozish delegatsiyasi uchun qo'shimcha yordam (NFSv4.1+ uchun). NFSD rpc_status tarmoq ishlovchisi uchun qo'shimcha qo'llab-quvvatladi. Knfsd-ga qayta eksport qilishda NFSv4.x mijozlari uchun yaxshilangan yordam.
  • uskunalar
    • Nouveau yadro moduliga GSP-RM proshivkasini dastlabki qoʻllab-quvvatlash qoʻshildi, u NVIDIA RTX 20+ GPU-da ishga tushirish va GPU boshqaruv operatsiyalarini alohida GSP mikrokontrolleri (GPU tizim protsessori) tomoniga oʻtkazish uchun ishlatiladi. GSP-RM qo'llab-quvvatlashi Nouveau drayveriga apparat o'zaro ta'sirini to'g'ridan-to'g'ri dasturlashdan ko'ra, mikrodastur qo'ng'iroqlari orqali ishlashga imkon beradi, bu esa ishga tushirish va quvvatni boshqarish uchun oldindan o'rnatilgan qo'ng'iroqlar yordamida yangi NVIDIA GPU-larga yordam qo'shishni ancha osonlashtiradi.
    • AMDGPU drayveri GC 11.5, NBIO 7.11, SMU 14, SMU 13.0 OD, DCN 3.5, VPE 6.1 va DML2 ni qo'llab-quvvatlaydi. Uzluksiz yuklash uchun yaxshilangan qo'llab-quvvatlash (video rejimini almashtirishda miltillash yo'q).
    • I915 drayveri Intel Meteor Lake chiplarini qo'llab-quvvatlaydi va Intel LunarLake (Xe 2) ning dastlabki tatbiqini qo'shadi.
    • USB4 v2 (120/40G) spetsifikatsiyasiga qo'shilgan assimetrik uzatish kanallari uchun qo'shimcha qo'llab-quvvatlash.
    • ARM SoC uchun qo‘shimcha qo‘llab-quvvatlash: Qualcomm Snapdragon 720G (Xiaomi smartfonlarida qo‘llaniladi), AMD Pensando Elba, Renesas, R8A779F4 (R-Car S4-8), USRobotics USR8200 (marshrutizatorlar va NASda qo‘llaniladi).
    • Fairphone 5 smartfoni va Orange Pi 5, QuartzPro64, Turing RK1, Variscite MX6, BigTreeTech CB1, Freescale LX2162, Google Spherion, Google Hayato, Genio 1200 EVK, RK3566 Powkiddy RGB30 ARM platalari uchun qo‘shimcha qo‘llab-quvvatlash.
    • RISC-V platalari Milk-V Pioneer va Milk-V Duo uchun qo'shimcha yordam.
    • AMD protsessorlari bilan ta'minlangan HUAWEI noutbuklarining ovozli interfeyslarini qo'llab-quvvatlash qo'shildi. Dell Oasis 13/14/16 noutbuklarida o'rnatilgan qo'shimcha dinamiklar uchun qo'shimcha yordam. ASUS K6500ZC o'rnatilgan dinamiklar uchun qo'shimcha yordam. HP 255 G8 va G10 noutbuklarida ovozni o'chirish ko'rsatkichi qo'shildi. acp6.3 audio drayverlarini qo'llab-quvvatlash qo'shildi. Focusrite Clarett+ 2Pre va 4Pre professional yozish interfeyslari uchun qo‘shimcha yordam.

Shu bilan birga, Lotin Amerikasi Erkin dasturiy ta'minot jamg'armasi butunlay bepul yadro 6.7 versiyasini yaratdi - Linux-libre 6.7-gnu, dasturiy ta'minot elementlari va bepul bo'lmagan komponentlar yoki kod bo'limlarini o'z ichiga olgan drayverlardan tozalangan, ularning doirasi cheklangan. ishlab chiqaruvchi tomonidan. 6.7-versiyasida blobni tozalash kodi turli drayverlar va quyi tizimlarda yangilandi, masalan, amdgpu, nouveau, adreno, mwifiex, mt7988, ath11k, avs va btqca drayverlarida. Localtalk va rtl8192u drayverlarini tozalash uchun kod yadrodan chiqarib tashlanganligi sababli olib tashlandi. Ilgari xato bilan qo'shilgan xhci-pci, rtl8xxxu va rtw8822b drayverlarini tozalash uchun keraksiz komponentlar olib tashlandi. Aarch64 arxitekturasi uchun dts fayllaridagi blob nomlari tozalandi. Yangi mt7925, tps6598x, aw87390 va aw88399 drayverlarida bloblar olib tashlandi.

Manba: opennet.ru

a Izoh qo'shish