Linux 5.18 միջուկի թողարկում

Երկու ամիս մշակումից հետո Լինուս Տորվալդսը ներկայացրեց Linux միջուկի 5.18 թողարկումը: Ամենաուշագրավ փոփոխություններից. իրականացվել է հնացած ֆունկցիոնալության խոշոր մաքրում, Reiserfs FS-ը հայտարարվել է հնացած, օգտագործողի գործընթացների հետագծման իրադարձություններ են իրականացվել, ավելացվել է Intel IBT-ի շահագործումների արգելափակման մեխանիզմի աջակցությունը, բուֆերային հոսքի հայտնաբերման ռեժիմը միացվել է, երբ օգտագործելով memcpy() ֆունկցիան, ավելացվել է fprobe ֆունկցիայի զանգերին հետևելու մեխանիզմ, AMD Zen պրոցեսորների վրա առաջադրանքների ժամանակացույցի կատարումը բարելավվել է, ներառվել է Intel պրոցեսորի ֆունկցիոնալությունը (SDS) կառավարելու դրայվեր, ինտեգրվել են որոշ patches: վերնագրի ֆայլերի վերակառուցման համար, և հաստատվել է C11 ստանդարտի օգտագործումը:

Նոր տարբերակը ներառում է 16206 ուղղում 2127 մշակողների կողմից (վերջին թողարկումում եղել է 14203 ուղղում 1995 ծրագրավորողների կողմից), կարկատանի չափը 108 ՄԲ է (փոփոխությունները ազդել են 14235 ֆայլի վրա, ավելացվել է 1340982 կոդ, ջնջվել է 593836 տող): 44-ում ներկայացված բոլոր փոփոխությունների մոտ 5.18%-ը կապված է սարքի դրայվերների հետ, փոփոխությունների մոտավորապես 16%-ը կապված է ապարատային ճարտարապետությանը հատուկ կոդի թարմացման հետ, 11%-ը՝ ցանցային ստեկին, 3%-ը՝ ֆայլային համակարգերին և 3%-ը։ կապված են միջուկի ներքին ենթահամակարգերի հետ:

Հիմնական նորարարությունները միջուկում 5.18.

  • Սկավառակի ենթահամակարգ, I/O և ֆայլային համակարգեր
    • Btrfs ֆայլային համակարգը ավելացրել է սեղմված տվյալների փոխանցման աջակցություն՝ ուղարկելու և ստանալու գործառնություններ կատարելիս: Նախկինում ուղարկել/ստացում օգտագործելիս ուղարկող կողմը սեղմված ձեւով պահվող տվյալները ապասեղմում էր, իսկ ստացող կողմը նորից սեղմում էր դրանք գրելուց առաջ: 5.18 միջուկում ուղարկման/ստանալու զանգեր օգտագործող օգտատերերի տարածության հավելվածներին տրվել է սեղմված տվյալներ փոխանցելու հնարավորություն՝ առանց վերափաթեթավորման: Ֆունկցիոնալությունն իրականացվում է նոր ioctl գործողությունների շնորհիվ՝ BTRFS_IOC_ENCODED_READ և BTRFS_IOC_ENCODED_WRITE, որոնք թույլ են տալիս ուղղակիորեն կարդալ և գրել տեղեկատվություն այնքանով, որքանով:

      Բացի այդ, Btrfs-ը բարելավում է fsync-ի կատարումը: Ավելացվեց կրկնօրինակելու և վերահղում կատարելու հնարավորությունը (ֆայլի մետատվյալների կլոնավորում՝ գոյություն ունեցող տվյալներին հղում ստեղծելով՝ առանց դրանք իրականում պատճենելու) ողջ պահեստի համար՝ չսահմանափակվելով ամրացման կետերով:

    • Direct I/O ռեժիմում հնարավոր է մուտք գործել գաղտնագրված ֆայլեր, երբ fscrypt-ն օգտագործում է ներկառուցված կոդավորումը, որի դեպքում գաղտնագրման և գաղտնազերծման գործողությունները կատարվում են ոչ թե միջուկի, այլ սկավառակի վերահսկիչի կողմից: Միջուկի կանոնավոր գաղտնագրման դեպքում գաղտնագրված ֆայլերի մուտքը Direct I/O-ի միջոցով դեռևս անհնար է, քանի որ ֆայլերը հասանելի են միջուկում բուֆերային մեխանիզմը շրջանցելով:
    • NFS սերվերը ներառում է լռելյայն աջակցություն NFSv3 արձանագրությանը, որն այժմ առանձին միացում չի պահանջում և հասանելի է, երբ NFS-ն ընդհանրապես միացված է: NFSv3-ը համարվում է NFS-ի հիմնական և միշտ աջակցվող տարբերակը, և NFSv2-ի աջակցությունը կարող է դադարեցվել ապագայում: Գրացուցակի բովանդակության ընթերցման արդյունավետությունը զգալիորեն բարելավվել է:
    • ReiserFS ֆայլային համակարգը հնացել է և նախատեսվում է հեռացնել 2025 թվականին։ ReiserFS-ի հնազանդումը կնվազեցնի ֆայլային համակարգի ողջ փոփոխությունները պահպանելու համար անհրաժեշտ ջանքերը՝ կապված մոնտաժման, iomap-ի և tomes-ի նոր API-ի աջակցության հետ:
    • F2FS ֆայլային համակարգի համար ներդրվել է տեղադրված ֆայլային համակարգերի օգտատերերի ID-ները քարտեզագրելու հնարավորությունը, որն օգտագործվում է մոնտաժված օտար բաժանման վրա կոնկրետ օգտագործողի ֆայլերը համեմատելու համար ընթացիկ համակարգի մեկ այլ օգտագործողի հետ:
    • Device-mapper handlers-ում վիճակագրության հաշվարկման կոդը վերամշակվել է, ինչը զգալիորեն բարելավել է հաշվապահական հաշվառման ճշգրտությունը այնպիսի մշակողների մեջ, ինչպիսին է dm-crypt:
    • NVMe սարքերն այժմ աջակցում են 64-բիթանոց ստուգումների ամբողջականության ստուգման համար:
    • Exfat ֆայլային համակարգի համար առաջարկվել է «keep_last_dots» տեղադրման նոր տարբերակ, որն անջատում է ֆայլի անվան վերջում գտնվող կետերի մաքրումը (Windows-ում ֆայլի անվան վերջում գտնվող կետերը լռելյայն հեռացվում են):
    • EXT4-ը բարելավում է fast_commit ռեժիմի աշխատանքը և մեծացնում է մասշտաբայնությունը: «mb_optimize_scan» ամրացման տարբերակը, որը թույլ է տալիս մեծացնել ֆայլային համակարգի ֆրագմենտացիայի պայմաններում կատարողականությունը, հարմարեցված է ծավալներով ֆայլերի հետ աշխատելու համար:
    • Գրելու հոսքերի աջակցությունը ենթահամակարգում, որն աջակցում է բլոկ սարքերին, դադարեցվել է: Այս ֆունկցիան առաջարկվել է SSD-ների համար, սակայն լայն տարածում չի գտել, և ներկայումս այս ռեժիմն աջակցող սարքեր չկան, և քիչ հավանական է, որ դրանք հայտնվեն ապագայում:
  • Հիշողության և համակարգի ծառայություններ
    • Սկսվել է մի շարք patches-ի ինտեգրումը, ինչը թույլ է տալիս զգալիորեն կրճատել միջուկի վերակառուցման ժամանակը` վերակազմավորելով վերնագրի ֆայլերի հիերարխիան և նվազեցնելով խաչաձև կախվածությունների քանակը: Kernel 5.18-ը ներառում է patches, որոնք օպտիմալացնում են առաջադրանքների ժամանակացույցի վերնագրի ֆայլերի կառուցվածքը (միջուկ/սխեման): Նախորդ թողարկման համեմատ՝ միջուկը/sched/ կոդը հավաքելիս CPU-ի ժամանակի սպառումը կրճատվել է 61%-ով, իսկ իրական ժամանակը նվազել է 3.9%-ով (2.95-ից մինչև 2.84 վրկ):
    • Kernel կոդը թույլատրվում է օգտագործել C11 ստանդարտը, որը հրապարակվել է 2011 թ. Նախկինում միջուկին ավելացված կոդը պետք է համապատասխաներ ANSI C (C89) բնութագրին, որը ձևավորվել է դեռևս 1989 թվականին: 5.18 միջուկի կառուցման սցենարներում «—std=gnu89» տարբերակը փոխարինվել է «—std=gnu11 -Wno-shift-negative-value»-ով։ Դիտարկվել է C17 ստանդարտի օգտագործման հնարավորությունը, բայց այս դեպքում անհրաժեշտ կլինի ավելացնել GCC-ի նվազագույն աջակցվող տարբերակը, մինչդեռ C11 աջակցության ներառումը տեղավորվում է GCC տարբերակի ներկայիս պահանջներին (5.1):
    • Առաջադրանքների պլանավորման բարելավված կատարումը AMD պրոցեսորների վրա Zen միկրոճարտարապետությամբ, որոնք ապահովում են բազմաթիվ Վերջին մակարդակի քեշ (LLC) տեղական հիշողության ալիքներով յուրաքանչյուր հանգույցի համար: Նոր տարբերակը վերացնում է ՍՊԸ-ի անհավասարակշռությունը NUMA հանգույցների միջև, ինչը հանգեցրել է աշխատանքի որոշ տեսակների կատարողականի զգալի աճի:
    • Ընդլայնվել են օգտատերերի տարածքում հավելվածների հետագծման գործիքները: Միջուկի նոր տարբերակն ավելացնում է օգտատիրոջ գործընթացների հնարավորությունը՝ ստեղծելու Օգտվողի իրադարձություններ և տվյալներ գրելու հետագծային բուֆերում, որը կարելի է դիտել միջուկի հետագծման ստանդարտ ծրագրերի միջոցով, ինչպիսիք են ftrace և perf: Օգտագործողի տարածության հետքի իրադարձությունները մեկուսացված են միջուկի հետքի իրադարձություններից: Իրադարձության կարգավիճակը կարելի է դիտել ֆայլի /sys/kernel/debug/tracing/user_events_status, իսկ իրադարձությունների գրանցման և տվյալների ձայնագրման միջոցով՝ /sys/kernel/debug/tracing/user_events_data ֆայլի միջոցով:
    • Ավելացվել է մոնիտորինգի (զոնդ) ֆունկցիայի կանչերի մեխանիզմ՝ fprobe: Fprobe API-ն հիմնված է ftrace-ի վրա, սակայն սահմանափակված է միայն ֆունկցիաների մուտքի կետերին և ֆունկցիաների ելքի կետերին հետ կանչող սարքեր կցելու ունակությամբ: Ի տարբերություն kprobes-ի և kretprobes-ի, նոր մեխանիզմը թույլ է տալիս օգտագործել մեկ կարգավորիչ միանգամից մի քանի գործառույթների համար:
    • Ավելի հին ARM պրոցեսորների (ARMv4 և ARMv5) աջակցությունը, որոնք հագեցած չեն հիշողության կառավարման միավորով (MMU) դադարեցվել է: Առանց MMU-ի ARMv7-M համակարգերի աջակցությունը պահպանվում է:
    • Andes Technologies պրոցեսորներում օգտագործվող RISC նման NDS32 ճարտարապետության աջակցությունը դադարեցվել է: Կոդը հեռացվել է հիմնական Linux միջուկում սպասարկման բացակայության և NDS32 աջակցության պահանջարկի բացակայության պատճառով (մնացած օգտվողներն օգտագործում են ապարատային արտադրողների մասնագիտացված միջուկի կառուցվածքներ):
    • Լռելյայնորեն, a.out գործարկվող ֆայլի ձևաչափի աջակցությամբ միջուկի կառուցումն անջատված է ալֆա և m68k ճարտարապետությունների համար, որոնք շարունակում են օգտագործել այս ձևաչափը: Հավանական է, որ a.out ձևաչափի աջակցությունը շուտով ամբողջությամբ կհեռացվի միջուկից: a.out ձևաչափը հանելու ծրագրերը քննարկվում են 2019 թվականից:
    • PA-RISC ճարտարապետությունը նվազագույն աջակցություն է տրամադրում vDSO (վիրտուալ դինամիկ համօգտագործվող օբյեկտներ) մեխանիզմին, որն ապահովում է սահմանափակ թվով համակարգային զանգեր, որոնք հասանելի են օգտատերերի տարածքում՝ առանց համատեքստի փոխարկման: vDSO-ի աջակցությունը հնարավորություն է տվել իրականացնել չգործարկվող ստեկով աշխատելու հնարավորությունը:
    • Ավելացվել է Intel HFI (Hardware Feedback Interface) մեխանիզմի աջակցությունը, որը թույլ է տալիս սարքաշարին տեղեկատվություն փոխանցել միջուկին յուրաքանչյուր պրոցեսորի ընթացիկ աշխատանքի և էներգաարդյունավետության մասին:
    • Ավելացվել է վարորդ Intel SDSi (Ծրագրային-սահմանված սիլիկոն) մեխանիզմի համար, որը թույլ է տալիս վերահսկել պրոցեսորի մեջ լրացուցիչ գործառույթների ընդգրկումը (օրինակ՝ մասնագիտացված հրահանգներ և լրացուցիչ քեշ հիշողություն): Գաղափարն այն է, որ չիպերը կարող են մատակարարվել ավելի ցածր գնով՝ կողպված առաջադեմ գործառույթներով, որոնք այնուհետև կարելի է «գնել» և ակտիվացնել լրացուցիչ հնարավորությունները՝ առանց չիպի ապարատային փոխարինման:
    • Amd_hsmp դրայվերն ավելացվել է AMD HSMP (Host System Management Port) ինտերֆեյսին աջակցելու համար, որն ապահովում է մուտք դեպի պրոցեսորի կառավարման գործառույթներ հատուկ ռեգիստրների մի շարքի միջոցով, որոնք հայտնվել են AMD EPYC սերվերի պրոցեսորներում՝ սկսած Fam19h սերնդից: Օրինակ, HSMP-ի միջոցով դուք կարող եք ստանալ տվյալներ էներգիայի սպառման և ջերմաստիճանի վերաբերյալ, սահմանել հաճախականության սահմանաչափեր, ակտիվացնել տարբեր կատարողականի բարելավման ռեժիմներ և կառավարել հիշողության պարամետրերը:
    • io_uring asynchronous I/O ինտերֆեյսը իրականացնում է IORING_SETUP_SUBMIT_ALL տարբերակը՝ օղակի բուֆերում ֆայլերի նկարագրիչների մի շարք գրանցելու համար, և IORING_OP_MSG_RING օպերացիան՝ ազդանշան ուղարկելու մի օղակի բուֆերից մյուս օղակի բուֆեր:
    • DAMOS (Տվյալների հասանելիության մոնիտորինգի վրա հիմնված գործառնական սխեմաներ) մեխանիզմը, որը թույլ է տալիս հիշողությունը թողարկել՝ հաշվի առնելով հիշողության հասանելիության հաճախականությունը, ընդլայնել է հիշողության գործողությունները օգտագործողի տարածությունից վերահսկելու հնարավորությունները:
    • Կարկատանների երրորդ շարքը ինտեգրվել է էջի ֆոլիոների հայեցակարգի իրականացմանը, որոնք նման են բարդ էջերին, բայց բարելավված են իմաստաբանությունը և աշխատանքի ավելի հստակ կազմակերպումը: Tomes-ի օգտագործումը թույլ է տալիս արագացնել հիշողության կառավարումը միջուկի որոշ ենթահամակարգերում: Առաջարկվող patches-ում ներքին հիշողության կառավարման գործառույթները թարգմանվել են folios-ի, ներառյալ get_user_pages() ֆունկցիայի տատանումները: Աջակցում է մեծ ծավալների ստեղծմանը նախօրոք կարդալու կոդով:
    • Մոնտաժման համակարգը այժմ աջակցում է USERCFLAGS և USERLDFLAGS միջավայրի փոփոխականներին, որոնց միջոցով կարող եք լրացուցիչ դրոշներ փոխանցել կոմպիլյատորին և կապողին:
    • eBPF ենթահամակարգում BTF (BPF Type Format) մեխանիզմը, որն ապահովում է տիպի ստուգման տեղեկատվություն BPF կեղծ կոդով, հնարավորություն է տալիս ավելացնել անոտացիաներ այն փոփոխականներին, որոնք վերաբերում են օգտագործողի տարածության հիշողության տարածքներին: Անոտացիաները օգնում են BPF կոդի ստուգման համակարգին ավելի լավ բացահայտել և ստուգել հիշողության հասանելիությունը:
    • Առաջարկվել է բեռնված BPF ծրագրերը պահելու համար հիշողության բաշխման նոր կարգավորիչ, որը թույլ է տալիս ավելի արդյունավետ օգտագործել հիշողությունը այն իրավիճակներում, երբ բեռնված են մեծ թվով BPF ծրագրեր:
    • MADV_DONTNEED_LOCKED դրոշը ավելացվել է madvise() համակարգի կանչին, որն ապահովում է գործընթացների հիշողության կառավարման օպտիմալացման գործիքներ, որը լրացնում է գոյություն ունեցող MADV_DONTNEED դրոշը, որի միջոցով միջուկը կարող է նախապես տեղեկացված լինել հիշողության բլոկի մոտալուտ թողարկման մասին, այսինքն. որ այս բլոկն այլևս կարիք չունի և կարող է օգտագործվել միջուկի կողմից: Ի տարբերություն MADV_DONTNEED-ի, MADV_DONTNEED_LOCKED դրոշի օգտագործումը թույլատրելի է RAM-ում ամրացված հիշողության էջերի համար, որոնք, երբ madvise-ը կանչվում է, դուրս են մղվում առանց իրենց ամրացված կարգավիճակը փոխելու, իսկ բլոկից հետո մուտք գործելու և «էջ» ստեղծելու դեպքում: մեղքով», վերադարձվում են պարտադիր պահպանմամբ։ Բացի այդ, ավելացվել է փոփոխություն, որը թույլ է տալիս MADV_DONTNEED դրոշն օգտագործել HugeTLB-ի մեծ հիշողության էջերի հետ:
  • Վիրտուալացում և անվտանգություն
    • x86 ճարտարապետության համար աջակցություն է ավելացվել Intel IBT (Indirect Branch Tracking) հրամանի հոսքի պաշտպանության մեխանիզմին, որը կանխում է շահագործման կառուցման տեխնիկայի օգտագործումը, օգտագործելով վերադարձի վրա հիմնված ծրագրավորման տեխնիկան (ROP, Return-Oriented Programming), որտեղ շահագործվում է: ձևավորվում է զանգերի շղթայի տեսքով, որն արդեն գոյություն ունի մեքենայի հրահանգների կտորների հիշողության մեջ, որոնք ավարտվում են կառավարման վերադարձի հրահանգով (որպես կանոն, դրանք գործառույթների ծայրերն են): Իրականացված պաշտպանության մեթոդի էությունն այն է, որ արգելափակել անուղղակի անցումները ֆունկցիայի մարմնին՝ ֆունկցիայի սկզբում ավելացնելով հատուկ ENDBR հրահանգ և թույլատրել անուղղակի անցում կատարել միայն այս հրահանգին անցնելու դեպքում (անուղղակի զանգը JMP-ի միջոցով և CALL-ը միշտ պետք է ընկնի ENDBR հրահանգի վրա, որը տեղադրված է հենց սկզբնական գործառույթներում):
    • Միացրել է memcpy(), memmove() և memset() ֆունկցիաներում բուֆերների սահմանների ավելի խիստ ստուգումը, որն իրականացվում է կոմպիլյացիայի պահին, երբ միացված է CONFIG_FORTIFY_SOURCE ռեժիմը: Ավելացված փոփոխությունը հանգում է նրան, որ ստուգվում է, թե արդյոք կառուցվածքների տարրերը, որոնց չափերը հայտնի են, դուրս են գալիս սահմաններից: Նշվում է, որ ներդրված հատկությունը թույլ կտա արգելափակել memcpy()-ի հետ կապված միջուկի բուֆերային բոլոր արտահոսքերը, որոնք հայտնաբերված են առնվազն վերջին երեք տարիներին:
    • Ավելացվեց կոդի երկրորդ մասը RDRAND կեղծ պատահական թվերի գեներատորի թարմացված իրականացման համար, որը պատասխանատու է /dev/random և /dev/urandom սարքերի աշխատանքի համար: Նոր ներդրումը նշանավորվում է /dev/random և /dev/urandom-ի գործառնությունների միավորմամբ, վիրտուալ մեքենաների գործարկման ժամանակ պատահական թվերի հոսքում կրկնօրինակների հայտնվելուց պաշտպանություն ավելացնելով և SHA2-ի փոխարեն BLAKE1s հեշ ֆունկցիան օգտագործելու համար: էնտրոպիայի խառնման գործողություններ. Փոփոխությունը բարելավեց կեղծ պատահական թվերի գեներատորի անվտանգությունը՝ վերացնելով խնդրահարույց SHA1 ալգորիթմը և վերացնելով RNG սկզբնավորման վեկտորի վերագրումը։ Քանի որ BLAKE2s ալգորիթմը գերազանցում է SHA1-ին կատարողականով, դրա օգտագործումը նույնպես դրական ազդեցություն ունեցավ կատարողականի վրա:
    • ARM64 ճարտարապետության համար աջակցություն է ավելացվել ցուցիչի նույնականացման նոր ալգորիթմի համար՝ «QARMA3», որն ավելի արագ է, քան QARMA ալգորիթմը՝ պահպանելով անվտանգության պատշաճ մակարդակը: Տեխնոլոգիան թույլ է տալիս օգտագործել ARM64 մասնագիտացված հրահանգներ՝ ստուգելու վերադարձի հասցեները՝ օգտագործելով թվային ստորագրությունները, որոնք պահվում են հենց ցուցիչի չօգտագործված վերին բիթերում:
    • ARM64 ճարտարապետության համար աջակցություն է ներդրվել հավաքման համար՝ GCC 12-ում ներառելով պաշտպանական ռեժիմ՝ գործառույթից վերադարձի հասցեի վերագրանցումից, երբ բուֆերային գերհոսք է տեղի ունենում կույտի վրա: Պաշտպանության էությունը կայանում է նրանում, որ վերադարձի հասցեն պահպանվի առանձին «ստվերային» կույտում՝ գործառույթի վրա կառավարումը փոխանցելուց և գործառույթից դուրս գալուց առաջ այս հասցեն առբերելուց հետո:
    • Ավելացվեց նոր ստեղնաշար՝ «մեքենա», որը պարունակում է համակարգի սեփականատիրոջ բանալիներ (MOK, Machine Owner Keys), որն աջակցվում է shim bootloader-ում: Այս ստեղները կարող են օգտագործվել միջուկի բաղադրիչները թվային ստորագրելու համար, որոնք բեռնված են հետբեռնման փուլում (օրինակ՝ միջուկի մոդուլները):
    • Հեռացվել է TPM-ների համար ասիմետրիկ մասնավոր բանալիների աջակցությունը, որոնք առաջարկվում էին TPM-ի հին տարբերակում, ուներ անվտանգության հայտնի խնդիրներ և գործնականում լայնորեն ընդունված չէին:
    • Ավելացվել է տվյալների պաշտպանություն size_t տիպով ամբողջ թվերի հորդացումներից: Կոդը ներառում է կարգավորիչներ size_mul(), size_add() և size_sub(), որոնք թույլ են տալիս ապահով կերպով բազմապատկել, ավելացնել և հանել չափերը size_t տիպով:
    • Միջուկը կառուցելիս միացված են «-Warray-bounds» և «-Wzero-length-bounds» դրոշակները, որոնք ցուցադրում են նախազգուշացումներ, երբ ինդեքսը դուրս է գալիս զանգվածի սահմանից և երբ օգտագործվում են զրոյական երկարության զանգվածներ:
    • Virtio-crypto սարքն ավելացրել է RSA ալգորիթմի միջոցով գաղտնագրման աջակցություն:
  • Ցանցային ենթահամակարգ
    • Ցանցային կամուրջների իրականացման ժամանակ ավելացվել է նավահանգիստների կապման ռեժիմի աջակցություն (կողպված ռեժիմ), որի դեպքում օգտատերը կարող է պորտով տրաֆիկ ուղարկել միայն լիազորված MAC հասցեից: Ավելացվել է նաև STP (Spanning Tree Protocol) արձանագրության վիճակը գնահատելու համար մի քանի կառուցվածքներ օգտագործելու հնարավորություն: Նախկինում VLAN-ները կարող էին ուղղակիորեն քարտեզագրվել միայն STP-ին (1:1), ընդ որում յուրաքանչյուր VLAN-ը կառավարվում էր ինքնուրույն: Նոր տարբերակն ավելացնում է mst_enable պարամետրը, երբ միացված է, VLAN-ների վիճակը վերահսկվում է MST (Multiple Spanning Trees) մոդուլով, և VLAN-ների կապումը կարող է համապատասխանել M:N մոդելին:
    • Աշխատանքները շարունակվեցին ցանցային փաթեթում գործիքների ինտեգրման ուղղությամբ՝ հետևելու փաթեթների (պատճառի կոդերի) բաց թողնման պատճառներին: Պատճառի ծածկագիրը ուղարկվում է, երբ փաթեթի հետ կապված հիշողությունն ազատվում է և թույլ է տալիս այնպիսի իրավիճակներ, ինչպիսիք են փաթեթի հեռացումը վերնագրի սխալների պատճառով, rp_filter կեղծման հայտնաբերում, անվավեր ստուգման գումար, հիշողությունից դուրս, IPSec XFRM կանոնների գործարկում, անվավեր հաջորդականության համար TCP և այլն:
    • Հնարավոր է ցանցային փաթեթներ փոխանցել BPF ծրագրերից, որոնք գործարկվել են օգտվողի տարածությունից BPF_PROG_RUN ռեժիմում, որի դեպքում BPF ծրագրերը կատարվում են միջուկում, բայց արդյունքը վերադարձնում է օգտագործողի տարածք: Փաթեթները փոխանցվում են XDP (eXpress Data Path) ենթահամակարգի միջոցով: Աջակցվում է կենդանի փաթեթների մշակման ռեժիմը, որի դեպքում XDP պրոցեսորը կարող է անմիջապես վերահղել ցանցային փաթեթները դեպի ցանցի կույտ կամ այլ սարքեր: Հնարավոր է նաև ստեղծել արտաքին տրաֆիկի ծրագրային գեներատորներ կամ փոխարինել ցանցային շրջանակները ցանցի կույտում:
    • Ցանցային cgroup-ներին կցված BPF ծրագրերի համար առաջարկվել են օգնական գործառույթներ՝ հստակորեն սահմանելու համակարգային զանգերի վերադարձի արժեքը, ինչը հնարավորություն է տալիս ավելի ամբողջական տեղեկատվություն փոխանցել համակարգային զանգի արգելափակման պատճառների մասին:
    • XDP (eXpress Data Path) ենթահամակարգն ավելացրել է աջակցություն բազմակի բուֆերներում տեղադրված մասնատված փաթեթների համար, ինչը թույլ է տալիս մշակել Jumbo շրջանակները XDP-ում և օգտագործել TSO/GRO (TCP Segmentation Offload/Generic Receive Offload) XDP_REDIRECT-ի համար:
    • Զգալիորեն արագացել է ցանցի անվանատարածքների ջնջման գործընթացը, որը պահանջարկ էր վայելում մեծ ծավալով տրաֆիկ ունեցող որոշ խոշոր համակարգերում։
  • սարքավորում
    • amdgpu դրայվերը լռելյայն ներառում է FreeSync ադապտիվ համաժամացման տեխնոլոգիա, որը թույլ է տալիս կարգավորել էկրանի տեղեկատվության թարմացման արագությունը՝ ապահովելով հարթ և չպատռվող պատկերներ խաղեր խաղալիս և տեսանյութեր դիտելիս: Aldebaran GPU-ի աջակցությունը հայտարարվել է որպես կայուն:
    • i915 դրայվերն ավելացնում է աջակցություն Intel Alderlake N չիպերի և Intel DG2-G12 դիսկրետ գրաֆիկական քարտերի համար (Arc Alchemist):
    • Nouveau դրայվերն ապահովում է DP/eDP ինտերֆեյսների ավելի բարձր բիթերի արագության աջակցություն և lttprs (Link-Training Tunable PHY Repeaters) մալուխային երկարացնող սարքերի աջակցություն:
    • drm (Direct Rendering Manager) ենթահամակարգում drivers armada, exynos, gma500, hyperv, imx, ingenic, mcde, mediatek, msm, omap, rcar-du, rockchip, sprd, sti, tegra, tilcdc, xen և vc4 պարամետրերի աջակցություն: ավելացվել է nomodeset, որը թույլ է տալիս անջատել միջուկի մակարդակում վիդեո ռեժիմների փոխարկումը և ապարատային մատուցման արագացման գործիքների օգտագործումը՝ թողնելով միայն համակարգի շրջանակային բուֆերի հետ կապված գործառույթները:
    • Ավելացվել է աջակցություն ARM SoС Qualcomm Snapdragon 625/632-ին (օգտագործվում է LG Nexus 5X և Fairphone FP3 սմարթֆոններում), Samsung Exynos 850, Samsung Exynos 7885 (օգտագործվում է Samsung Galaxy A8-ում), Airoha (Mediatek/EcoNet) EN7523sti (Mediatek/EcoNet) EN6582sti (Mediatek mTP5008tre): պլանշետ 3G), Microchip Lan966, Renesas RZ/G2LC, RZ/V2L, Tesla FSD, TI K3/AM62 և i.MXRTxxxx:
    • Ավելացված է աջակցություն ARM սարքերի և տախտակների համար Broadcom-ից (Raspberry Pi Zero 2 W), Qualcomm (Google Herobrine R1 Chromebook, SHIFT6mq, Samsung Galaxy Book2), Rockchip (Pine64 PineNote, Bananapi-R2-Pro, STM32 Emtrion emSBS, Samsung Galaxy Tab S): , Prestigio PMT5008 3G պլանշետ), Allwinner (A20-Marsboard), Amlogic (Amediatek X96-AIR, CYX A95XF3-AIR, Haochuangy H96-Max, Amlogic AQ222 և OSMC Vero 4K+), Aspeed (Quanta SHRock M6QOMll), / Armada (Ctera C8 V3 և V200 NAS), Mstar (DongShanPiOne, Miyoo Mini), NXP i.MX (Protonic PRT1MM, emCON-MX2M Mini, Toradex Verdin, Gateworks GW8):
    • Ավելացվել է ձայնային համակարգերի և կոդեկների աջակցություն AMD PDM, Atmel PDMC, Awinic AW8738, i.MX TLV320AIC31xx, Intel CS35L41, ESSX8336, Mediatek MT8181, nVidia Tegra234, Qualcomm SC7280, Տեխասի, SC2, SC585, Qualcomm SC234. Ավելացվել է ձայնային վարորդի նախնական ներդրում Intel AVS DSP չիպի համար: Թարմացրել է վարորդների աջակցությունը Intel ADL-ի և TegraXNUMX-ի համար և փոփոխություններ է կատարել՝ բարելավելու աուդիո աջակցությունը Dell, HP, Lenovo, ASUS, Samsung և Clevo սարքերում:

    Միևնույն ժամանակ, Լատինական Ամերիկայի Ազատ ծրագրաշարի հիմնադրամը ձևավորեց ամբողջովին անվճար միջուկի 5.18 տարբերակը՝ Linux-libre 5.18-gnu, որը մաքրվել է որոնվածի տարրերից և ոչ ազատ բաղադրիչներ կամ կոդերի բաժիններ պարունակող դրայվերներից, որոնց շրջանակը սահմանափակ է։ արտադրողի կողմից: Նոր թողարկումը մաքրում է MIPI DBI վահանակների, VPU Amphion, WiFi MediaTek MT7986 WMAC, Mediatek MT7921U (USB) և Realtek 8852a/8852c, Intel AVS և Texas Instruments TAS5805M ձայնային չիպերի դրայվերները: DTS ֆայլերը մաքրվել են նաև Qualcomm SoC-ների համար՝ AArch64 ճարտարապետության վրա հիմնված պրոցեսորներով: Թարմացված բլբի մաքրման կոդը AMD GPU, MediaTek MT7915, Silicon Labs WF200+ WiFi, Mellanox Spectru Ethernet, Realtek rtw8852c, Qualcomm Q6V5, Wolfson ADSP, MediaTek HCI UART վարորդների և ենթահամակարգերի մեջ:

Source: opennet.ru

Добавить комментарий