Միջուկի թողարկում Linux 6.18

Երկու ամսվա մշակումից հետո Լինուս Տորվալդսը թողարկեց միջուկը։ Linux 6.18. Առավել նշանակալի փոփոխությունների շարքում՝ dm-pcache՝ սկավառակի քեշավորման համար ոչ ցնդող հիշողության մեջ (PMEM), Bcachef-ների հեռացում, XFS-ի առցանց ստուգման ռեժիմ, Binder դրայվերներ (Android IPC) և Tyr (GPU Mali) Rust-ում, USB դրայվերներ ստեղծելու հնարավորություն Rust-ում, քեշավորման օպտիմալացում SLUB հիշողության բաշխիչում, անվանատարածքների հասցեագրում ֆայլերի նկարագրիչներով, փոխանակման արագացում, BPF ծրագրերի ստուգում թվային ստորագրությամբ, Intel CET-ի վիրտուալիզացիա KVM-ում, PSP ցանցային արձանագրություն (TLS-ի և IPsec-ի հիբրիդ), AccECN IP ընդլայնման աջակցություն, UDP կույտի օպտիմալացում։

Նոր տարբերակը ներառում է 15035 մշակողների կողմից կատարված 2217 ուղղում, թարմացման չափը 45 ՄԲ է (փոփոխությունները ազդել են 13142 ֆայլի վրա, ավելացվել է կոդի 601897 տող, ջնջվել է 355006 տող): Վերջին թողարկումն ուներ 14334 շտկում 2118 մշակողների կողմից, թարմացման չափը 46 ՄԲ էր։ 40 տարբերակում ներկայացված բոլոր փոփոխությունների մոտ 6.18%-ը կապված է սարքերի դրայվերների հետ, փոփոխությունների մոտ 16%-ը՝ սարքավորումների ճարտարապետությանը հատուկ կոդի թարմացման հետ, 12%-ը՝ ցանցային փաթեթի, 5%-ը՝ ֆայլային համակարգերի, իսկ 3%-ը՝ ներքին միջուկային ենթահամակարգերի հետ։

6.18 միջուկի հիմնական նոր հնարավորությունները (1, 2, 3):

  • Սկավառակի ենթահամակարգ, I/O և ֆայլային համակարգեր
    • Dm-pcache մշակիչը ավելացվել է Device Mapper-ին՝ մշտական ​​հիշողությունը (CXL հիշողություն, որը հասցեագրվում է DAX սարքի միջոցով) օգտագործելու համար որպես լրացուցիչ բարձր արդյունավետությամբ քեշ՝ ավելի դանդաղ ավանդական սկավառակների կամ ֆլեշ կրիչների առջև: Dm-pcache-ը ապահովում է, որ քեշի պարունակությունը պահպանվի վթարի դեպքում (վթարից պաշտպանված)՝ օգտագործելով ոչ անկայուն հիշողություն, կրկնօրինակելով մետատվյալները և ստուգելով տվյալների և մետատվյալների ամբողջականությունը՝ օգտագործելով CRC32 ստուգիչ գումարներ: Ներկայումս աջակցվում է միայն հետգրման քեշավորումը:
    • Bcachefs ֆայլային համակարգի կոդը հեռացվել է միջուկից և այժմ կբաշխվի որպես արտաքին մոդուլ, որը կառուցվել է DKMS (Dynamic Kernel Module Support) գործիքակազմի միջոցով: Bcachefs կոդը կարող է վերականգնվել միջուկում, երբ Քենթ Օվերսթրիթը ցուցադրի իր կարողությունը՝ ճիշտ փոխազդելու այլ միջուկի մշակողների հետ և հետևելու սահմանված մշակման ուղեցույցներին:
    • RWF_NOSIGNAL դրոշը ավելացվել է pwritev2() համակարգային կանչին՝ SIGPIPE ազդանշանի ուղարկումը անջատելու համար՝ կոտրված, անանուն խողովակների կամ սոկետների վրա գրելիս։
    • Procfs-ում ավելացվել է «pidns» միացման տարբերակ՝ պրոցեսի ID անվանատարածքները (PID անվանատարածքներ) նշելու համար: Օրինակ՝ «mount -t proc -o pidns=/proc/self/ns/pid proc /tmp/proc»:
    • XFS-ը հայտարարվել է կայուն և լռելյայնորեն թույլատրվել է օգտագործել fsck ծրագիրը՝ հայտնաբերված խնդիրները առցանց ստուգելու և շտկելու համար՝ առանց ֆայլային համակարգը ապամոնտաժելու: Ավելացվել են file_getattr և file_setattr համակարգային կանչերը՝ հատուկ ֆայլերի (ցանկացած inode) ատրիբուտները փոխելու համար: XFS_SUPPORT_V4 (XFS տարբերակ 4) և XFS_SUPPORT_ASCII_CI (մեծատառերի նկատմամբ զգայուն ASCII ռեժիմ) ընտրանքներն այժմ լռելյայնորեն անջատված են KConfig-ում և հնացել են: Հնացած attr2, noattr2, ikeep և noikeep միացման ընտրանքները հեռացվել են:
    • MD RAID-ը ներդնում է բիթմապերի նոր տեսակ՝ llbitmap (կողպեքազուրկ բիթմապ), որը գործում է առանց կողպեքների և ապահովում է ավելի բարձր արդյունավետություն։
    • Գաղտնագրման և ստուգման հետ կապված տեղեկատվությունը (i_crypt_info և i_verity_info ցուցիչները) հեռացվել է ընդհանուր «inode» կառուցվածքից։ Այս փոփոխությունը նվազեցնում է հիշողության սպառումը ֆայլային համակարգերում, որոնք չեն աջակցում կոդավորումը և ստուգմանը։
    • FUSE ենթահամակարգն այժմ աջակցում է copy_file_range() համակարգային կանչին և միջակայքի ուղիղ պատճենահանմանը՝ օգտագործելով 64-բիթանոց չափի տեսակ (նախկինում աջակցվում էր միայն 32-բիթանոց չափը): Ավելացվել է համաժամանակյա նախնականացման աջակցություն միացման ընթացքում (FUSE_DEV_IOC_SYNC_INIT):
    • Ext4 ֆայլային համակարգը այժմ աջակցում է 32-բիթանոց օգտատիրոջ ID-ների (uid) և խմբային ID-ների (gid) օգտագործումը՝ ամրագրված բլոկներին մուտք գործելիս: Ավելացվել են Ioctl գործողություններ՝ միացված ֆայլային համակարգերի համար superblock պարամետրերը սահմանելու և կարդալու համար (tune2fs-ը այժմ կարող է փոխել superblock պարամետրերը՝ առանց բլոկային սարքին գրելու թույլտվություն պահանջելու): Ext3-ի համար նախատեսված հնացած կարգավորումները ամբողջությամբ հեռացվել են:
    • f2fs-ում ավելացվել է "lookup_mode" միացման տարբերակ՝ որոնման ռեժիմն ընտրելու համար. perf (հեշ որոնում), compat (գծային որոնում) կամ auto (ավտոմատ ընտրություն): Ռեժիմի փոփոխությունը օգտակար է մեծատառերի նկատմամբ զգայուն չլինող գրացուցակների կարգավորումների համար: Ընթացիկ որոնման ռեժիմը կարելի է գտնել "/sys/fs/f2fs/" ֆայլում: /effective_lookup_mode": Ավելացվել է միայն արտոնյալ օգտատերերին հասանելի ինոդերը պահուստավորելու հնարավորություն:
    • Overlayfs-ը այժմ աջակցում է մեծատառերի և մեծատառերի նկատմամբ զգայուն գործողությունը, որը կարող է միացվել ֆայլային համակարգի շերտի մակարդակում (առանձին գրացուցակների համար կարգավորումը դեռևս չի աջակցվում):
    • BTRFS-ը բարելավում է գործողությունների զուգահեռացումը բարձր ընթերցման և ցածր գրման բեռների դեպքում, կրճատում է գործարքների կատարման ժամանակը և զգալիորեն կրճատում է համաժամացման ժամանակը (րոպեներից մինչև տասնյակ վայրկյաններ): Այժմ հասանելի է հիշողության էջից (ps) մեծ բլոկներ (bs) օգտագործելու հնարավորությունը:
    • ksmbd-ին (միջուկի վրա հիմնված SMB սերվեր) ավելացվել է պարամետր՝ մեկից միացումների առավելագույն քանակը սահմանափակելու համար։ IP հասցեներ.smbdirect, smbclient և smbserver-ները փոխվել են՝ օգտագործելով ստանդարտ միջուկի կառուցվածքներ։
    • SQUASHFS-ը այժմ աջակցում է SEEK_DATA և SEEK_HOLE տարբերակները lseek() համակարգային կանչում՝ նոսր ֆայլերում տվյալներ և անցքեր որոնելու համար: Որոշ փորձարկումներ ցույց են տվել նոսր ֆայլերի պատճենման մինչև 150 անգամ կատարողականի բարելավում:
    • EXFAT-ը այժմ աջակցում է FS_IOC_GETFSLABEL և FS_IOC_SETFSLABEL ioctls ֆայլերը՝ բաժանման պիտակները կարդալու և գրելու համար: Այն այժմ թույլ է տալիս փոխել միացման տարբերակները վերամիացման ընթացքում: Բիթմապի բեռնման արդյունավետությունը բարելավվել է:
    • NTFS3-ը աջակցում է ioctls FS_IOC_GETFSLABEL և FS_IOC_SETFSLABEL ֆայլերին՝ բաժանման պիտակները կարդալու և սահմանելու համար։
  • Հիշողության և համակարգի ծառայություններ
    • Ընդունվում է Rust լեզվով գրված Binder միջգործընթացային հաղորդակցման մեխանիզմի իրականացումը։ Binder-ը օգտագործվում է Android կազմակերպել գործընթացների և հեռակա մեթոդների կանչերի միջև փոխազդեցությունը (մեկ գործընթաց) Android կարող է կանչել մեթոդ կամ ֆունկցիա մեկ այլ պրոցեսում Android, օգտագործելով Binder-ը՝ պրոցեսների միջև արգումենտներ նույնականացնելու, կանչելու և փոխանցելու համար): Binder-ի կոդը վերաշարադրվել է Rust-ում՝ Google-ի անվտանգության նախաձեռնության շրջանակներում: Android.
    • SLUB-ը՝ միջուկի հիշողության բաշխիչը, իրականացնում է լրացուցիչ «շերտերի» քեշավորման շերտ: Այն օգտագործում է բազմաթիվ քեշեր, որոնցից յուրաքանչյուրը կապված է առանձին պրոցեսորի միջուկի հետ, ինչը թույլ է տալիս հիշողության բաշխման և ապաբաշխման գործողությունները տեղայնացնել մեկ միջուկում: Այս քեշը բարելավում է միջուկում հիշողության բաշխման և ապաբաշխման արդյունավետությունը՝ վերացնելով ավելորդ համաժամացման պրիմիտիվները, որոնք անհրաժեշտ են բազմաթիվ պրոցեսորի միջուկներ ներառելիս: Մեր փորձարկումներում արդյունավետության աճը տատանվում էր 6.3%-ից մինչև 31%՝ կախված աշխատանքային ծանրաբեռնվածությունից:
    • Ավելացվել է որոշակի անվանատարածքի հետ կապված ֆայլերի նկարագրիչներ ստեղծելու հնարավորություն։ Ի տարբերություն անվանատարածքներին նույնականացուցիչներով մուտք գործելու (/proc/) /ns/), ֆայլի նկարագրիչը նշանակվում է որոշակի անվանատարածքի օրինակի և կանխում է նույնականացուցիչի վերաբաշխումը և այլ օբյեկտի ուղղորդումը: Pidfds-ի նման, անվանատարածքներին հղում կատարող ֆայլի նկարագրիչների բացումը կատարվում է open_by_handle_at() և name_to_handle_at() ֆունկցիաների միջոցով:
    • Փոխանակման կատարողականությունը բարելավելու համար ներդրվել է «Փոխանակման աղյուսակ» մեխանիզմ: Այս բարելավումը ձեռք է բերվել փոխանակման քեշի կոնֆլիկտի նվազեցման, քեշի ավելի արդյունավետ որոնումների և մասնատման նվազեցման միջոցով: Փոխանակման աղյուսակի վրա հիմնված backend-ը օգտագործվում է փոխանակման քեշավորման համար XArray backend-ի փոխարեն, և հանգեցրել է միջինում 5-20% կատարողականի բարելավման: Usemem թեստում թողունակությունն աճել է 17-28%-ով, բազմաթելային միջուկի վերակառուցման թեստում կառուցման ժամանակը նվազել է 1.12-3.19%-ով, իսկ BGSAVE-ով redis-benchmark թեստը ցույց է տվել մշակված հարցումների քանակի 6-7% աճ:
    • Zswap ենթահամակարգը տեղափոխվել է zsmalloc հիշողության բաշխման համակարգն անմիջապես օգտագործելու համար՝ zpool շերտի փոխարեն, որն այլևս ոչ մի տեղ չի օգտագործվում և այժմ հեռացվել է միջուկից։
    • X86 համակարգերի վրա միկրոկոդի բեռնիչի վարքագիծը կառավարելու համար ներդրվել է "microcode=flaglist" հրամանային տողի տարբերակը: Իր ներկայիս տեսքով այս նոր տարբերակը փոխարինում է "microcode.force_minrev" տարբերակին և թույլ է տալիս նշել բեռնման համար թույլատրված միկրոկոդի նվազագույն տարբերակը:
    • Սկսվել են RAM էջերը կառավարելու համար օգտագործվող չափազանց ուռած «էջի» կառուցվածքի վերակազմակերպման աշխատանքները: 'memdesc_flags_t' տեսակը ավելացվել է ընդհանուր նշանակության դրոշներով դաշտերի համար, որոնք կարող են օգտագործվել «էջի» կառուցվածքից սալիկների և թերթիկների համար առանձին կառուցվածքների ապագա առանձնացումից հետո:
    • Altera Nios II պրոցեսորներում (FPGA-ի վրա հիմնված ծրագրային պրոցեսոր) օգտագործվող nios2 ճարտարապետության համար իրականացվել է clone3() համակարգային կանչի աջակցությունը։
    • «Անցումային» ատրիբուտը ավելացվել է միջուկի կոնֆիգուրացիային (KConfig): Այն կարող է օգտագործվել այն կարգավորումները նշելու համար, որոնք չեն ցուցադրվում օգտագործողի ինտերֆեյսներում, օրինակ՝ «make menuconfig», և չեն ներառվում ստեղծված կոնֆիգուրացիայի ֆայլերում: Այս ատրիբուտի հիմնական նպատակն է պարզեցնել անվանափոխման տարբերակները՝ միաժամանակ պահպանելով հետադարձ համատեղելիությունը:
    • Clang կոմպիլյատորի միջուկը կառուցելու համար նվազագույն տարբերակը մեծացվել է մինչև LLVM 15։ Debian 12 և Ubuntu LLVM 14-ը առաքվել է 22.04-ին։
    • Rust-for- ճյուղից փոփոխությունների շարունակական տեղափոխումLinuxԿապված է Rust-ը որպես երկրորդ լեզու օգտագործելու հետ դրայվերների և միջուկի մոդուլների մշակման համար (Rust-ի աջակցությունը լռելյայնորեն միացված չէ և չի ներառում Rust-ը որպես միջուկի կառուցման պարտադիր կախվածություն): Նոր տարբերակը իրականացնում է ատոմային հիշողության գործողություններ, թխկու ծառի կառուցվածք, DebugFS ֆայլեր ստեղծելու հնարավորություն և Rust կոդի համար բիթմապ մանիպուլյացիայի ֆունկցիաներ: Դրայվերի մշակման API-ին մուտքը ընդլայնվել է: Ավելացվել է USB սարքի դրայվերներ մշակելու համար աբստրակցիաների ամբողջական հավաքածու (USB դրայվերի օրինակ): perf ծրագիրը այժմ աջակցում է rustc կոմպիլյատորի կողմից ստեղծված վրիպազերծման խորհրդանիշներին:
  • Վիրտուալացում և անվտանգություն
    • Ավելացվել է ներբեռնված BPF ծրագրերի կրիպտոգրաֆիկ ստուգման աջակցություն՝ թվային ստորագրության միջոցով: Այս հնարավորությունը հետագայում կընդլայնվի՝ ներառելով ստորագրված BPF ծրագրերի ներբեռնման կանոններ սահմանելու և արտոնություններ չունեցող օգտատերերին ստուգված BPF ծրագրերն օգտագործելու հնարավորություն ընձեռելու գործիքներ:
    • KVM հիպերվիզորը աջակցում է Intel CET (Control-flow Enforcement Technology) վիրտուալացման ընդլայնմանը, որը պաշտպանում է վերադարձ-կողմնորոշված ​​ծրագրավորման (ROP) տեխնիկաների միջոցով շահագործումներից: Այս պաշտպանությունը գործում է՝ ֆունկցիայի վերադարձի հասցեն պահելով ոչ միայն սովորական ստեկի, այլև առանձին ստվերային ստեկի վրա, որը չի կարող ուղղակիորեն փոփոխվել:
    • Ավելացվել է 255-ից ավելի պրոցեսորներ օգտագործելու հնարավորություն այն հյուրերի մոտ, որոնք աշխատում են Bhyve հիպերվիզորով FreeBSD 15 հոսթերի վրա։
    • Ավելացվել է dibs (Direct Internal Buffer Sharing) շերտ՝ բուֆերների վերահսկվող համատեղ օգտագործման համար մեկուսացված միջավայրում, ինչպիսիք են հիպերվիզորը կամ միջուկի օրինակը։ Linux.
    • Աուդիտի ենթահամակարգն այժմ աջակցում է միաժամանակ միացված մի քանի LSM մոդուլների հետ աշխատանքը (Linux Անվտանգության մոդուլ):
    • Ավելացվել է virtio spi-virtio դրայվերը՝ SPI (Serial Peripheral Interface) սարքին մուտք գործելու համար։ վիրտուալ մեքենա.
    • KVM հիպերվիզորն այժմ աջակցում է SEV-SNP CipherText Hiding ռեժիմը, որը արգելափակում է պաշտպանված հյուր համակարգի հիշողության գաղտնագրված տեքստի ընթերցումը չարտոնված պրոցեսորի վրա։
    • Ավելացվել է qtee դրայվեր Qualcomm չիպերի TEE (Trusted Execution Environment) միջավայրերի համար։
  • Ցանցային ենթահամակարգ
    • Ավելացվել է կոդավորված TCP միացումների աջակցություն՝ օգտագործելով PSP անվտանգության արձանագրությունը (PSP), որը մշակվել է Google-ի կողմից տվյալների կենտրոնների միջև երթևեկության կոդավորման համար: PSP-ն ապահովում է կոդավորում, կրիպտոգրաֆիկ ամբողջականության վերահսկում և աղբյուրի նույնականացում՝ իրականացնելով TLS և IPsec հնարավորությունների եզակի համադրություն: PSP-ն կիրառում է կոդավորումը առանձին ցանցային միացումների մակարդակում, այլ ոչ թե ամբողջ հաղորդակցման ալիքի: PSP-ն օգտագործում է առանձին կոդավորման բանալիներ տարբեր թունելային TCP միացումների համար՝ տարբեր ծրագրերից և մշակիչներից երթևեկությունը խստորեն մեկուսացնելու համար: CPU-ի ծանրաբեռնվածությունը նվազեցնելու համար կոդավորման և վերծանման գործողությունները տեղափոխվում են ցանցային քարտեր (բեռնաթափում): UDP-ն օգտագործվում է որպես տվյալների փոխանցման արձանագրություն, որի միջոցով փոխանցվում է սկզբնական TCP փաթեթի պարունակությունը:

      Միջուկի թողարկում Linux 6.18
    • Սկզբնական աջակցություն է ավելացվել Accurate Explicit Congestion Notification (AcECN) ընդլայնման համար: Այս ընդլայնումը ECN ընդլայնման բարելավված տարբերակն է, որը թույլ է տալիս հոսթերին նշել IP փաթեթները գերբեռնվածության դեպքում՝ դրանք ջնջելու փոխարեն, ինչը հնարավորություն է տալիս հայտնաբերել գերբեռնվածության սկիզբը կապի ալիքներում՝ առանց փաթեթների կորստի: Սկզբնական ECN ընդլայնումն ունի սահմանափակում՝ թույլ տալով բարձրացնել միայն մեկ գերբեռնվածության ազդանշան մեկ TCP երկկողմանի երթուղու ընթացքում (RTT, երկկողմանի երթուղու ժամանակ, հարցում ուղարկել և պատասխան ստանալ): AccECN-ը վերացնում է այս սահմանափակումը և թույլ է տալիս ընդունողին TCP փաթեթի վերնագրում ուղարկել մեկից ավելի գերբեռնվածության ազդանշան ուղարկողին: Գերբեռնվածության կառավարման ալգորիթմները կարող են օգտագործել այս տեղեկատվությունը՝ գերբեռնվածությանը ավելի ճշգրիտ արձագանքելու և փաթեթների արագության կտրուկ նվազումից խուսափելու համար, երբ տեղի է ունենում աննշան գերբեռնվածություն:
    • UDP փաթեթը օպտիմալացվել է DDoS հարձակումների դեպքում մուտքային փաթեթները մշակելու համար, որոնց արդյունքում մեծ թվով փաթեթներ են ժամանում մեկ կամ մի քանի UDP սոկետների վրա: Օպտիմալացումները, ինչպիսիք են մրցակցության նվազեցումը, հիշողության մեջ տվյալների կառուցվածքների դասավորության օպտիմալացումը և NUMA (Non-Uniform Memory Access)-ի կողմից ճանաչված կողպեքների օգտագործումը, բարձրացրել են UDP փաթեթների ընդունման արդյունավետությունը 47%-ով կամ ավելիով՝ ծայրահեղ պայմաններում:
    • NFS սերվերում ներդրվել է մուտք/ելքի քեշավորումը անջատելու հնարավորությունը, որը թույլ է տալիս NFS սերվերն օգտագործել սահմանափակ հիշողությամբ համակարգերում (օրինակ՝ սահմանափակ ամպային միջավայրեր): Քեշի անջատումը կարող է նաև օգտակար լինել ծանրաբեռնված NFS սերվերների վրա՝ կանխելու համար տեղական պահեստին կապված տվյալների քեշից դուրսբերումը՝ NFS քեշի համար հիշողության ազատման պատճառով:
    • Ցանցային միակցիչների (net.core.rmem_max և net.core.wmem_max) մուտքային և ելքային փաթեթային բուֆերների առավելագույն չափը 2 ՄԲ-ից մեծացվել է մինչև 4 ՄԲ: Լռելյայն չափը մնում է անփոփոխ (net.core.rmem_default և net.core.wmem_default = 2 ՄԲ):
    • Ավելացվել է Qualcomm IPQ9574 SoC-ում օգտագործվող Qualcomm PPE (Packet Processing Engine) ցանցային արագացուցիչի դրայվեր։
  • սարքավորում
    • Rust-ով գրված Tyr դրայվերը ինտեգրվել է միջուկի մեջ։ Այն աջակցում է ARM Mali GPU-ներին, որոնք օգտագործում են Command Stream Frontend (CSF) տեխնոլոգիան, ինչպիսիք են Mali G310-ը, G510-ը և G710-ը։ Դրայվերը դեռևս պատրաստ չէ սովորական օգտատերերի կողմից կանոնավոր օգտագործման համար և համարվում է փորձարարական նախատիպ՝ Rust-ում դրայվերների մշակման համար աբստրակցիաների փորձարկման համար։
    • HID (Մարդու ինտերֆեյսի սարք) մուտքային սարքերի դրայվերներին ավելացվել է հպտիկ հետադարձ կապի և ճնշման սենսորներով սենսորային վահանակների աջակցություն։
    • Աշխատանքները շարունակվել են Intel Xe ճարտարապետության վրա հիմնված GPU-ների համար նախատեսված Xe DRM (Direct Rendering Manager) դրայվերի վրա, որն օգտագործվում է Intel Arc շարքի տեսաքարտերում և ինտեգրված գրաֆիկայում՝ սկսած Tiger Lake պրոցեսորներից: Նոր տարբերակը ավելացնում է madvise ինտերֆեյսը, հնարավորություն է տալիս աջակցել SR-IOV PF-ին (Single Root I/O Virtualization Physical Function), ավելացնում է Intel PSMI ռեժիմի աջակցությունը սարքավորումների վավերացման համար, ապահովում է ներկառուցված ծրագրի կողմից փոխանցվող սխալի տեղեկատվության մշակումը, իրականացնում է SLPC էներգիայի պրոֆիլը և ավելացնում է օժանդակ ներկառուցված ծրագրի բեռնման աջակցություն (օրինակ՝ օդափոխիչի կառավարիչի և լարման կարգավորիչի համար) դրայվերի վավերացման ընթացքում:
    • AMDGPU դրայվերն այժմ աջակցում է Cyan Skillfish APU-ներով սարքերին, բարելավում է AMD GCN 1.0-ի աջակցությունը, ավելացնում է համատեղելիություն criu գործիքակազմի հետ, ավելացնում է ջերմաստիճանի չափանիշներ sysfs-ին և թույլ է տալիս MMIO-ին վերամպակցել հարցումները օգտատիրոջ տարածքից։
    • i915 դրայվերը ներառում է Wildcat Lake չիպերի ընտանիքի աջակցությունը և բարելավում է Jasper Lake, Elkhart Lake, Gen7 և Gen6 գրաֆիկական պրոցեսորների աշխատանքը։
    • Nouveau դրայվերը լռելյայնորեն օգտագործում է NVIDIA GSP ներկառուցված ծրագիրը և ունի բարելավված սխալների մշակում։
    • NVIDIA GeForce RTX 2000 շարքից սկսած Turing միկրոճարտարապետության վրա հիմնված GSP ծրագրակազմով հագեցած NVIDIA գրաֆիկական քարտերի համար Nova դրայվերի բաղադրիչների ինտեգրումը շարունակվել է։ Դրայվերը գրված է Rust լեզվով։ Նոր տարբերակը ընդլայնում է GSP ծրագրակազմի աջակցությունը, բարելավում է "register!" մակրոյի իրականացումը և ավելացնում է PCI սարքերի դասերի և մատակարարների ID-ների աջակցությունը։
    • Ավելացվել է հրթիռային դրայվեր Rockchip RK3588 SoC-ում օգտագործվող NPU արագացուցիչների համար։
    • Ավելացվել է «boot_display» միջուկի պարամետրը՝ բազմակի GPU-ներով համակարգերի վրա բեռնման գործընթացը ցուցադրելու ելքային սարքը ընտրելու համար։
    • vesadrm դրայվերը աջակցում է 8-բիթային պալիտրաներին։
    • MSM դրայվերը թարմացվել է՝ Adreno 663 GPU-ն աջակցելու համար և ներառում է IFPC (Inter Frame Power Collapse) էներգասպառման կրճատման տեխնոլոգիայի աջակցությունը։
    • Panthor դրայվերը ավելացրել է աջակցություն Mali-G710, Mali-G510, Mali-G310, Mali-Gx15, Mali-Gx20 և Mali-Gx25 գրաֆիկական պրոցեսորների համար։
    • Ավելացվել է հետևյալ ASoC ձայնային համակարգերի աջակցությունը՝ Qualcomm Glymur և PM4125, Realtek RT1321, Shanghai FourSemi FS2104/5S, Texas Instruments PCM1754 և TAS2783A, qcs615, CS35L56 B2, tas2118, tas2x20 և tas5825: Ավելացվել է Tascam US-144mkII և Presonus S1824c USB ձայնային քարտերի աջակցություն:
    • Ավելացվել է ARM CPU Cortex-A320/A520AE/A720AE և C1-Nano/Pro/Premium/Ultra պրոցեսորների աջակցությունը։
    • Ավելացվել է ARM տախտակների, SoC-ների և սարքերի աջակցություն՝ Apple M2 Pro, M2 Max և M2 Ultr, Sony Xperia SP, Samsung Galaxy S22, Samsung Galaxy S20 FE, ASUS Eee Pad Slider SL101, Lenovo ThinkBook 16, HP Omnibook X14 X1P42100, Dell Inspiron 7441 / Latitude 7455, Sige1, NanoPi Zero2, Axis Artpec8, NXP i.MX91, ROCK 2A/2F, Qualcomm Lemans Auto, Renesas RZ/T2H, RZ/N2H, RZ/T2H և RZ/N2H, Aspeed AST27xx, Meta Clemente BMC, Netcube Nagami som, Tqma91xx, Ultratronik i.MX8MP Ultra-MACH, i.MX8ULP EVK9, Buffalo WXR-1750DHP,

Միևնույն ժամանակ, Լատինական Ամերիկայի ազատ ծրագրային ապահովման հիմնադրամը ստեղծեց լիովին անվճար միջուկի 6.18 տարբերակը՝ Linux-libre 6.18-gnu, մաքրված է ոչ ազատ բաղադրիչներ կամ սահմանափակ շրջանակ ունեցող կոդի բաժիններ պարունակող ներկառուցված ծրագրային ապահովման և դրայվերի տարրերից: 6.18 թողարկումը ներառում է թարմացված blob մաքրման կոդ Nova-Core, Intel XE, TI PRUeth, Lantiq GSWIP և Marvell WiFi-Ex դրայվերներում: Qualcomm, Mediatek և TI ARM64 ARM չիպերի devicetree (.dts) ֆայլերում blob անունները մաքրվել են: Blob բեռնումը անջատվել է նոր FourSemi fs2104/5s, TI TAS2783 և Qualcomm GENI դրայվերներում:

Source: opennet.ru

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster