Linux 5.17 yadro versiyasi

Ikki oylik rivojlanishdan so'ng, Linus Torvalds Linux yadrosi 5.17 versiyasini taqdim etdi. Eng e'tiborga molik o'zgarishlar qatorida: AMD protsessorlari uchun yangi ish faoliyatini boshqarish tizimi, fayl tizimlarida foydalanuvchi identifikatorlarini rekursiv xaritalash qobiliyati, portativ kompilyatsiya qilingan BPF dasturlarini qo'llab-quvvatlash, psevdo-tasodifiy raqamlar generatorini BLAKE2s algoritmiga o'tkazish, RTLA yordam dasturi. real vaqt rejimida bajarilishini tahlil qilish uchun, tarmoq fayl tizimlarini keshlash uchun yangi fscache backend, anonim mmap operatsiyalariga nomlar biriktirish imkoniyati.

Yangi versiya 14203 ta ishlab chiquvchilardan 1995 ta tuzatishni oʻz ichiga oladi, yamoq hajmi 37 MB (oʻzgarishlar 11366 ta faylga taʼsir qildi, 506043 250954 ta kod qatori qoʻshildi, 44 5.17 ta satr oʻchirildi). 16 da kiritilgan barcha o'zgarishlarning taxminan 15% qurilma drayverlari bilan bog'liq, o'zgarishlarning taxminan 4% apparat arxitekturasiga xos kodni yangilash bilan bog'liq, 4% tarmoq stekiga, XNUMX% fayl tizimlariga va XNUMX% ichki yadro quyi tizimlari bilan bog'liq.

5.17 yadrosidagi asosiy yangiliklar:

  • Disk quyi tizimi, kiritish-chiqarish va fayl tizimlari
    • O'rnatilgan fayl tizimlarining foydalanuvchi identifikatorlarini ichki xaritalash imkoniyati amalga oshirildi, o'rnatilgan xorijiy bo'limdagi ma'lum bir foydalanuvchining fayllarini joriy tizimdagi boshqa foydalanuvchi bilan solishtirish uchun foydalanildi. Qo'shilgan xususiyat sizga xaritalash allaqachon qo'llaniladigan fayl tizimlarining yuqori qismida rekursiv ravishda xaritadan foydalanish imkonini beradi.
    • Tarmoq fayl tizimlari orqali uzatiladigan ma'lumotlarni mahalliy fayl tizimida keshlashni tashkil qilish uchun foydalaniladigan fscache quyi tizimi butunlay qayta yozildi. Yangi tatbiq kodning sezilarli soddalashtirilganligi va ob'ekt holatini rejalashtirish va kuzatishning murakkab operatsiyalarini oddiyroq mexanizmlar bilan almashtirish bilan ajralib turadi. Yangi fscache-ni qo'llab-quvvatlash CIFS fayl tizimida amalga oshiriladi.
    • Fanotify FS-dagi hodisalarni kuzatish quyi tizimi FAN_RENAME yangi hodisa turini amalga oshiradi, bu sizga fayllar yoki kataloglar nomini o'zgartirish jarayonini darhol to'xtatish imkonini beradi (ilgari nomlarni o'zgartirish uchun ikkita alohida hodisa FAN_MOVED_FROM va FAN_MOVED_TO ishlatilgan).
    • Btrfs fayl tizimi katta kataloglar uchun logging va fsync operatsiyalarini optimallashtirdi, ular faqat indeks kalitlarini nusxalash va jurnalga kiritilgan metama'lumotlar miqdorini kamaytirish orqali amalga oshirildi. Bo'sh joy yozuvlari hajmi bo'yicha indekslash va qidirishni qo'llab-quvvatlash ta'minlandi, bu kechikishni taxminan 30% ga qisqartirdi va qidiruv vaqtini qisqartirdi. Defragmentatsiya operatsiyalarini to'xtatishga ruxsat berilgan. Drayvlar o'rtasida muvozanatlashda qurilmalarni qo'shish imkoniyati o'chirilgan, ya'ni. skip_balance opsiyasi bilan fayl tizimini o'rnatishda.
    • IP-manzillarga ulanish bilan bog'liq mavjud muammolarni hal qiladigan Ceph fayl tizimini o'rnatish uchun yangi sintaksis taklif qilindi. IP manzillarga qo'shimcha ravishda siz serverni aniqlash uchun klaster identifikatoridan (FSID) foydalanishingiz mumkin: mount -t ceph [elektron pochta bilan himoyalangan]_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Ext4 fayl tizimi o'rnatish parametrlarini tahlil qilish va superblokni sozlash bosqichlarini ajratib turadigan yangi o'rnatish API-ga o'tdi. Util-linux-ning MS_LAZYTIME bayrog'idan foydalanishga o'tishini engillashtirish uchun vaqtinchalik o'zgartirish sifatida qo'shilgan lazytime va nolazytime o'rnatish opsiyalarini qo'llab-quvvatlashni to'xtatdik. FS (ioctl FS_IOC_GETFSLABEL va FS_IOC_SETFSLABEL) da yorliqlarni o'rnatish va o'qish uchun qo'shimcha yordam qo'shildi.
    • NFSv4 fayl va katalog nomlarida katta-kichik harflarga sezgir bo'lmagan fayl tizimlarida ishlashni qo'llab-quvvatladi. NFSv4.1+ yig'ilgan seanslarni (tranking) aniqlash uchun qo'llab-quvvatlaydi.
  • Xotira va tizim xizmatlari
    • Optimal ishlash uchun dinamik chastota nazoratini ta'minlash uchun amd-pstate drayveri qo'shildi. Drayv Valve bilan birgalikda ishlab chiqilgan va energiyani boshqarish samaradorligini oshirishga qaratilgan Zen 2 avlodidan boshlab AMD protsessorlari va APU-larni qo'llab-quvvatlaydi. Moslashuvchan chastotalarni o'zgartirish uchun CPPC (Hamkorlikdagi protsessor ishlashini boshqarish) mexanizmi qo'llaniladi, bu sizga ko'rsatkichlarni aniqroq o'zgartirishga imkon beradi (uchta ishlash darajasi bilan cheklanmaydi) va ACPI-ga asoslangan P-holatiga qaraganda holat o'zgarishlariga tezroq javob beradi. drayverlar (CPUFreq).
    • eBPF quyi tizimi bpf_loop() ishlov beruvchisini taklif qiladi, bu eBPF dasturlarida tsikllarni tartibga solishning muqobil usulini, tekshirgich tomonidan tekshirish uchun tezroq va osonroq.
    • Yadro darajasida CO-RE (Bir marta kompilyatsiya qilish - hamma joyda ishga tushirish) mexanizmi amalga oshiriladi, bu sizga eBPF dasturlari kodini faqat bir marta kompilyatsiya qilish va yuklangan dasturni joriy yadro va BTF turlariga moslashtiradigan maxsus universal yuklagichdan foydalanish imkonini beradi. (BPF turi formati).
    • Shaxsiy anonim (malloc orqali ajratilgan) xotira sohalariga nomlar berish mumkin, bu esa nosozliklarni tuzatish va ilovalarda xotira sarfini optimallashtirishni soddalashtirishi mumkin. Ismlar PR_SET_VMA_ANON_NAME bayrog'i bilan prctl orqali tayinlanadi va /proc/pid/maps va /proc/pid/smaps formatida "[anon: ]".
    • Vazifa rejalashtiruvchisi, masalan, protsessor haddan tashqari qizib ketganda yukni kamaytirish uchun ishlatiladigan majburiy bo'sh holatda jarayonlar tomonidan sarflangan vaqtni /proc/PID/sched-da kuzatish va ko'rsatishni ta'minlaydi.
    • Sinov uchun GPIO chiplarini simulyatsiya qilish uchun mo'ljallangan gpio-sim moduli qo'shildi.
    • Kechikish haqida ma'lumotga ega gistogrammalarni yaratish uchun "perf ftrace" buyrug'iga "kechikish" kichik buyrug'i qo'shildi.
    • Haqiqiy vaqtda ishni tahlil qilish uchun "RTLA" yordam dasturlari to'plami qo'shildi. U osnoise (operatsion tizimning vazifani bajarishga ta'sirini aniqlaydi) va timerlat (taymer bilan bog'liq kechikishlarni o'zgartiradi) kabi yordamchi dasturlarni o'z ichiga oladi.
    • Yamoqlarning ikkinchi seriyasi qo'shma sahifalarga o'xshash, ammo yaxshilangan semantika va ishning aniq tashkil etilishiga ega bo'lgan sahifa foliolari kontseptsiyasini amalga oshirish bilan birlashtirildi. Tomlardan foydalanish ba'zi yadro quyi tizimlarida xotira boshqaruvini tezlashtirish imkonini beradi. Taklif etilayotgan yamalar sahifa keshini tomelardan foydalanishga aylantirishni yakunladi va XFS fayl tizimidagi tomlarga dastlabki yordamni qo'shdi.
    • Barcha o'chirilgan quyi tizimlarni yadro modullari shaklida to'playdigan konfiguratsiyani yaratadigan "mod2noconfig qilish" qurish rejimi qo'shildi.
    • Yadro yaratish uchun ishlatilishi mumkin bo'lgan LLVM/Clang versiyasiga talablar oshirildi. Endi qurish kamida LLVM 11 versiyasini talab qiladi.
  • Virtualizatsiya va xavfsizlik
    • /dev/random va /dev/urandom qurilmalarining ishlashi uchun mas'ul bo'lgan psevdo-tasodifiy raqamlar generatori RDRANDning yangilangan ilovasi taklif qilinmoqda, bu entropiyani aralashtirish operatsiyalari uchun SHA2 o'rniga BLAKE1s xesh funktsiyasidan foydalanishga o'tish bilan ajralib turadi. O'zgartirish muammoli SHA1 algoritmini yo'q qilish va RNG ishga tushirish vektorini qayta yozishni bartaraf etish orqali psevdo-tasodifiy raqamlar generatorining xavfsizligini yaxshiladi. BLAKE2s algoritmi ishlashda SHA1 dan ustun bo'lgani uchun undan foydalanish ham ishlashga ijobiy ta'sir ko'rsatdi.
    • Shartsiz oldinga o'tish operatsiyalaridan keyin ko'rsatmalarning spekulyativ bajarilishi natijasida protsessorlardagi zaifliklardan qo'shimcha himoya. Muammo xotiradagi filial ko'rsatmalaridan (SLS, Straight Line Speculation) so'ng darhol ko'rsatmalarni oldindan qayta ishlash tufayli yuzaga keladi. Himoyani yoqish uchun GCC 12 ning hozirda sinovdan o‘tkazilayotgan versiyasini yaratish kerak.
    • Ma'lumotnomalarni hisoblashda uni bo'shatgandan keyin xotiraga kirishga olib keladigan xatolar sonini kamaytirishga qaratilgan (qayta hisoblash, ma'lumotnomalarni hisoblash) kuzatish mexanizmi qo'shildi. Mexanizm hozirda tarmoq quyi tizimi bilan cheklangan, ammo kelajakda u yadroning boshqa qismlariga moslashtirilishi mumkin.
    • Jarayon xotirasi sahifasi jadvalidagi yangi yozuvlarni kengaytirilgan tekshirishlar amalga oshirildi, bu esa ma'lum turdagi shikastlanishlarni aniqlash va tizimni to'xtatish, hujumlarni dastlabki bosqichda blokirovka qilish imkonini beradi.
    • Yadro modullarini foydalanuvchi maydonidagi ishlov beruvchi tomonidan emas, balki yadroning o'zi tomonidan to'g'ridan-to'g'ri ochish imkoniyati qo'shildi, bu LoadPin LSM modulidan yadro modullarining tasdiqlangan xotira qurilmasidan xotiraga yuklanishini ta'minlash imkonini beradi.
    • "-Wcast-function-type" bayrog'i bilan ta'minlangan yig'ilish funksiya ko'rsatkichlarini mos kelmaydigan turga uzatish haqida ogohlantirish imkonini beradi.
    • Xen gipervizori uchun pvUSB virtual xost drayveri qo'shildi, bu mehmon tizimlariga yo'naltirilgan USB qurilmalariga kirishni ta'minlaydi (mehmon tizimlariga mehmon tizimiga tayinlangan jismoniy USB qurilmalariga kirish imkonini beradi).
    • IME (Intel Management Engine) quyi tizimi bilan Wi-Fi orqali oʻzaro aloqada boʻlish imkonini beruvchi modul qoʻshildi, u koʻpchilik Intel protsessorlari bilan jihozlangan zamonaviy anakartlarda keladi va protsessordan mustaqil ravishda ishlaydigan alohida mikroprotsessor sifatida amalga oshiriladi.
    • ARM64 arxitekturasi uchun yadro ichidagi poyga sharoitlarini dinamik ravishda aniqlash uchun mo'ljallangan KCSAN (Yadro bir vaqtning o'zida sanitizer) disk raskadrovka vositasini qo'llab-quvvatlash amalga oshirildi.
    • 32-bitli ARM tizimlari uchun xotira bilan ishlashda xatolarni aniqlash uchun KFENCE mexanizmidan foydalanish imkoniyati qo'shildi.
    • KVM gipervizori kelgusida Intel Xeon Scalable server protsessorlarida amalga oshirilgan AMX (Advanced Matrix Extensions) ko'rsatmalarini qo'llab-quvvatlaydi.
  • Tarmoq quyi tizimi
    • Tarmoq qurilmalari tomoniga trafikni boshqarish bilan bog'liq yuk tushirish operatsiyalari uchun qo'shimcha yordam.
    • Seriyali qurilmalar orqali MCTP (Management Component Transport Protocol) dan foydalanish imkoniyati qo‘shildi. MCTP boshqaruv kontrollerlari va ular bilan bog'liq qurilmalar (host protsessorlar, tashqi qurilmalar va boshqalar) o'rtasida aloqa o'rnatish uchun ishlatilishi mumkin.
    • TCP to'plami optimallashtirildi, masalan, recvmsg qo'ng'iroqlarining ishlashini yaxshilash uchun soket buferlarini kechiktirilgan chiqarish amalga oshirildi.
    • CAP_NET_RAW vakolatlari darajasida setsockopt funksiyasi orqali SO_PRIORITY va SO_MARK rejimlarini o'rnatishga ruxsat beriladi.
    • IPv4 uchun xom rozetkalarni IP_FREEBIND va IP_TRANSPARENT opsiyalari yordamida mahalliy bo'lmagan IP manzillarga ulashga ruxsat beriladi.
    • ARP monitorini tekshirish paytida nosozliklar sonini sozlash uchun sysctl arp_missed_max qo'shildi, shundan so'ng tarmoq interfeysi o'chirilgan holatga keltiriladi.
    • Tarmoq nomlari uchun alohida sysctl min_pmtu va mtu_expires qiymatlarini sozlash imkoniyati taqdim etilgan.
    • Ettool API-ga kiruvchi va chiquvchi paketlar uchun buferlar hajmini o'rnatish va aniqlash imkoniyati qo'shildi.
    • Netfilter tarmoq ko'prigida tranzit pppoe trafigini filtrlash uchun yordamni qo'shdi.
    • SMB3 protokoli yordamida fayl serverini amalga oshiradigan ksmbd moduli kalit almashinuvini qo'llab-quvvatladi, smbdirect uchun 445 tarmoq portini yoqdi va "smb2 max credit" parametrini qo'llab-quvvatladi.
  • uskunalar
    • Maxfiy ma'lumotlarni ko'rsatish uchun ekranlarni qo'llab-quvvatlash drm (Direct Renderering Manager) quyi tizimi va i915 drayveriga qo'shildi, masalan, ba'zi noutbuklar o'rnatilgan maxfiy ko'rish rejimiga ega ekranlar bilan jihozlangan, bu esa tashqi tomondan ko'rishni qiyinlashtiradi. . Qo'shilgan o'zgarishlar sizga bunday ekranlar uchun maxsus drayverlarni ulash va oddiy KMS drayverlarida xususiyatlarni o'rnatish orqali maxfiy ko'rish rejimlarini boshqarish imkonini beradi.
    • Amdgpu drayveri uni qo'llab-quvvatlaydigan barcha AMD GPU'lari uchun STB (Smart Trace Buffer) disk raskadrovka texnologiyasini qo'llab-quvvatlaydi. STB so'nggi nosozlikdan oldin bajarilgan funktsiyalar haqida ma'lumotni maxsus buferda saqlash orqali nosozliklarni tahlil qilishni va muammolar manbasini aniqlashni osonlashtiradi.
    • I915 drayveri Intel Raptor Lake S chiplarini qoʻllab-quvvatlaydi va sukut boʻyicha Intel Alder Lake P chiplarining grafik quyi tizimini qoʻllab-quvvatlashga imkon beradi.Ekran yoritilishini VESA DPCD interfeysi orqali boshqarish mumkin.
    • Fbcon/fbdev drayverlarida konsolda apparatni aylantirishni tezlashtirishni qo'llab-quvvatlash qaytarildi.
    • Apple M1 chiplarini qo'llab-quvvatlash uchun o'zgarishlarni davom ettirish. Proshivka tomonidan taqdim etilgan freymbufer orqali chiqish uchun Apple M1 chipli tizimlarda simpledrm drayveridan foydalanish imkoniyati amalga oshirildi.
    • ARM SoS, Snapdragon 7c, 845 va 888 qurilmalari va platalari (Sony Xperia XZ2 / XZ2C / XZ3, Xperia 1 III / 5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek (MT8183) uchun qoʻshimcha qoʻllab-quvvatlash. Acer Chromebook 314), Mediatek MT7986a/b (Wi-fi routerlarda ishlatiladi), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEXMP320, TI SPEX8P8. , Aspeed AST2500/AST2600, Engicam i.Core STM32MP1, Allwinner Tanix TX6, Facebook Bletchley BMC, Goramo MultiLink, JOZ kirish nuqtasi, Y Soft IOTA Crux/Crux+, t6000/t6001/MacBook Pro.
    • ARM Cortex-M55 va Cortex-M33 protsessorlari uchun qo'shimcha qo'llab-quvvatlash.
    • CPU MIPS-ga asoslangan qurilmalar uchun qo'shimcha yordam: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • RISC-V arxitekturasiga asoslangan StarFive JH7100 SoC uchun qo'shimcha qo'llab-quvvatlash.
    • Klaviatura yoritgichini boshqarish va Lenovo Yoga kitobidagi turli sensorlarga kirish uchun lenovo-yogabook-wmi drayveri qo'shildi.
    • AMD Ryzen protsessorlari asosidagi Asus X370, X470, B450, B550 va X399 anakartlarida ishlatiladigan sensorlarga kirish uchun asus_wmi_sensors drayveri qo'shildi.
    • Android platformasi bilan birga yuborilgan x86-ga asoslangan planshet kompyuterlar uchun x86-android-planshet drayveri qo'shildi.
    • TrekStor SurfTab duo W1 sensorli ekranlari va Chuwi Hi10 Plus va Pro planshetlari uchun elektron qalam uchun qo‘shimcha qo‘llab-quvvatlash qo‘shildi.
    • SoC Tegra 20/30 drayverlari quvvat va kuchlanishni boshqarish uchun qo'shimcha yordamga ega. ASUS Prime TF32, Pad TF201T, Pad TF701T, Infinity TF300T, EeePad TF700 va Pad TF101TG kabi eski 300-bitli Tegra SoC qurilmalarida yuklashni yoqadi.
    • Siemens sanoat kompyuterlari uchun drayverlar qo'shildi.
    • Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA va Team043015ABA LCDXNUMX displeylari va TCMSTXXNUMX ekranlari uchun qo‘shimcha qo‘llab-quvvatlash.
    • Ovoz tizimlari va kodeklari AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texasx Instruments dan foydalanadigan Intel tizimlari, Texasx Instruments. Tegra320 HD-audio bilan bog'liq muammolar hal qilindi. CS3L194 kodeklari uchun HDA qo'llab-quvvatlash qo'shildi. Lenovo va HP noutbuklari, shuningdek, Gigabyte anakartlari uchun ovoz tizimlarini qo'llab-quvvatlash yaxshilandi.

Manba: opennet.ru

a Izoh qo'shish