Երկու ամսվա մշակման արդյունքում Linus Torvalds-ը ներկայացրեց Linux 6.18-ի միջուկի թողարկումը: Թերևս առավել աչքի ընկնող փոփոխություններն են՝ dm-pcache անդաատոմիկ հիշողության (PMEM) համար սկավառակի նավթագունավորում, Bcachefs-ի իսկական եղանակի հեռացում, XFS-ի առցանց ստուգման ռեժիմ, Binder (Android IPC) և Tyr (Mali GPU) համար Rust գրադարանները, USB-վարորդների ստեղծման հնարավորությունը Rust-ում, SLUB հիշողության ուղղարկչի նավթագունավորման օպտիմիզացում, ֆայլային նկարագրերի միջոցով անվան տարածքների հասցեավորում, փոխարկման (swap) արագության բարձրացում, BPF ծրագրերի թվային ստորագրությամբ մուտքի ստուգում, Intel CET վիրտուալիզացիա KVM-ում, PSP ցանցային հProtocols (TLS և IPsec-ի հիբրիդ), AccECN IP-երկարաձիգի աջակցության օպտիմիզացում:
Նոր տարբերակում ընդունվել է 15035 բնօրինակ 2217 մշակողների կողմից, փաթեթի չափը՝ 45 MB (փոփոխությունները առնչվում են 13142 ֆայլի, ավելացված 601897 կոդի շարքեր, հեռացվել 355006 շարքեր): Նախորդ թողարկությունում եղել է 14334 բնօրինակ 2118 մշակողների կողմից, փաթեթի չափը՝ 46 MB: 6.18-ում ներկայացված բոլոր փոփոխությունների մոտ 40%-ը վերաբերում է սարքերի վարորդներին, մոտ 16% փոփոխությունները կապված են սարքային ճարտարապետությանը հատուկ կոդի թարմացման, 12%-ը որոշվում է ցանցային փուլով, 5%-ը՝ ֆայլային համակարգերի շուրջ և 3%-ը միջուկի ներքին ենթակառուցվածքների շուրջ:
6.18-ի միջուկի հիմնական նորությունները (1, 2, 3):
- Դիսկային ենթակառուցվածք, մտցնում/արտահանում և ֆայլային համակարգեր
- Device Mapper-ում ավելացել է dm-pcache մշակող, որը թույլ է տալիս օգտագործել մշտական հիշողություն (CXL հիշողություն, որը հասցեավորված է DAX սարքով) ավելացված գերազանց բերող հիշողություն՝ ավելի դանդաղ ավանդական սկավառակային կամ ֆլեշ հիշողության առաջ: Dm-pcache-ն ապահովում է հիշողության բովանդակության պահպանում ցավալի դեպքերի դեպքում (crash-safe) օգտագործելով անդաատոմիկ հիշողություն, մետատվյալների կրկնօրինակում և տվյալների և մետատվյալների վերահսկման CRC32 արգումենտներ: Այժմ աջակցվում է միայն մաքրելիպճբային գրանցման ռեժիմ:
- Միջուկից հեռացվել է Bcachefs ֆայլային համակարգի կոդ, որը հիմա կհայտարարվի որպես արտաքին մոդուլ, որը կհավաքվի DKMS-ի (Dynamic Kernel Module Support) գործիքներով: Bcachefs-ի կոդը կարող է վերադարձվել միջուկի մեջ, երբ Kent Overstreet-ը փաստացի ապացուցի, որ կարող է կատարել հստակ փոխզոհաբանական համագործակցություն մյուս մշակողների հետ:
- pwritev2() համակարգային զանգմանը ավելացված RWF_NOSIGNAL նշանը, որը արգելում է SIGPIPE ազդանշանի ուղարկումը նկարագրված անվան (non-named) խողովակներում կամ սոքետներում գրանցման ժամանակ:
- Procfs-ում ավելացված է «pidns» մոնտաժման տարբերակ՝ գործընթացների նույնականացման տարածքների (PID namespace) ցուցադրելու համար: Օրգանական օրինակ՝ «mount -t proc -o pidns=\/proc\/self\/ns\/pid proc \/tmp\/proc».
- XFS-ում հայտարարված է կայուն և փոխանցված է ծանոթ միջավայրում fsck ծառայության օգտագործման հնարավորությունը, որը թույլ է տալիս որոշում և շտկել խնդիրները առցանց ռեժիմում, առանց ֆայլային համակարգի անջատման: Ավելացել են file_getattr և file_setattr համակարգային կանչերը հատուկ ֆայլերի (առաջին անցում) հատկությունների փոփոխության համար։ KConfig- ում ըստ նախակառուցված է անջատված XFS_SUPPORT_V4 (XFS-ի 4-րդ տարբերակը) և XFS_SUPPORT_ASCII_CI (ASCII ողջումով առանց մեծ/ցածր գրառում) հնարավորությունները, որոնք հայտարարված են դադարեցված։ Դադարեցվել են attr2, noattr2, ikeep և noikeep հին ձեւաչափերը։
- MD RAID-ում իրականացված է նոր բիթային քարտերի տիպ՝ llbitmap (без блокировок), որը աշխատում է առանց արգելակման և ապահովում է ավելի բարձր կատարողականություն։
- Կանոնակարգի ընդհանուր կառուցվածքից "inode" դուրս են բերվել տվյալներ, որոնք կապված են կոդավորման և վավերացման հետ (i_crypt_info և i_verity_info ցուցանիշներ)։ Փոփոխությունն իրագործման համար հնարավորություն է տալիս նվազեցնել հիշողության սպառումը ֆայլային համակարգերում, որոնք չեն աջակցում կոդավորմանը և վավերացմանը։
- FUSE ենթամիջոցում ավելացված է copy_file_range() համակարգային կանչի աջակցում և ուղիղ պատճենահանում դիապազոնների մեծության հետ 64-բիթանի տիպով (նախկինում աջակցվում էր միայն 32-բիթանի չափը)։ Ավելացված է синхронный режимի ներմուծման հնարավորություն պահելու ժամանակ (FUSE_DEV_IOC_SYNC_INIT)։
- ext4 ֆայլային համակարգում հասանելի է 32-բիթանի օգտվողների (uid) և խմբերի (gid) ցուցանիշների օգտագործումը սահմանափակված բլոկներին հասանելիությունը։ Ավելացվել են ioctl- գործողությունները, ինչը հարմարեցում է ստանալու և արդյունավետությանը суперблок-ի պարամետրեր մասերում (tune2fs- ի միջոցով դուք կարող եք փոխել պարամետրերը суперблок-ի մեջ, առանց վավերագրությունում գրելու իրավունք ունեցող ձեզibling)). Բոլոր հին սահմանները, որոնք հատուկ для ext3, ամբողջությամբ հեռացված են։
- f2fs-ում ավելացված է "lookup_mode" մոնտաժման տարբերակը փնտրման ձևաչափի ընտրության համար․ perf — փնտրելու հեշով, compat — գծային փնտրելու, auto — ավտոմատ ընտրություն։ Փոփոխությունը իմաստ ունի հաստատված տեղադրումների համար, որտեղ մետաղական գրառումները հաշվի չեն առնվում։ Ընթացիկ փնտրելու ձևաչափը կարող եք վերաբերել "sys/fs/f2fs//effective_lookup_mode" ֆայլով։ Ավելացված է inode-ի պարբերական պահպանման հնարավորություն, որը հասանելի է միայն ավանդացված օգտվողներին։
- Overlayfs-ում ավելացվել է ռեժիմ առանց մեծ/ցածր գրառումների ջանքերում, որը կարող եք մուտքագրել ֆայլերի մակարդակում (հատուկdirectories-երի ցուցակը, կատարվելու համար, դեռևս չի աջակցվում)
- BTRFS-ում բարելավվել է գործողությունների թեքումը բարձր զննման բեռների և ցածր գրելու բեռների պայմաններում, իջեցված է գործարքների ամրագրելու ժամանակը, զգալիորեն նվազեցվել է համաժամեցման ժամանակը (րոպեներից հաշված վայելի). Арագուց թողել է բլոկների խնդիրը (bs), որոնք չափազանց նրբանկաղ են:
- ksmbd (SMB սերվերի մակարդակում աշխատող) ավելացվել է պարամետր, որը սահմանափակում է մեկ IP-հասցեներ. smbdirect, smbclient և smbserver տեղափոխվել են օգտագործելու հիմնական կառուցվածքներ։
- SQUASHFS-ում lseek() համակարգային կանչում ավելացվել է SEEK_DATA և SEEK_HOLE տարբերակների օգտագործման հնարավորությունը, որպեսզի գտվի տվյալներն ու դատարկ տեղերը ծակավոր ֆայլերում։ Որոշ փորձարկումներում նկատվել է ծակավոր ֆայլերի պատճենման արդյունավետության 150 անգամ ավելացում։
- EXFAT-ում ավելացված է ioctl FS_IOC_GETFSLABEL և FS_IOC_SETFSLABEL աջակցություն, որը թույլ է տալիս հատվածների պիտակների կարդալ և գրել։ Նոր հնարավորություն է թարմացվել հավաքման պարամետրերի փոփոխությունը կրկնակի հավաքման ժամանակ։ Ամբողջական մանրապատկերների загрузումը ավելացված արագությամբ։
- NTFS3-ում ավելացված է ioctl FS_IOC_GETFSLABEL և FS_IOC_SETFSLABEL աջակցություն, որը թույլ է տալիս հատվածների պիտակների կարդալ և սահմանել։
- Համակարգի հիշողություն և ծարայություններ
- ընդունվել է միջհաշվարկային փոխգործակցության Binder մեխանիզմի իրականացման նախագիծ, որը գրված է Rust լեզվով։ Binder-ը օգտագործվում է Android-ում պրոցեսների միջև փոխգործակցություն կազմակերպելու համար և հեռավոր մեթոդների կանչման համար (մեկ Android պրոցեսը կարող է կանչել մեթոդ կամ ֆունկցիա մեկ այլ Android պրոցեսում, օգտագործելով Binder-ը պրոցեսների միջև ճանաչելու, կանչելու և փաստարկները փոխանցելու համար)։ Binder-ի կոդը վերաշարադրված է Rust լեզվով Google-ի Android-ի ապահովության բարձրացման նախաձեռնության շրջանակներում։
- SLUB-ում, ядրի հիշողության հատկացման համակարգում, իրականացվել է տարբերակային «sheaves» կեշի շերտ, որն օգտագործում է մի քանի կեշ, որոնք կապված են առանձնահատուկ CPU միջուկի հետ, ինչը թույլ է տալիս մեկ միջուկին տեղայնացնել հիշողության հատկացնելու կամ ազատելու գործողությունները։ Այսպիսով, կեշը բարձրացրել է հիշողության հատկացման և ազատման արդյունավետությունը, քանի որ ազատեց տարբեր CPU միջուկների ներգրավվածության կապակցությամբ անհրաժեշտ ավելորդ համчасակից նախապատրաստական գործիքներից։ Վարած փորձարկումներում արդյունավետության աճը պայմանավորված էր 6.3%-ից մինչև 31%-ի միջև՝ կախված բեռի տեսակից։
- Ավելացված է որոշակի տարածքին (namespace) կապակցված ֆայլային նկարակնակումներ ստեղծելու հնարավորություն։ Ընդհանուր առմամբ, տարածքներով կապվելու համար, պարզեցումը, որ տեղի է ունենում նկարակն dobu արխիվային անհրաժեշտություն չունեցող թույլտվություններում (рogrп/╚pid╩ns/), ֆայլային նկարակնակումները մասնակիորեն վեր հանվում են կոնկրետ տարածքի օրինակից և բացառվում է իրավիճակը, երբ դիմադրողները կրկին տրվում են և ցույց են տալիս այլ օբյեկտներ։ Ինչպես pidfd-ների օգտագործման դեպքում, տարածքից նկարակնակումներին վերաբերող ֆայլային սակագները բացվում են open_by_handle_at() և name_to_handle_at() ֆունկցիաների միջոցով։
- «Swap Table» մեխանիզմը իրականացվել է, որը թույլ է տալիս բարելավել մակերևույթի բարձրացնելը։ Արագացումն իրականացվում է աշխատավարձի ելքի մրցակցության նվազեցմամբ, առավել արդյունավետ որոնմամբ կեշում և ֆրագմանտացիայի նվազեցմամբ։ Swap Table հիման վրա բազա օգտագործվում է կեշի պահեստավորման առումով դիմացկուն բազայի փոխարեն, որի արդյունքում միջինում 5-20%-ով բարձրացել է արդյունավետությունը։ usemem փորձարկման մեջ throughput-ը բարձրացել է 17-28%-ով, քանի որ բազմափուլ հավաքման ժամանակ հավաքման ժամանակը նվազել է 1.12-3.19%-ով, redis-benchmark փորձարկումը BGSAVE-ը ցույց է տվել, որ տրված հարցումների թիվը բարձրացել է 6-7%-ով։
- Zswap ենթահամակարգը անցել է zsmalloc հիշողության հատկացման համակարգի ուղղակի օգտագործման, փոխարինելով zpool շերտին, որն այլևս չի օգտագործվում և այժմ հեռացվել է միջուկից։
- x86 համակարգերում միկրոդրայվերի բեռնողի վարքն կառավարելու համար իրականացվել է «microcode=ֆլագների ցուցակ» հրամանների տողը։ Ներկա տեսքով նոր տարբերակը փոխարինել է «microcode.force_minrev»‑ին և թույլ է տալիս նաև սահմանել բեռնման համար նվազագույն ընդունելի միկրոդրայվերի տարբերակը։
- Սկսվել է մանկավարժական «page» կառուցվածքի ցանկի բարերարիչ աշխատանք, որը օգտագործվում է օպերատիվ հիշողության էջերի կառավարման համար։ Ավելացվել է ‘memdesc_flags_t’ տիպը՝ ընդհանուր ֆլագերով դաշտերի համար, որոնք կարող են օգտագործվել «page» կառուցվածքից առանձին կառուցվածքներ ստանալու սպասվող հեռանկարի համար՝ slab և ֆոլիոների (folio) համար։
- Nios II (FPGA բազայի վրա գտնվող ներդրային պրոցեսորներ) ճարտարապետության համար իրականացվել է clone3() համակարգային կանչի աջակցություն։
- Kernel (KConfig) կոնֆիգուրացիային ավելացվել է «transitional» ատրիբուտ, որը կարելի է օգտագործել օգտվողային ինտերֆեյսներում, ինչպիսիք են «make menuconfig», չերևացող կարգավորումները նշելու համար և չներառվելու համար GENERATED ֆայլերում։ Ատրիբուտի հիմնական նշանակությունը տարբերակների անվանափոխման հեշտացումն է պահպանելով հետադարձ համատեղելիությունը։
- Clang կոմպիլյատորի նվազագույն տարբերակը, որով կարող է կառուցվել միջուկը, բարձրացվել է LLVM 15 գործիքակազմի։ Debian 12 և Ubuntu 22.04-ում առկա է LLVM 14։
- Շարունակվել է Rust-for-Linux ճյուղից փոփոխությունների տեղափոխումը, կապված Rust լեզվի օգտագործման հետ որպես երկրորդ լեզու գցելու սարքեր և միջուկի մոդուլներ (Rust-ի աջակցությունը ըստ իրենց բնութագրի չի ակտիվացվում ըստ դեֆոլտի և չի հանգեցնում Rust-ի ներառմանը միջուկի պարտադիր հավաքման կախվածությունների թվում)։ Նոր տարբերակում Rust լեզվով կոդի համար իրականացվել են հիշողության ատոմար գործողություններ, maple tree կառուցվածքը, DebugFS ֆայլերի ստեղծման հնարավորություն և բիթային քարտեզների հետ աշխատելու ֆունկցիաները։ USB սարքերի համար ղեկավարների մշակման համար ներկայացվել է լիակատար աբստրակցիաների կոտորակը (օրինակ USB-ի ղեկավարը)։ perf գործիքը հավելվել է rustc կոմպիլյատորի կողմից սերնդված մոդուլային խորհրդանիշների աջակցությամբ։
- Վիրտուալիզացիան և անվտանգության միջոցները
- Ավելացվել է BPF ծրագրերի թվային ստորագրությամբ բեռնման հաստատման աջակցություն։ Հետագայում այս հնարավորությունը դիտվում է որպես աջակցություն ստորագրված BPF ծրագրերի բեռնման կանոնների սահմանման և ներազդված օգտվողներին վավերացված BPF ծրագրերի օգտագործման հնարավորություն։
- KVM հիպերվիզորում իրականացված է Intel CET (Control-flow Enforcement Technology) վիրտուալիզացիայի աջակցություն, որը օգտագործվում է վերադարձի-օրենտացված ծրագրավորման (ROP - Return-Oriented Programming) հարձակումների դեմ պաշտպանության համար: Պաշտպանության պարզիքը այն է, որ՝ ազդեցության փոխանցումից հետո, վերադարձի հասցեն պահպանվում է պրոցեսորի կողմից ոչ միայն սովորական կույտում, այլև առանձնացված ստվերային կույտում, որը չի կարող ուղղակիորեն փոխվել։
- Ավելացվել է 255-ից ավելի CPU օգտագործելու հնարավորությունը Bhyve հիպերվիզորի տակ աշխատող հյուրական կառավարման համակարգերում FreeBSD 15 հարթակում։
- Ավելացվել է dibs (Direct Internal Buffer Sharing) միջնեկարը, որ ղեկավարում է մեկուսացված միջավայրի ներսում, ինչպիսիք են հիպերվիզորը կամ Linux միջուկի օրինակ։
- Աուդիտի ենթահամակարգում ավելացվել է LSM (Linux Security Module) `նույնմիտորեն` միաժամանակ մի քանի մոդուլների աշխատանքը։
- Ավելացվել է virtio-վարորդ spi-virtio-ի համար SPI-devices (Serial Peripheral Interface) մուտք գործելու՝ օգտագործման համար կիրառվում է KubeVirt տեխնոլոգիան, որը թույլ է տալիս աշխատեցնել դասական վիրտուալ մեքենաներ ուղղակի Kubernetes կոնտեյներում և արդեն ունի բոլոր անհրաժեշտ ինտեգրացիաները Cluster API-ի հետ՝ կառավարվող Kubernetes կլաստերներ սկսելու համար «երևակայական» Kubernetes կլաստերում:.
- KVM հիպերվիզորում ավելացվել է SEV-SNP CipherText Hiding ռեժիմի աջակցություն, որը արգելափակում է պաշտպանված հյուրական համակարգերի հիշողության խթանման կոդի (ciphertext) ընթերցումը ոչ հեղինակացված CPU-ով։
- Ավելացվել է qtee վարորդ TEE-միջավայրերի (Trusted Execution Environment) Qualcomm չիպերի համար։
- Ձեռնարկային համակարգ
- Բացի այդ, ավելացվել է TCP-հաղորդակցությունների սիստեմացման աջակցություն, օգտագործելով PSP (PSP Security Protocol) անվտանգության պրոտոկոլը, որը մշակվել է Google ընկերության կողմից տվյալների կենտրոնների միջև տրապեցի գաղտնացման համար։ PSP ապահովում է գաղտնացում, կրիպտոգրաֆիկ ամբողջականության վերահսկում և աղբյուրի վավերացման հնարավորություն, իրականացնելով TLS և IPsec պրոտոկոլների հնարավորությունների յուրահատուկ համադրություն։ PSP-ն օգտագործում է առանձին գաղտնացման բանալի տատանումների տարբեր TCP-հաղորդակցությունների համար՝ տրաֆիկի ընկալման խստացված տարբերակով տարբեր ծրագրերի և մշակողների միջեւ։ CPU-ի թեթևացման համար աջակցվում է գաղտնացման և գաղտնաբառի գործողությունների տեղափոխումը ցանցային քարտերի կողմին (offload): Տվյալների փոխանցման համար օգտագործվում է UDP պրոտոկոլ, որի վրա տեղափոխվում է TCP-ի օրիգինալ փաթեթի բովանդակությունը։

- Ավելացվել է AccECN (Accurate Explicit Congestion Notification) ընդլայնման նախնական աջակցություն, որը հավասարազոր է ECN ընդլայնմանը և թույլ է տալիս հյուրընկալողներին հավելյալ ծանրաբեռնվածության դեպքում նշակազմել IP փաթեթները, ՝ դրանց նետման փոխարեն, ինչը հնարավորություն է տալիս դիտարկել կապերի տորփիդի սկզբնական փուլը, առանց փաթեթների կորուստի։ Ավանդական ECN ընդլայնման սահմանումը թույլ է տալիս միայն մեկ ծանրաբեռնման ազդանշանի նշում մեկ TCP փոխանցման ցիկլի ընթացքում (RTT, Round-Trip Time, հարցման ուղարկումը և պատասխան ստանալը)։ 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 MB-ից մինչև 4 MB։ Ներդրված չափը չի փոխվել (net.core.rmem_default և net.core.wmem_default = 2 MB)։
- Ավելացվել է Qualcomm PPE (Packet Processing Engine) արագացնիչի վարորդ, որը կիրառվում է Qualcomm IPQ9574 SoC-ում։
- Բացի այդ, ավելացվել է TCP-հաղորդակցությունների սիստեմացման աջակցություն, օգտագործելով PSP (PSP Security Protocol) անվտանգության պրոտոկոլը, որը մշակվել է Google ընկերության կողմից տվյալների կենտրոնների միջև տրապեցի գաղտնացման համար։ PSP ապահովում է գաղտնացում, կրիպտոգրաֆիկ ամբողջականության վերահսկում և աղբյուրի վավերացման հնարավորություն, իրականացնելով TLS և IPsec պրոտոկոլների հնարավորությունների յուրահատուկ համադրություն։ PSP-ն օգտագործում է առանձին գաղտնացման բանալի տատանումների տարբեր TCP-հաղորդակցությունների համար՝ տրաֆիկի ընկալման խստացված տարբերակով տարբեր ծրագրերի և մշակողների միջեւ։ CPU-ի թեթևացման համար աջակցվում է գաղտնացման և գաղտնաբառի գործողությունների տեղափոխումը ցանցային քարտերի կողմին (offload): Տվյալների փոխանցման համար օգտագործվում է UDP պրոտոկոլ, որի վրա տեղափոխվում է TCP-ի օրիգինալ փաթեթի բովանդակությունը։
- Սարքավորումներ
- Միջուկում ընդունվել է Tyr վարորդ, որը ստեղծված է Rust լեզվով և ապահովում է ARM Mali GPU-ների հետ աշխատելու լիազորությունները, որտեղ կիրառվում է CSF (Command Stream Frontend) տեխնոլոգիան, ինչպես Mali G310, G510 և G710։ Վարորդը դեռ պատրաստ չէ սովորական օգտագործման համար և դիտարկվում է որպես փորձնական նմուշ՝ Rust լեզվով վարորդների մշակման աբստրակցիաների փորձարկման համար։
- HID (Human interface device) ինտերֆեյսով մուտքային սարքերի վարորդներին ավելացվել է հպաշտող և ուժի սենսորներով կոշտաշարժիչներ աջակցելը։
- Ավարտվել է Intel Xe ճարտարապետության հիման վրա աշխատող GPU-ների համար drm- драйվերի (Direct Rendering Manager) Xe մոդուլի զարգացումը, որն օգտագործվում է 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 GPU-ների հետ աշխատելը:
- Nouveau драйվերում ըստ կառուցվածքի ակտիվացված են NVIDIA GSP прошիվкները և բարելավվել է սխալների մշակումը։
- NVIDIA GPU-ների Nova драйվերի բաղադրիչների ինտեգրումը շարունակվում է, որոնք զինված են GSP прошիվкներով, որոնք օգտագործվում են NVIDIA GeForce RTX 2000 շարքի Turing միկրոհամակարգի վրա բերված GPU-ներին։ Դրայվերը գրել է Rust լեզվով։ Նոր տարբերակում GSP прошիվկների աջակցությունը ընդլայնված է, բարելավվել է «register!» macro-ի իրականացման իրականացումը, ավելացվել են PCI սարքերի դասերի և արտադրողներին ճանաչողության աջակցություն։
- Ավելացվել է rocket драйվեր NPU արագացուցիչների համար, որոնք կիրառվում են Rockchip RK3588 SoC-ում։
- Ավելացվել է «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 GPU-ների աջակցություն։
- Ավելացվել են 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 թողարկումն արդյունավետացրել է Nova-Core, Intel XE, TI PRUeth, Lantiq GSWIP, Marvell WiFi-Ex սարքերի վարորդների blob-ների մաքրումը: ARM Qualcomm, Mediatek և TI ARM64 չիպերի dts-ֆայլերում (devicetree) blob-ների անունների մաքրումը իրականացվել է: Նոր FourSemi fs2104/5s, TI TAS2783 և Qualcomm GENI մուտքային սարքերի վարորդներում blob-ների ներբեռնումը ոչնչացվել է.
Ընտանիք: opennet.ru

