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

Пас аз ду моҳи таҳия, Линус Торвалдс нашри ядрои Linux 6.3-ро пешниҳод кард. Дар байни тағиротҳои назаррас: тоза кардани платформаҳои кӯҳнаи ARM ва драйверҳои графикӣ, ҳамгироии идомаи дастгирии забони Rust, утилитаи hwnoise, дастгирии сохторҳои дарахти сурх-сиёҳ дар BPF, режими BIG TCP барои IPv4, меъёри дарунсохт Dhrystone, қобилияти хомӯш кардан иҷро дар memfd, дастгирии эҷоди драйверҳои HID бо истифода аз BPF, тағирот ба Btrfs барои кам кардани тақсимоти гурӯҳҳои блокҳо ворид карда шуданд.

Версияи нав 15637 ислоҳи 2055 таҳиягарро дар бар мегирад; андозаи пач - 76 МБ (тағирот ба 14296 файл таъсир расонидааст, 1023183 сатри код илова карда шуд, 883103 сатр нест карда шуд). Барои муқоиса, версияи қаблӣ 16843 ислоҳро аз 2178 таҳиягарон пешниҳод кард; андозаи пач 62 MB аст. Тақрибан 39% тамоми тағйироте, ки дар ядрои 6.3 ворид карда шудаанд, ба драйверҳои дастгоҳ алоқаманданд, тақрибан 15% тағирот ба навсозии коди мушаххаси архитектураи сахтафзор, 10% ба стеки шабакавӣ, 5% бо системаҳои файлӣ ва 3% бо зерсистемаҳои ядрои дохилӣ алоқаманданд.

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

  • Хидматҳои хотира ва система
    • Тозакунии назарраси коди марбут ба тахтаҳои кӯҳна ва истифоданашудаи ARM анҷом дода шуд, ки ин имкон дод, ки андозаи рамзи сарчашмаи ядро ​​​​то 150 ҳазор сатр кам карда шавад. Зиёда аз 40 платформаи кӯҳнаи ARM хориҷ карда шуданд.
    • Имконияти сохтани драйверҳо барои дастгоҳҳои воридотӣ бо интерфейси HID (Device Interface Device), ки дар шакли барномаҳои BPF амалӣ карда мешавад, амалӣ карда шуд.
    • Интиқол аз шӯъбаи Rust-for-Linux функсияҳои иловагии марбут ба истифодаи забони Rust ҳамчун забони дуюм барои таҳияи драйверҳо ва модулҳои ядроӣ идома ёфт. Дастгирии Rust бо нобаёнӣ фаъол нест ва боиси он намешавад, ки Rust ҳамчун вобастагии зарурии сохтани ядро ​​дохил карда шавад. Функсияҳое, ки дар версияҳои қаблӣ пешниҳод шудаанд, барои дастгирии намудҳои Arc (иҷрои нишондодҳо бо ҳисобкунии истинод), ScopeGuard (тозакунӣ ҳангоми берун аз доираи фарогир) ва ForeignOwnable (ҳаракати нишондиҳандаҳоро байни рамзи C ва Rust таъмин мекунад) васеъ карда шудааст. Модули "қарз" (навъи "Гов" ва хислати "ToOwned") аз бастаи "alloc" хориҷ карда шудааст. Қайд карда мешавад, ки ҳолати дастгирии Rust дар ядро ​​аллакай ба қабули аввалин модулҳои бо Rust навишташуда ба ядро ​​наздик аст.
    • Реҷаи корбар Linux (корнеро ҳамчун раванди корбар иҷро мекунад) дар системаҳои x86-64 дастгирии рамзи бо забони Rust навишташударо амалӣ мекунад. Дастгирии иловашуда барои сохтани реҷаи корбарии Linux бо истифода аз clang бо оптимизатсияи вақти истинод (LTO) фаъол.
    • Утили hwnoise барои пайгирии таъхирҳо аз сахтафзор илова карда шуд. Инҳироф дар вақти иҷрои амалиётҳо (життер) ҳангоми ғайрифаъол будани коркарди танаффус, ки аз як микросония дар 10 дақиқаи ҳисобҳо зиёд аст, муайян карда мешавад.
    • Модули ядрое илова карда шуд, ки меъёри Dhrystone-ро амалӣ мекунад, ки метавонад барои арзёбии кори CPU дар конфигуратсияҳо бидуни ҷузъҳои фазои корбар истифода шавад (масалан, дар марҳилаи интиқол барои SoC-ҳои нав, ки танҳо боркунии ядроро амалӣ мекунанд).
    • Параметри сатри фармони ядрои иловашуда "cgroup.memory=nobpf", ки баҳисобгирии истеъмоли хотираро барои барномаҳои BPF ғайрифаъол мекунад, ки метавонад барои системаҳои дорои контейнерҳои ҷудошуда муфид бошад.
    • Барои барномаҳои BPF, татбиқи сохтори маълумоти дарахти сурх-сиёҳ пешниҳод карда мешавад, ки ба ҷои илова кардани намуди нави харитасозӣ kfunc + kptr (bpf_rbtree_add, bpf_rbtree_remove, bpf_rbtree_first) -ро истифода мебарад.
    • Механизми пайдарпаии бозоғозшаванда (rseq, пайдарпаии бозоғозшаванда) қобилияти интиқоли идентификаторҳои иҷрошавии параллелӣ (ID-и ҳамзамон хотира-харита) ба равандҳоеро, ки бо рақами CPU муайян шудаанд, илова кардааст. Rseq воситаеро барои ба таври фаврӣ иҷро кардани амалиётҳо таъмин мекунад, ки агар бо риштаи дигар қатъ карда шавад, тоза карда мешавад ва дубора кӯшиш карда мешавад.
    • Протсессорҳои ARM дастурҳои SME 2 (Scalable Matrix Extension) -ро дастгирӣ мекунанд.
    • Барои меъмории s390x ва RISC-V RV64, дастгирии механизми "BPF trampoline" амалӣ карда шудааст, ки имкон медиҳад хароҷоти изофӣ ҳангоми интиқоли зангҳо байни барномаҳои ядро ​​​​ ва BPF кам карда шавад.
    • Дар системаҳои дорои протсессорҳо дар асоси меъмории RISC-V, истифодаи дастурҳои "ZBB" барои суръат бахшидани амалиёти сатр амалӣ карда мешавад.
    • Барои системаҳо дар асоси меъмории маҷмӯи дастурҳои LoongArch (дар протсессори Loongson 3 5000 истифода мешавад ва татбиқи RISC ISA-и нав, ба монанди MIPS ва RISC-V), дастгирии тасодуфии фазои суроғаи ядро ​​(KASLR), тағирот дар ҷойгиркунии хотираи ядро ​​(кӯчонидан) ), пунктхои сахтафзор механизми истгох ва кпроб татбик карда мешавад.
    • Механизми DAMOS (Schemes Operation Basing Monitoring Data Access Schemes), ки ба шумо имкон медиҳад, ки хотираро дар асоси басомади дастрасии хотира озод кунед, филтрҳоро дастгирӣ мекунад, то минтақаҳои муайяни хотираро аз коркард дар DAMOS хориҷ кунанд.
    • Китобхонаи минималии стандарти C Nolibc дастгирии меъмории s390 ва маҷмӯи дастурҳои Arm Thumb1-ро таъмин мекунад (илова ба дастгирии ARM, AArch64, i386, x86_64, RISC-V ва MIPS).
    • Objtool барои суръат бахшидан ба васлкунии ядро ​​​​ва кам кардани истеъмоли баландтарини хотира ҳангоми васлкунӣ оптимизатсия карда шудааст (ҳангоми сохтани ядро ​​дар реҷаи “allyesconfig” ҳоло ягон мушкилот бо қатъ кардани маҷбурии равандҳо дар системаҳои дорои 32 ГБ хотираи оперативӣ вуҷуд надорад).
    • Дастгирии васлкунии ядро ​​аз ҷониби компилятори Intel ICC қатъ карда шуд, ки муддати тӯлонӣ ғайрифаъол буд ва ҳеҷ кас хоҳиши ислоҳи онро баён накардааст.
  • Зерсистемаи диск, системаҳои воридотӣ ва файлӣ
    • tmpfs дастгирии харитасозии идентификаторҳои корбарони системаҳои файлии васлшударо амалӣ мекунад, ки барои мувофиқ кардани файлҳои корбари мушаххас дар қисмати хориҷии васлшуда бо корбари дигар дар системаи ҷорӣ истифода мешавад.
    • Дар Btrfs, барои кам кардани тақсимоти гурӯҳҳои блокҳо, ҳангоми тақсим кардани блокҳо миқдорҳо аз рӯи андоза тақсим карда мешаванд, яъне. ҳама гуна гурӯҳи блокҳо ҳоло бо андозаи хурд (то 128 КБ), миёна (то 8 МБ) ва васеъ маҳдуд аст. Татбиқи raid56 аз нав дида баромада шуд. Рамзи тафтиши маблағи чек аз нав кор карда шуд. Оптимизатсияи корҳо барои суръат бахшидан ба амалиёти ирсолкунӣ то 10 маротиба тавассути кэшкунии utime барои директорияҳо ва иҷрои фармонҳо танҳо дар ҳолати зарурӣ анҷом дода шудааст. Амалиётҳои Fiemap ҳоло се маротиба тезтар тавассути гузариш аз санҷиши бозгашт барои маълумоти муштарак (расмҳо). Амалиёт бо метамаълумот тавассути оптимизатсияи ҷустуҷӯи калидҳо дар сохторҳои дарахти b 10% суръат гирифт.
    • Коркарди системаи файлии ext4 тавассути имкон додани якчанд равандҳо барои ҳамзамон амалиёти мустақими воридотӣ / баромад дар блокҳои қаблан ҷудошуда бо истифода аз қуфлҳои муштараки inode ба ҷои қуфлҳои истисноӣ беҳтар карда шуд.
    • Дар f2fs кор барои беҳтар кардани хониши код анҷом дода шудааст. Масъалаҳои муҳими марбут ба навиштаҷоти атомӣ ва кэшҳои навро ҳал карданд.
    • Системаи файлии EROFS (Enhanced Read-Only File System), ки барои истифода дар қисмҳои танҳо барои хондан тарҳрезӣ шудааст, қобилияти пайваст кардани амалиёти декомпрессии мундариҷаи файли фишурда ба CPU барои кам кардани таъхир ҳангоми дастрасӣ ба маълумотро амалӣ мекунад.
    • Барномасозони BFQ I/O барои дискҳои пешрафтаи ресандагӣ дастгирӣ илова кардааст, ба монанди дискҳое, ки дискҳои сарлавҳаи алоҳида идорашавандаро истифода мебаранд (Multi Actuators).
    • Дастгирии рамзгузории додаҳо бо истифода аз алгоритми AES-SHA2 ба мизоҷ ва татбиқи сервери NFS илова карда шудааст.
    • Дастгирии механизми тавсеаи дархост ба зерсистемаи FUSE (Filesystems In User Space) илова карда шуд, ки имкон медиҳад, ки маълумоти иловагӣ дар дархост ҷойгир карда шавад. Дар асоси ин хусусият ба дархости ФС идентификаторҳои гурӯҳӣ илова кардан мумкин аст, ки барои ба назар гирифтани ҳуқуқи дастрасӣ ҳангоми сохтани объектҳо дар ФС заруранд (create, mkdir, symlink, mknod).
  • Виртуализатсия ва амният
    • Гипервизори KVM барои системаҳои x86 дастгирии гиперзангҳои васеъшудаи Hyper-V-ро илова кард ва интиқоли онҳоро ба коркардкунандае, ки дар муҳити ҳост дар фазои корбар кор мекунад, таъмин кард. Тағйирот имкон дод, ки дастгирӣ барои оғози лонаҳои гипервизори Hyper-V амалӣ карда шавад.
    • KVM маҳдуд кардани дастрасии меҳмононро ба рӯйдодҳои PMU (Performance Monitor Unit) бо андозагирии самаранокӣ осонтар мекунад.
    • Механизми memfd, ки ба шумо имкон медиҳад, ки майдони хотираро тавассути дескриптори файли байни равандҳо интиқол дода муайян кунед, қобилияти эҷоди минтақаҳоеро илова кардааст, ки дар онҳо иҷрои код манъ аст (memfd иҷронашаванда) ва дар оянда муқаррар кардани ҳуқуқҳои иҷро ғайриимкон аст. .
    • Амали нави prctl PR_SET_MDWE илова карда шуд, ки кӯшишҳои фаъол кардани ҳуқуқҳои дастрасии хотираро, ки ҳамзамон навиштан ва иҷро карданро иҷозат медиҳад, блок мекунад.
    • Муҳофизат аз ҳамлаҳои синфи Spectre ба таври нобаёнӣ дар асоси режими автоматии IBRS (Enhanced Indirect Branch Restricted Speculation), ки дар протсессори AMD Zen 4 пешниҳод шудааст, илова ва фаъол карда шудааст, ки имкон медиҳад ба таври мутобиқсозӣ иҷроиши спекулятсионии дастурҳоро ҳангоми коркарди қатъ, зангҳои системавӣ ва ғайрифаъол созад. коммутаторҳои контекстӣ. Муҳофизати пешниҳодшуда дар муқоиса бо муҳофизати Retpoline боиси пасттар мегардад.
    • Ҳассосият ислоҳ карда шуд, ки имкон медиҳад, ки муҳофизат аз ҳамлаҳои Spectre v2 ҳангоми истифодаи технологияи ҳамзамон бисёр ришта (SMT ё Hyper-Threading) ва дар натиҷаи ғайрифаъол кардани механизми STIBP (Single Thread Indirect Branch Predictors) ҳангоми интихоби режими муҳофизати IBRS ба вуҷуд омадааст.
    • Барои системаҳое, ки бар меъмории ARM64 асос ёфтааст, ҳадафи нави маҷлис "virtconfig" илова карда шуд, вақте ки интихоб карда мешавад, танҳо маҷмӯи ҳадди ақали ҷузъҳои ядро, ки барои пурборкунӣ дар системаҳои виртуализатсия заруранд, фаъол карда мешавад.
    • Барои меъмории m68k, дастгирии филтр кардани зангҳои система бо истифода аз механизми seccomp илова карда шудааст.
    • Дастгирии иловагӣ барои дастгоҳҳои CRB TPM2 (Command Response Buffer), ки дар протсессори AMD Ryzen дар асоси технологияи Microsoft Pluton сохта шудаанд.
  • Зерсистемаи шабакавӣ
    • Интерфейси netlink барои танзим кардани зерқабати PLCA (Physical Layer Collision Avoidance), ки дар мушаххасоти IEEE 802.3cg-2019 муайян шудааст ва дар шабакаҳои Ethernet 802.3cg (10Base-T1S) барои пайваст кардани дастгоҳҳои Интернет ва системаҳои саноатӣ оптимизатсияшуда истифода шудааст, илова карда шудааст. Истифодаи PLCA корҳоро дар шабакаҳои Ethernet бо васоити муштарак беҳтар мекунад.
    • Дастгирии API-и "васеъшавии бесим" барои идоракунии интерфейсҳои бесими WiFi 7 (802.11be) қатъ карда шуд, зеро ин API ҳамаи танзимоти заруриро дар бар намегирад. Ҳангоми кӯшиши истифодаи API-и "вассиятҳои бесим", ки ҳамчун қабати тақлидшуда дастгирӣ мешавад, ҳоло барои аксари дастгоҳҳои ҷорӣ огоҳӣ нишон дода мешавад.
    • Ҳуҷҷатҳои муфассал дар бораи API netlink омода карда шудаанд (барои таҳиягарони аслӣ ва барои таҳиягарони барномаҳои фазои корбар). Утилитаи ynl-gen-c барои тавлиди коди C дар асоси мушаххасоти YAML протоколи Netlink амалӣ карда шудааст.
    • Дастгирии опсияи IP_LOCAL_PORT_RANGE ба розеткаҳои шабакавӣ илова карда шудааст, то конфигуратсияи пайвастҳои содиротӣ тавассути тарҷумонҳои суроғаро бидуни истифодаи SNAT содда кунад. Ҳангоми истифодаи як суроғаи IP дар якчанд ҳостҳо, IP_LOCAL_PORT_RANGE имкон медиҳад, ки доираи гуногуни портҳои шабакавии содиротӣ дар ҳар як ҳост ва интиқоли бастаҳо дар асоси рақамҳои порт дар дарвоза истифода шавад.
    • Барои MPTCP (MultiPath TCP) қобилияти коркарди ҷараёнҳои омехта бо истифода аз протоколҳои IPv4 ва IPv6 амалӣ карда шудааст. MPTCP як тамдиди протоколи TCP барои ташкили амалиёти пайвасти TCP бо интиқоли бастаҳо дар як вақт дар чанд масир тавассути интерфейсҳои шабакавии мухталифи бо суроғаҳои гуногуни IP алоқаманд аст.
    • Барои IPv4 метавон васеъшавии BIG TCP-ро истифода бурд, ки ба шумо имкон медиҳад андозаи ниҳоии бастаи TCP-ро то 4 ГБ барои оптимизатсияи кори шабакаҳои дохилии маркази додаҳои баландсуръат афзоиш диҳед. Афзоиши шабеҳи андозаи бастаҳо бо андозаи майдони сарлавҳаи 16-бит тавассути татбиқи бастаҳои "jumbo", ки андоза дар сарлавҳаи IP ба 0 муқаррар карда шудааст ва андозаи воқеӣ дар 32-бити алоҳида интиқол дода мешавад. майдон дар сарлавҳаи алоҳида замимашуда.
    • Параметри нави sysctl default_rps_mask илова карда шуд, ки ба воситаи он шумо метавонед конфигуратсияи пешфарзии RPS (Receive Packet Steering) -ро танзим кунед, ки барои паҳн кардани коркарди трафики воридотӣ дар ядроҳои CPU дар сатҳи коркарди қатъ масъул аст.
    • Дастгирии фанҳои коркарди навбат барои маҳдуд кардани трафики CBQ (навбат дар асоси синф), банкомат (схемаи виртуалии банкомат), dsmark (маркери хидматрасонии тафриқашуда), tcindex (index-control traffic) ва RSVP (протоколи захиракунии захираҳо) қатъ карда шуд. Ин фанҳо муддати тӯлонӣ тарк карда шудаанд ва касе намехост, ки дастгирии онҳоро идома диҳад.
  • Таҷҳизот
    • Ҳама драйверҳои графикӣ дар асоси DRI1 хориҷ карда шуданд: i810 (кортҳои графикии кӯҳнаи ҳамгирошудаи Intel 8xx), mga (Matrox GPU), r128 (ATI Rage 128 GPU, аз ҷумла кортҳои Rage Fury, XPERT 99 ва XPERT 128), ваҳшӣ (S3 Savage GPU), sis (Crusty SiS GPU), tdfx (3dfx Voodoo) ва via (VIA IGP), ки дар соли 2016 бекор карда шуда буданд ва аз соли 2012 дар Mesa дастгирӣ карда намешаванд.
    • Драйверҳои пешинаи Framebuffer (fbdev) omap1, s3c2410, tmiofb ва w100fb хориҷ карда шуданд.
    • Драйвери DRM барои воҳидҳои VPU (Versatile Processing Unit) илова карда шуд, ки ба CPU Intel Meteor Lake (насли 14-ум) муттаҳид карда шудааст, ки барои суръат бахшидан ба амалиёти марбут ба биниши компютер ва омӯзиши мошин пешбинӣ шудааст. Драйвер бо истифода аз зерсистемаи "суръат" амалӣ карда мешавад, ки барои дастгирии суръатбахшҳои ҳисоббарорӣ нигаронида шудааст, ки мумкин аст дар шакли ASIC-ҳои инфиродӣ ё ҳамчун блокҳои IP дар дохили SoC ва GPU таъмин карда шаванд.
    • Драйвери i915 (Intel) дастгирии кортҳои графикии дискретии Intel Arc (DG2/Alchemist)-ро васеъ мекунад, дастгирии пешакиро барои GPU-ҳои Meteor Lake таъмин мекунад ва дастгирии GPU-ҳои Intel Xe HP 4tile-ро дар бар мегирад.
    • Драйвери amdgpu дастгирии технологияи AdaptiveSync ва қобилияти истифодаи режими намоиши бехатарро бо намоишҳои сершумор илова мекунад. Дастгирии навсозии DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x ва DP 2.1.
    • Драйвери msm (Qualcomm Adreno GPU) барои платформаҳои SM8350, SM8450 SM8550, SDM845 ва SC8280XP дастгирӣ илова кардааст.
    • Ронандаи Nouveau дигар зангҳои кӯҳнаи ioctl -ро дастгирӣ намекунад.
    • Дастгирии таҷрибавӣ барои NPU VerSilicon (VeriSilicon Neural Processor Network) ба драйвери etnaviv илова карда шудааст.
    • Драйвери pata_parport барои дискҳои IDE тавассути порти мувозӣ пайваст карда шудааст. Драйвери иловашуда ба мо имкон дод, ки драйвери кӯҳнаи PARIDE-ро аз ядро ​​хориҷ кунем ва зерсистемаи ATA-ро навсозӣ кунем. Маҳдудияти драйвери нав ин имконнопазирии ҳамзамон пайваст кардани принтер ва диск тавассути порти параллелӣ мебошад.
    • Драйвери ath12k барои кортҳои бесим дар микросхемаҳои Qualcomm, ки Wi-Fi 7-ро дастгирӣ мекунад, илова карда шуд. Дастгирии кортҳои бесим дар микросхемаҳои RealTek RTL8188EU илова карда шуд.
    • Дастгирии иловагии 46 тахта бо протсессори меъмории ARM64, аз ҷумла Samsung Galaxy tab A (2015), Samsung Galaxy S5, BananaPi R3, Debix Model A, EmbedFire LubanCat 1/2, Facebook Greatlakes, Orange Pi R1 Plus, Tesla FSD ва инчунин дастгоҳҳо дар асоси SoC Qualcomm MSM8953 (Snapdragon 610), SM8550 (Snapdragon 8 Gen 2), SDM450 ва SDM632, Rockchips RK3128 қуттии телевизионӣ, RV1126 Vision, RK3588, RK3568, RK3566, RK3588 ( /AM3328 3/ AM642 / AM654).

Ҳамзамон, Фонди нармафзори озоди Амрикои Лотинӣ як версияи ядрои комилан озоди 6.3 - Linux-libre 6.3-gnu -ро ташкил дод, ки аз унсурҳои нармафзор ва драйверҳои дорои ҷузъҳои ғайриозод ё қисмҳои код, ки доираи онҳо маҳдуд аст, тоза карда шудааст. аз ҷониби истеҳсолкунанда. Дар версияи 6.3, блокҳо дар драйверҳои нави ath12k, aw88395 ва peb2466, инчунин дар файлҳои нави devicetree барои дастгоҳҳои qcom дар асоси меъмории AArch64 тоза карда шуданд. Рамзи тозакунии blob дар драйверҳо ва зерсистемаҳои amdgpu, xhci-rcar, qcom-q6v5-pas, sp8870, av7110, инчунин дар драйверҳо барои кортҳои DVB бо рамзгузории нармафзор ва файлҳои пешакӣ тартибдодашудаи BPF. Тоза кардани драйверҳои mga, r128, tm6000, cpia2 ва r8188eu аз замони хориҷ кардани онҳо аз ядро ​​қатъ карда шуд. Тозакунии блоби драйвери i915 беҳтар карда шуд.

Манбаъ: opennet.ru

Илова Эзоҳ