Нашри ядрои Linux 6.1

Пас аз ду моҳи таҳия, Линус Торвалдс нашри ядрои Linux 6.1-ро пешниҳод кард. Дар байни тағйироти назаррас: дастгирии таҳияи драйверҳо ва модулҳо дар забони Rust, навсозии механизми муайян кардани саҳифаҳои хотираи истифодашуда, менеҷери махсуси хотира барои барномаҳои BPF, системаи ташхиси мушкилоти хотираи KMSAN, KCFI (Kernelk Control) -Flow Integrity) механизми муҳофизат, ҷорӣ намудани дарахти сохтори Maple.

Версияи нав 15115 ислоҳи 2139 таҳиягарро дар бар мегирад, андозаи пач 51 МБ аст, ки аз андозаи часбҳои ядроҳои 2 ва 6.0 тақрибан 5.19 маротиба хурдтар аст. Тағирот ба 13165 файл таъсир расонд, 716247 сатри код илова карда шуд ва 304560 сатр нест карда шуд. Тақрибан 45% ҳамаи тағиротҳои дар 6.1 воридшуда ба драйверҳои дастгоҳ, тақрибан 14% тағирот ба навсозии коди мушаххаси архитектураи сахтафзор, 14% ба стеки шабакавӣ, 3% ба системаҳои файлӣ ва 3% марбутанд. бо зерсистемаҳои ядрои дохилӣ алоқаманданд.

Навовариҳои асосӣ дар ядро ​​​​6.1:

  • Хидматҳои хотира ва система
    • Имконияти истифодаи Rust ҳамчун забони дуюм барои таҳияи драйверҳо ва модулҳои ядро ​​​​илова карда шуд. Сабаби асосии дастгирии Rust ин осон кардани навиштани драйверҳои дастгоҳи бехатар ва баландсифат тавассути коҳиш додани эҳтимолияти хатогиҳо ҳангоми кор бо хотира мебошад. Дастгирии Rust бо нобаёнӣ ғайрифаъол аст ва боиси он намешавад, ки Rust ҳамчун вобастагии зарурии сохтани ядро ​​дохил карда шавад. Ядро то ҳол як версияи ҳадди ақали рахнашудаи часпакҳоро қабул кардааст, ки аз 40 то 13 ҳазор сатри код кам карда шудааст ва танҳо ҳадди ақали заруриро таъмин мекунад, ки барои сохтани модули оддии ядро ​​​​ба забони Rust навишта шудааст. Дар оянда ба нақша гирифта шудааст, ки функсияҳои мавҷуда тадриҷан афзоиш дода, тағиротҳои дигар аз шӯъбаи Rust-for-Linux интиқол дода шаванд. Дар баробари ин, лоиҳаҳо барои истифодаи инфрасохтори пешниҳодшуда барои таҳияи драйверҳо барои дискҳои NVMe, протоколи шабакаи 9p ва Apple M1 GPU бо забони Rust таҳия карда мешаванд.
    • Барои системаҳои дар асоси меъмории AArch64, RISC-V ва LoongArch бо EFI, қобилияти бевосита бор кардани тасвирҳои фишурдашудаи ядро ​​амалӣ карда шудааст. Барои бор кардан, кор кардан ва борфарорӣ кардани тасвирҳои ядро, ки бевосита аз EFI zboot даъват карда мешаванд, коркардкунандагони иловашуда. Дастёрҳо барои насб ва нест кардани протоколҳо аз базаи протоколҳои EFI низ илова карда шудаанд. Пештар, кушодан аз ҷониби боркунаки алоҳида анҷом дода мешуд, аммо ҳоло ин корро коркардкунанда дар худи ядро ​​анҷом дода метавонад - тасвири ядро ​​​​ҳамчун барномаи EFI ташаккул меёбад.
    • Таркиб як қисми часбҳоро бо татбиқи модели бисёрсатҳи идоракунии хотира дар бар мегирад, ки ба шумо имкон медиҳад, ки бонкҳои хотираро бо хусусиятҳои гуногуни иҷроиш ҷудо кунед. Масалан, саҳифаҳои аз ҳама бештар истифодашаванда метавонанд дар хотираи тезтарин нигоҳ дошта шаванд, дар ҳоле ки саҳифаҳои кам истифодашаванда метавонанд дар хотираи нисбатан суст нигоҳ дошта шаванд. Ядро 6.1 механизмеро барои муайян кардани ҷойгиршавии саҳифаҳои сахт истифодашаванда дар хотираи суст ҷорӣ мекунад, то онҳо ба хотираи тез мусоидат кунанд ва инчунин консепсияи умумии сатҳҳои хотира ва иҷрои нисбии онҳоро муаррифӣ мекунад.
    • Он механизми MGLRU (Multi-Generational LRU) -ро дар бар мегирад, ки татбиқи кӯҳнаи LRU (камтарини охирин истифодашуда) дар асоси ду навбат бо сохтори бисёрмарҳиларо иваз мекунад, ки беҳтар муайян мекунад, ки кадом саҳифаҳои хотира воқеан истифода мешаванд ва кадоме аз онҳоро берун кардан мумкин аст. қисми своп.
    • Дастгирии иловагии сохтори додаҳои "дарахти хордор", ки аз ҷониби муҳандисони Oracle пешниҳод шудааст, ки ҳамчун ивазкунандаи муассири сохтори "дарахти сурх-сиёҳ" ҷойгир шудааст. Дарахти хордор як варианти дарахти B мебошад, ки индексатсияи диапазонро дастгирӣ мекунад ва барои истифодаи самараноки кэши протсессорҳои муосир тарҳрезӣ шудааст. Баъзе зерсистемаҳои идоракунии хотира аллакай ба дарахти хордор интиқол дода шудаанд, ки ин ба кори онҳо таъсири мусбӣ расонд. Дар оянда дарахти хордор метавонад барои татбиқи қулфи диапазон истифода шавад.
    • Ба зерсистемаи BPF имкони эҷоди барномаҳои "вайронкунандаи" BPF, ки махсус барои оғоз кардани қатъи фавқулодда тавассути занги crash_kexec() тарҳрезӣ шудааст, илова карда шудааст. Чунин барномаҳои BPF метавонанд бо мақсади ислоҳи хатогиҳо барои оғоз кардани эҷоди партовҳои садамавӣ дар лаҳзаи муайян талаб карда шаванд. Барои дастрасӣ ба амалиёти харобиовар ҳангоми боркунии барномаи BPF, шумо бояд парчами BPF_F_DESTRUCTIVE-ро муайян кунед, sysctl kernel.destructive_bpf_enabled-ро фаъол созед ва ҳуқуқи CAP_SYS_BOOT дошта бошед.
    • Барои барномаҳои BPF, номбар кардани унсурҳои гурӯҳҳо, инчунин номбар кардани захираҳо (файлҳо, vma, равандҳо ва ғ.) ришта ё вазифаи мушаххас имконпазир аст. Навъи нави харита барои эҷоди буферҳои ҳалқаи корбар амалӣ карда шуд.
    • Илова кардани занги махсус барои тақсимоти хотира дар барномаҳои BPF (тақсимкунандаи хотира), ки тақсимоти хотираи бехатарро дар заминаи BPF нисбат ба kmalloc () стандартӣ таъмин мекунад.
    • Қисми якуми тағйирот ворид карда шудааст, ки имкони эҷоди драйверҳоро барои дастгоҳҳои воридотӣ бо интерфейси HID (Дастгоҳи интерфейси инсонӣ), ки дар шакли барномаҳои BPF амалӣ карда мешавад, таъмин мекунад.
    • Ядро барои дастгирии формати файли иҷрошавандаи a.out, ки дар нашри 5.1 бекор карда шуда буд ва барои меъмориҳои асосӣ аз версияҳои 5.18 ва 5.19 ғайрифаъол карда шудааст, комилан хориҷ карда шудааст. Формати a.out дар системаҳои Linux кайҳо бекор карда шудааст ва тавлиди файлҳои a.out бо абзорҳои муосир дар конфигуратсияҳои пешфарзи Linux дастгирӣ намешавад. Боркунаки файлҳои a.out метавонад пурра дар фазои корбар амалӣ карда шавад.
    • Барои системаҳо дар асоси меъмории маҷмӯи дастурҳои LoongArch, ки дар протсессори Loongson 3 5000 истифода мешаванд ва татбиқи RISC ISA-и нави шабеҳи MIPS ва RISC-V, дастгирии рӯйдодҳои ченкунии иҷроиш (ҳодисаҳои perf), kexec, kdump ва BPF JIT тартиб дода мешаванд. .
    • Интерфейси асинхронии I/O io_uring режими нави IORING_SETUP_DEFER_TASKRUN-ро пешниҳод мекунад, ки имкон медиҳад, ки кори марбут ба буфери ҳалқа муваққатан то дархости дархост ба таъхир гузошта шавад, ки онро метавон барои кори дастаҷамъӣ ва пешгирӣ кардани мушкилоти таъхир дар натиҷаи пешгирикунӣ истифода бурд. вақти нодуруст.
    • Равандҳо дар фазои корбар имкон доранд, ки табдили як қатор саҳифаҳои хотираи муқаррариро ба маҷмӯи саҳифаҳои хотираи калон (Transparent Huge-Pages) оғоз кунанд.
    • Татбиқи иловагии дастгоҳи /dev/userfaultfd, ки имкон медиҳад дастрасӣ ба функсияи занги системаи userfaultfd() бо истифода аз ҳуқуқи дастрасӣ дар FS. Функсияи userfaultfd ба шумо имкон медиҳад, ки коркардкунандагонро барои дастрасӣ ба саҳифаҳои хотираи ҷудонашуда (айбҳои саҳифа) дар фазои корбар эҷод кунед.
    • Талабот ба версияи утилитаи GNU Make зиёд шудааст - ҳоло барои сохтани ядро ​​ҳадди аққал версияи 3.82 лозим аст.
  • Зерсистемаи диск, системаҳои воридотӣ ва файлӣ
    • Ба системаи файлии Btrfs оптимизатсияҳои назарраси иҷроиш анҷом дода шуданд; дар байни чизҳои дигар, иҷрои занги FIEMAP ioctl бо фармоишҳои бузург зиёд карда шуд. Дастгирии иловашуда барои навиштани асинхронии буферӣ барои замимаҳо бо истифода аз io_uring. Дастгирии файлҳои бо fs-verity ҳифзшуда ба амалиёти "фиристодан" илова карда шуд.
    • Системаи файлии ext4 оптимизатсияи иҷроишро вобаста ба нигоҳдории маҷалла ва танҳо барои хондан илова кардааст.
    • Системаи файлии EROFS (Enhanced Read-Only File System), ки барои истифода дар қисмҳои дар ҳолати танҳо барои хондан дастрас тарҳрезӣ шудааст, қобилияти мубодилаи маълумотро дар системаҳои гуногуни файлӣ такрор мекунад.
    • Зангҳои системаи statx() барои намоиш додани маълумот дар бораи он, ки оё мустақиман вуруд/чорро ба файл татбиқ кардан мумкин аст, илова карда шудааст.
    • Дастгирии эҷоди файлҳои муваққатӣ бо парчами O_TMPFILE ба зерсистемаи FUSE (Filesystems in Space User) илова карда шудааст.
  • Виртуализатсия ва амният
    • Татбиқи механизми муҳофизати CFI (Control Flow Integrity) иваз карда шуд, илова кардани санҷишҳо пеш аз ҳар як занги ғайримустақими функсия барои ошкор кардани баъзе шаклҳои рафтори номуайян, ки эҳтимолан ба вайрон кардани тартиби муқаррарии иҷро (ҷараёни назорат) оварда мерасонад. натиҷаи истифодаи эксплойтҳо, ки нишондиҳандаҳоро ба функсияҳои дар хотира нигоҳ дошташуда иваз мекунанд. Татбиқи стандартии CFI аз лоиҳаи LLVM бо варианте иваз карда шуд, ки инчунин ба истифодаи Clang асос ёфтааст, аммо барои ҳифзи зерсистемаҳои сатҳи паст ва ядроҳои системаи амалиётӣ махсус мутобиқ карда шудааст. Дар LLVM, татбиқи нав дар версияи Clang 16 пешниҳод карда мешавад ва бо опсияи "-fsanitize=kcfi" фаъол карда мешавад. Тафовути калидӣ бо татбиқи нав дар он аст, ки он ба оптимизатсияи вақти истинод (LTO) алоқаманд нест ва боиси он намешавад, ки нишондиҳандаҳои функсионалӣ бо истинодҳо дар ҷадвали ҷаҳиш иваз карда шаванд.
    • Барои модулҳои LSM (Модули Амнияти Linux) имконпазир аст, ки коркардкунандагонеро эҷод кунед, ки амалиётҳоро барои эҷоди фазои номҳо бозмедоранд.
    • Асбобҳо барои тасдиқи имзоҳои рақамии PKCS # 7 дар барномаҳои BPF пешбинӣ шудаанд.
    • Имконияти кушодан дар ҳолати ғайрибандӣ (O_NONBLOCK), ки нохост дар ядрои 5.6 хориҷ карда шуд, ба /dev/random баргардонида шуд.
    • Дар системаҳои дорои меъмории x86, огоҳӣ дар мавриди харитасозии саҳифаҳои хотира тавассути зерсистемаҳои ядро, ки ҳамзамон иҷро ва навиштанро иҷозат медиҳанд, илова карда шудааст. Дар оянда имкони комилан манъ кардани чунин харитасозии хотира баррасӣ мешавад.
    • Механизми ислоҳи KMSAN (Kernel Memory Sanitizer) илова карда шуд, то истифодаи хотираи ибтидонашудаи ядроро муайян кунад, инчунин ихроҷи хотираи ибтидонашудаи байни фазои корбар ва дастгоҳҳо.
    • Дар генератори рақамҳои псевдо-тасодуфии CRNG, ки дар занги тасодуфӣ истифода мешавад, такмил дода шуд. Тағирот аз ҷониби Ҷейсон А. Доненфелд, муаллифи VPN WireGuard таҳия шудааст ва ба беҳтар кардани амнияти истихроҷи бутуни псевдо-тасодуфӣ нигаронида шудааст.
  • Зерсистемаи шабакавӣ
    • Стеки TCP имкон медиҳад (бо нобаёнӣ ғайрифаъол аст) барои ҳар як фазои номҳо ҷадвалҳои хэш-сокетро алоҳида истифода барад, ки иҷроишро дар системаҳои дорои шумораи зиёди фазои номҳо беҳтар мекунад.
    • Рамзи хориҷшуда барои дастгирии протоколи кӯҳнаи DECnet. Навдаҳои API фазои корбар дар ҷои худ гузошта мешаванд, то барномаҳоеро, ки DECnet-ро истифода мебаранд тартиб дода шаванд, аммо ин барномаҳо наметавонанд ба шабака пайваст шаванд.
    • Протоколи netlink ҳуҷҷатгузорӣ шудааст.
  • Таҷҳизот
    • Драйвери amdgpu барои интиқоли DSC (Display Stream Compression) барои фишурдани бе талафи додаҳо ҳангоми табодули иттилоот бо экранҳое, ки қарорҳои хеле баландро дастгирӣ мекунанд, дастгирӣ илова кардааст. Кор барои дастгирии платформаҳои AMD RDNA3 (RX 7000) ва CDNA (Instinct) идома дорад. Дастгирии иловашуда барои DCN 3.2, SMU 13.x, NBIO 7.7, GC 11.x, PSP 13.x, SDMA 6.x ва GMC 11.x ҷузъҳои IP. Драйвери amdkfd (барои GPU-ҳои дискретии AMD ба монанди Polaris) дастгирии GFX 11.0.3-ро таъмин мекунад.
    • Ронандаи i915 (Intel) барои GPU Meteor Lake дастгирӣ мекунад. Meteor Lake ва GPU-ҳои навтар интерфейси DP 2.0 (DisplayPort) -ро дастгирӣ мекунанд. Идентификаторҳо барои кортҳои видеоӣ дар асоси микроархитектураи Alder Lake S илова карда шуданд.
    • Дастгирии иловашуда барои зерсистемаҳои аудиоӣ, ки дар протсессори Apple Silicon, Intel SkyLake ва Intel KabyLake амалӣ карда мешаванд. Драйвери аудиои CS35L41 HDA режими хобро дастгирӣ мекунад. Дастгирии иловагии ASoC (ALSA System on Chip) барои чипҳои аудиоии ҳамгирошудаи Apple Silicon, AMD Rembrant DSPs, AMD Pink Sardine ACP 6.2, Everest ES8326, Intel Sky Lake ва Kaby Lake, Mediatek MT8186, NXP i.MX8ULP DSPs, Qualcomm i.MX8280ULP, Qualcomm 8250, Qualcomm SM8450 ва Texas Instruments SRC4392
    • Дастгирии иловашуда барои панелҳои LCD Samsung LTL101AL01, B120XAN01.0, R140NWF5 RH, Densitron DMT028VGHMCMI-1A TFT, AUO B133UAN02.1, IVO M133NW4J-R3, Innolux N120XAN1E, B116XAN01.6E. 116WH M-N21, INX N116BCA- EA2, INX N116BCN-EA1, Технологияи бисёрсолаи Inno MI0800FT-9.
    • Дастгирии иловашуда барои контроллерҳои AHCI SATA, ки дар SoC Baikal-T1 истифода мешаванд.
    • Дастгирии иловашуда барои чипҳои Bluetooth MediaTek MT7921, Intel Magnetor (CNVi, Пайвастшавии интегралӣ), Realtek RTL8852C, RTW8852AE ва RTL8761BUV (Edimax BT-8500).
    • Драйвери ath11k барои модулҳои бесими Qualcomm дастгирии сканкунии спектриро дар диапазони 160 МГс илова кард, NAPI-и бисёр риштаро амалӣ кард ва дастгирии беҳтар барои чипҳои Qualcomm WCN6750 Wi-Fi.
    • Драйверҳои иловашуда барои клавиатураи PinePhone, touchpads InterTouch (ThinkPad P1 G3), Controller Adaptive X-Box, PhoenixRC Flight Controller, VRC-2 Car Controller, DualSense Edge Controller, IBM Operation Panel, дурдастҳои XBOX One Elite, планшетҳои XP-PEN Deco Pro S ва Intuos Pro Small (PTH-460).
    • Драйвер барои суръатбахшҳои криптографии Aspeed HACE (Hash ва Crypto Engine) илова карда шудааст.
    • Дастгирии иловашуда барои контроллерҳои ҳамгирошудаи Thunderbolt/USB4 Intel Meteor Lake.
    • Дастгирии иловашуда барои смартфонҳои Sony Xperia 1 IV, Samsung Galaxy E5, E7 ва Grand Max, Pine64 Pinephone Pro.
    • Дастгирии иловашуда барои ARM SoC ва тахтаҳо: AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 ва RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQ Kontrent, IPQ8062, IPQ BL i.MX8065MM OSM-S, MT8 (Acer помидор), Radxa ROCK 8195C+, NanoPi R4S Enterprise Edition, JetHome JetHub D4p. Драйверҳои навсозӣ барои SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom ва NXP.

Ҳамзамон, Бунёди нармафзори озоди Амрикои Лотинӣ як версияи ядрои комилан озоди 6.1 - Linux-libre 6.1-gnu -ро ташкил дод, ки аз унсурҳои нармафзор ва драйверҳои дорои ҷузъҳои ғайриозод ё қисмҳои код тоза карда шудааст, ки доираи онҳо аз ҷониби истеҳсолкунанда маҳдуд карда мешавад. Нашри нав драйвери нави rtw8852b ва файлҳои DTS-ро барои SoC-ҳои гуногуни Qualcomm ва MediaTek бо протсессорҳо дар асоси меъмории AArch64 тоза мекунад. Рамзи тозакунии блоб дар драйверҳо ва зерсистемаҳои amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI. Тоза кардани драйверҳои кӯҳнашудаи кортҳои телевизионии tm6000, cpia2 v4l, sp8870, av7110 ислоҳ карда шуд.

Манбаъ: opennet.ru

Илова Эзоҳ