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

Երկու ամիս մշակումից հետո Լինուս Տորվալդսը ներկայացրեց Linux միջուկի 6.2 թողարկումը: Ամենաուշագրավ փոփոխություններից. թույլատրվում է կոդի ընդունումը Copyleft-Next լիցենզիայի ներքո, բարելավվում է RAID5/6-ի ներդրումը Btrfs-ում, շարունակվում է Rust լեզվի աջակցության ինտեգրումը, Retbleed-ի հարձակումներից պաշտպանվելու ծախսերը կրճատվում են, Ավելացվել է գրառման ժամանակ հիշողության սպառումը կարգավորելու հնարավորությունը, ավելացվել է մեխանիզմ TCP-ի հավասարակշռման PLB-ի (Պաշտպանիչ բեռնվածքի հավասարակշռում) համար, ավելացվել է հիբրիդային հրամանի հոսքի պաշտպանության մեխանիզմ (FineIBT), BPF-ն այժմ ունի սեփական օբյեկտները և տվյալների կառուցվածքը սահմանելու հնարավորություն։ Ներառված է rv (Runtime Verification) կոմունալը, կրճատվել է էներգիայի սպառումը RCU կողպեքների ներդրման ժամանակ:

Նոր տարբերակը ներառում է 16843 ուղղում 2178 ծրագրավորողների կողմից, patch-ի չափը 62 ՄԲ է (փոփոխությունները ազդել են 14108 ֆայլերի վրա, ավելացվել է 730195 կոդ, ջնջվել է 409485 տող): 42-ում ներկայացված բոլոր փոփոխությունների մոտ 6.2%-ը կապված է սարքի դրայվերների հետ, փոփոխությունների մոտավորապես 16%-ը կապված է ապարատային ճարտարապետությանը հատուկ կոդի թարմացման հետ, 12%-ը կապված է ցանցի ստեկին, 4%-ը՝ ֆայլային համակարգերի և 3%-ը: կապված են միջուկի ներքին ենթահամակարգերի հետ:

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

  • Հիշողության և համակարգի ծառայություններ
    • Այն թույլատրվում է ներառել միջուկի կոդի մեջ և փոփոխությունները, որոնք նախատեսված են Copyleft-Next 0.3.1 լիցենզիայի ներքո: Copyleft-Next լիցենզիան ստեղծվել է GPLv3-ի հեղինակներից մեկի կողմից և լիովին համատեղելի է GPLv2 լիցենզիայի հետ, ինչպես հաստատել են SUSE-ի և Red Hat-ի իրավաբանները: Համեմատած GPLv2-ի հետ՝ Copyleft-Next լիցենզիան շատ ավելի կոմպակտ է և ավելի հեշտ հասկանալի (ներածական մասը և հնացած փոխզիջումների մասին հիշատակումը հանվել են), սահմանում է խախտումների վերացման ժամկետները և կարգը և ինքնաբերաբար հեռացնում է հնացած ծրագրաշարի համար copyleft-ի պահանջները։ ավելի քան 15 տարեկան է։

      Copyleft-Next-ը պարունակում է նաև սեփական տեխնոլոգիայի դրամաշնորհային դրույթ, որը, ի տարբերություն GPLv2-ի, այս լիցենզիան դարձնում է համատեղելի Apache 2.0 լիցենզիայի հետ: GPLv2-ի հետ լիարժեք համատեղելիություն ապահովելու համար Copyleft-Next-ը բացահայտորեն նշում է, որ ածանցյալ աշխատանք կարող է տրամադրվել GPL լիցենզիայի ներքո՝ ի լրումն բնօրինակ Copyleft-Next լիցենզիայի:

    • Կառուցվածքը ներառում է «rv» կոմունալ ծրագիրը, որն ապահովում է ինտերֆեյս օգտագործողի տարածությունից RV (Runtime Verification) ենթահամակարգի մշակողների հետ փոխազդեցության համար, որը նախատեսված է բարձր հուսալի համակարգերի վրա ճիշտ աշխատանքը ստուգելու համար, որոնք երաշխավորում են խափանումների բացակայությունը: Ստուգումն իրականացվում է գործարկման ժամանակ՝ կարգավորիչները կցելով հետագծային կետերին, որոնք ստուգում են կատարման իրական առաջընթացը մեքենայի կանխորոշված ​​դետերմինիստական ​​մոդելի հետ, որը սահմանում է համակարգի սպասվող վարքագիծը:
    • ZRAM սարքը, որը թույլ է տալիս փոխանակման միջնորմը սեղմված ձևով պահել հիշողության մեջ (հիշողության մեջ ստեղծվում է բլոկ սարք, որի վրա փոխանակումը կատարվում է սեղմման միջոցով), իրականացնում է էջերը վերափաթեթավորելու հնարավորություն՝ օգտագործելով այլընտրանքային ալգորիթմ՝ ավելի բարձր մակարդակի հասնելու համար։ սեղմման։ Հիմնական գաղափարը մի քանի ալգորիթմների միջև ընտրություն ապահովելն է (lzo, lzo-rle, lz4, lz4hc, zstd), առաջարկելով իրենց սեփական փոխզիջումները սեղմման/դեկոմպրեսիոն արագության և սեղմման մակարդակի միջև կամ օպտիմալ հատուկ իրավիճակներում (օրինակ՝ խոշոր չափերի սեղմման համար): հիշողության էջեր):
    • Ավելացվել է «iommufd» API՝ I/O հիշողության կառավարման համակարգը կառավարելու համար՝ IOMMU (I/O Memory-Management Unit) օգտագործողի տարածքից: Նոր API-ն հնարավորություն է տալիս կառավարել I/O հիշողության էջերի աղյուսակները՝ օգտագործելով ֆայլերի նկարագրիչներ:
    • BPF-ն ապահովում է տեսակներ ստեղծելու, ձեր սեփական օբյեկտները սահմանելու, օբյեկտների ձեր սեփական հիերարխիան և ճկուն կերպով ստեղծելու ձեր սեփական տվյալների կառուցվածքները, օրինակ՝ կապված ցուցակները: BPF ծրագրերի համար, որոնք անցնում են քնի ռեժիմ (BPF_F_SLEEPABLE), ավելացվել է bpf_rcu_read_{,un}lock() կողպեքների աջակցություն: Իրականացված աջակցություն task_struct օբյեկտների պահպանման համար: Ավելացվեց քարտեզի տեսակը BPF_MAP_TYPE_CGRP_STORAGE՝ ապահովելով տեղական պահեստավորում cխմբերի համար:
    • RCU (Read-copy-update) արգելափակման մեխանիզմի համար ներդրված է «ծույլ» հետադարձ զանգերի կամընտիր մեխանիզմը, որի ժամանակ մի քանի հետադարձ զանգեր մշակվում են միաժամանակ՝ օգտագործելով ժմչփ խմբաքանակի ռեժիմում: Առաջարկվող օպտիմալացման կիրառումը մեզ թույլ է տալիս 5-10%-ով նվազեցնել էներգիայի սպառումը Android և ChromeOS սարքերում՝ հետաձգելով RCU հարցումները պարապ ժամանակների կամ համակարգի ցածր ծանրաբեռնվածության ժամանակ:
    • Ավելացվեց sysctl split_lock_mitigate-ը վերահսկելու, թե ինչպես է համակարգը արձագանքում, երբ հայտնաբերում է բաժանված կողպեքներ, որոնք տեղի են ունենում հիշողության մեջ չհավասարեցված տվյալների մուտքի ժամանակ, քանի որ տվյալները հատում են երկու պրոցեսորի քեշի տողերը ատոմային հրահանգը կատարելիս: Նման խցանումները հանգեցնում են կատարողականի զգալի անկման: Split_lock_mitigate-ը 0-ին դնելը միայն նախազգուշացում է տալիս, որ խնդիր կա, մինչդեռ split_lock_mitigate-ը 1-ին դնելը նաև հանգեցնում է այն գործընթացի, որը հանգեցրել է կողպեքի դանդաղեցմանը, որպեսզի պահպանի աշխատանքը համակարգի մնացած մասի համար:
    • PowerPC ճարտարապետության համար առաջարկվել է qspinlock-ի նոր ներդրում, որը ցույց է տալիս ավելի բարձր կատարողականություն և լուծում որոշ կողպման խնդիրներ, որոնք առաջանում են բացառիկ դեպքերում:
    • MSI (Message-Signaled Interrupts) ընդհատումների մշակման կոդը վերամշակվել է՝ վերացնելով կուտակված ճարտարապետական ​​խնդիրները և ավելացնելով աջակցություն՝ առանձին մշակողներին տարբեր սարքերին կապելու համար:
    • Համակարգերի համար, որոնք հիմնված են LoongArch հրահանգների հավաքածուի ճարտարապետության վրա, որն օգտագործվում է Loongson 3 5000 պրոցեսորներում և իրականացնում է նոր RISC ISA, որը նման է MIPS-ին և RISC-V-ին, ապահովված է ftrace, stack պաշտպանության, քնի և սպասման ռեժիմների աջակցություն:
    • Տրված է ընդհանուր անանուն հիշողության տարածքներին անուններ նշանակելու հնարավորությունը (նախկինում անունները կարող էին վերագրվել միայն մասնավոր անանուն հիշողությանը, որը վերագրված էր որոշակի գործընթացին):
    • Ավելացվեց միջուկի նոր հրամանի տող «trace_trigger» պարամետրը, որը նախատեսված է ակտիվացնելու հետագծման գործարկիչը, որն օգտագործվում է պայմանական հրամանները կապելու համար, որոնք կոչվում են, երբ վերահսկման ստուգումը գործարկվում է (օրինակ, trace_trigger=”sched_switch.stacktrace, եթե prev_state == 2″):
    • Բարձրացվել են binutils փաթեթի տարբերակի պահանջները։ Այժմ միջուկը կառուցելու համար անհրաժեշտ է առնվազն binutils 2.25:
    • Exec() կանչելիս ավելացվել է ժամանակային անվանատարածքում պրոցես տեղադրելու հնարավորությունը, որտեղ ժամանակը տարբերվում է համակարգի ժամանակից։
    • Մենք սկսել ենք Rust-for-Linux մասնաճյուղից լրացուցիչ գործառույթներ փոխանցել՝ կապված Rust լեզվի օգտագործման հետ՝ որպես վարորդների և միջուկի մոդուլների մշակման երկրորդ լեզու: Rust-ի աջակցությունը լռելյայն անջատված է և չի հանգեցնում նրան, որ Rust-ը ներառվի որպես միջուկի կառուցման պահանջվող կախվածություն: Վերջին թողարկումում առաջարկվող հիմնական գործառույթն ընդլայնվել է՝ աջակցելու ցածր մակարդակի կոդերին, ինչպիսիք են Vec տիպը և մակրոները pr_debug!(), pr_cont!() և pr_alert!(), ինչպես նաև ընթացակարգային մակրո «#[vtable»: ]», որը հեշտացնում է գործառույթների վրա ցուցիչի աղյուսակների հետ աշխատանքը: Բարձր մակարդակի Rust կապերի ավելացում միջուկի ենթահամակարգերի վրա, ինչը թույլ կտա Rust-ում ստեղծել լիարժեք դրայվերներ, սպասվում է ապագա թողարկումներում:
    • Միջուկում օգտագործվող «char» տեսակն այժմ հայտարարված է որպես անստորագիր բոլոր ճարտարապետությունների համար:
    • Սալերի հիշողության հատկացման մեխանիզմը՝ SLOB (slab allocator), որը նախատեսված էր փոքր քանակությամբ հիշողություն ունեցող համակարգերի համար, հնացած է ճանաչվել։ SLOB-ի փոխարեն նորմալ պայմաններում խորհուրդ է տրվում օգտագործել SLUB կամ SLAB: Փոքր քանակությամբ հիշողություն ունեցող համակարգերի համար խորհուրդ է տրվում օգտագործել SLUB-ը SLUB_TINY ռեժիմում:
  • Սկավառակի ենթահամակարգ, I/O և ֆայլային համակարգեր
    • Բարելավումներ են կատարվել Btrfs-ում, որոնց նպատակն է շտկել «գրելու անցքը» RAID 5/6 իրականացումներում (RAID-ը վերականգնելու փորձ, եթե գրելու ընթացքում խափանում է տեղի ունենում, և անհնար է հասկանալ, թե որ բլոկի վրա է RAID սարքը ճիշտ գրվել, ինչը կարող է հանգեցնել բլոկի ոչնչացմանը, որը համապատասխանում է ստորագրված բլոկներին): Բացի այդ, SSD-ները այժմ ավտոմատ կերպով հնարավորություն են տալիս լռելյայնորեն լռելյայնորեն, երբ դա հնարավոր է, ինչը թույլ է տալիս բարելավված կատարողականություն՝ շնորհիվ հերթերի հերթերում հերթերի արդյունավետ խմբավորման և ֆոնային պրոցեսորի կողմից հերթի մշակման: Բարելավված է ուղարկելու և փնտրելու գործառնությունները, ինչպես նաև FIEMAP ioctl.
    • Ընդլայնվել են բլոկային սարքերի հետաձգված գրելու (գրել, փոփոխված տվյալների ֆոնային պահպանում) կառավարելու հնարավորությունները։ Որոշ իրավիճակներում, օրինակ, երբ օգտագործում եք ցանցային բլոկ սարքեր կամ USB կրիչներ, ծույլ գրությունները կարող են հանգեցնել RAM-ի մեծ սպառման: Ծույլ գրությունների վարքագիծը վերահսկելու և էջի քեշի չափը որոշակի սահմաններում պահելու համար sysfs-ում (/sys/class/bdi/) ներդրվել են նոր պարամետրեր՝ strict_limit, min_bytes, max_bytes, min_ratio_fine և max_ratio_fine:
    • F2FS ֆայլային համակարգը իրականացնում է ատոմային փոխարինող ioctl գործողություն, որը թույլ է տալիս ֆայլի վրա տվյալներ գրել մեկ ատոմային գործողության ընթացքում: F2FS-ը նաև ավելացնում է բլոկի ծավալի քեշ, որն օգնում է բացահայտել ակտիվորեն օգտագործվող տվյալները կամ տվյալները, որոնք երկար ժամանակ հասանելի չեն եղել:
    • ext4 FS-ում նշվում են միայն սխալի ուղղումներ:
    • ntfs3 ֆայլային համակարգը առաջարկում է տեղադրման մի քանի նոր տարբերակներ. «nocase»՝ ֆայլերի և գրացուցակների անուններում մեծատառերի զգայունությունը վերահսկելու համար; windows_name՝ արգելելու Windows-ի համար անվավեր նիշեր պարունակող ֆայլերի անունների ստեղծումը. hide_dot_files՝ կետով սկսվող ֆայլերի համար թաքնված ֆայլի պիտակի նշանակումը վերահսկելու համար:
    • Squashfs ֆայլային համակարգը իրականացնում է «threads=» մոնտաժման տարբերակը, որը թույլ է տալիս սահմանել թելերի քանակը՝ դեկոպրեսիոն գործողությունները զուգահեռացնելու համար: Squashfs-ը նաև ներկայացրեց մոնտաժված ֆայլային համակարգերի օգտատերերի ID-ները քարտեզագրելու հնարավորությունը, որն օգտագործվում էր մոնտաժված արտասահմանյան միջնորմի վրա կոնկրետ օգտատիրոջ ֆայլերը ներկայիս համակարգի մեկ այլ օգտատիրոջ հետ համապատասխանեցնելու համար:
    • POSIX մուտքի վերահսկման ցուցակների (POSIX ACLs) ներդրումը վերամշակվել է: Նոր ներդրումը վերացնում է ճարտարապետական ​​խնդիրները, պարզեցնում է կոդերի բազայի պահպանումը և ներկայացնում է տվյալների ավելի անվտանգ տեսակներ:
    • Fscrypt ենթահամակարգը, որն օգտագործվում է ֆայլերի և գրացուցակների թափանցիկ գաղտնագրման համար, ավելացրել է աջակցություն SM4 կոդավորման ալգորիթմին (չինական ստանդարտ GB/T 32907-2016):
    • Առանց NFSv2-ի աջակցության միջուկը կառուցելու հնարավորությունը տրամադրվել է (ապագայում նրանք նախատեսում են ամբողջությամբ դադարեցնել NFSv2-ի աջակցությունը)։
    • Փոփոխվել է NVMe սարքերի մուտքի իրավունքների ստուգման կազմակերպումը։ Ապահովում է NVMe սարքում կարդալու և գրելու հնարավորություն, եթե գրելու գործընթացին հասանելի է սարքի հատուկ ֆայլը (նախկինում գործընթացը պետք է ունենար CAP_SYS_ADMIN թույլտվությունը):
    • Հեռացվել է CD/DVD փաթեթի դրայվերը, որը հնացել էր 2016 թվականին:
  • Վիրտուալացում և անվտանգություն
    • Intel և AMD պրոցեսորներում ներդրվել է Retbleed խոցելիությունից պաշտպանության նոր մեթոդ՝ օգտագործելով զանգերի խորության հետևում, ինչը չի դանդաղեցնում աշխատանքը այնքան, որքան նախկինում առկա պաշտպանությունը Retbleed-ից: Նոր ռեժիմը միացնելու համար առաջարկվել է միջուկի հրամանի տող «retbleed=stuff» պարամետրը:
    • Ավելացրել է հիբրիդային FineIBT հրահանգների հոսքի պաշտպանության մեխանիզմը, որը համատեղում է Intel IBT ապարատային (Indirect Branch Tracking) հրահանգները և ծրագրային ապահովման պաշտպանությունը kCFI (միջուկի վերահսկման հոսքի ամբողջականությունը)՝ արգելափակելու նորմալ կատարման կարգի խախտումը (վերահսկման հոսք) օգտագործման արդյունքում։ շահագործումներից, որոնք փոփոխում են ֆունկցիաների հիշողության մեջ պահվող ցուցիչները: FineIBT-ը թույլ է տալիս կատարել անուղղակի ցատկում միայն ENDBR հրահանգին անցնելու դեպքում, որը տեղադրված է ֆունկցիայի հենց սկզբում։ Բացի այդ, kCFI մեխանիզմի համեմատությամբ, հեշերն այնուհետև ստուգվում են՝ երաշխավորելու ցուցիչների անփոփոխությունը:
    • Ավելացվել են սահմանափակումներ՝ արգելափակելու հարձակումները, որոնք շահարկում են «oops» վիճակների ստեղծումը, որից հետո խնդրահարույց առաջադրանքները ավարտվում են և վիճակը վերականգնվում է առանց համակարգը դադարեցնելու: Շատ մեծ թվով զանգերի դեպքում դեպի «oops» վիճակ, տեղի է ունենում հղման հաշվիչի արտահոսք (վերահաշվարկ), որը թույլ է տալիս օգտագործել NULL ցուցիչի մատնանշումների հետևանքով առաջացած խոցելիությունները: Նման հարձակումներից պաշտպանվելու համար միջուկին ավելացվել է սահմանաչափ «օփ» գործարկիչների առավելագույն քանակի համար, որը գերազանցելուց հետո միջուկը կսկսի անցում կատարել «խուճապի» վիճակին, որին կհետևի վերաբեռնում, որը թույլ չի տա հասնել նպատակին: կրկնությունների քանակը, որոնք պահանջվում են վերահաշվարկը հեղեղելու համար: Լռելյայն սահմանաչափը սահմանված է 10 հազար «oops», բայց ցանկության դեպքում այն ​​կարող է փոխվել oops_limit պարամետրի միջոցով:
    • Ավելացվել է LEGACY_TIOCSTI և sysctl legacy_tiocsti կազմաձևման պարամետրը՝ ioctl TIOCSTI-ի միջոցով տերմինալում տվյալներ տեղադրելու հնարավորությունը անջատելու համար, քանի որ այս գործառույթը կարող է օգտագործվել կամայական նիշերը տերմինալի մուտքագրման բուֆերում փոխարինելու և օգտվողի մուտքագրումը նմանակելու համար:
    • Առաջարկվում է ներքին կառուցվածքի նոր տեսակ՝ encoded_page, որտեղ ցուցիչի ստորին բիթերը օգտագործվում են լրացուցիչ տեղեկություններ պահելու համար, որոնք օգտագործվում են ցուցիչի պատահական անջատումից պաշտպանվելու համար (եթե մատնանշումը իրականում անհրաժեշտ է, այդ լրացուցիչ բիթերը պետք է նախ ջնջվեն): .
    • ARM64 պլատֆորմի վրա, բեռնման փուլում, հնարավոր է միացնել կամ անջատել Shadow Stack մեխանիզմի ծրագրային ներդրումը, որն օգտագործվում է ֆունկցիայից վերադարձի հասցեի վերագրանցումից պաշտպանվելու համար, երբ բուֆերային գերհոսք է տեղի ունենում կույտի վրա ( Պաշտպանության էությունը կայանում է նրանում, որ հսկողությունը ֆունկցիային փոխանցելուց հետո վերադարձի հասցեն պահպանվի առանձին «ստվերային» կույտում և տվյալ հասցեն առբերվի մինչև ֆունկցիայից դուրս գալը): Shadow Stack-ի ապարատային և ծրագրային ապահովման աջակցությունը մեկ միջուկի հավաքում թույլ է տալիս օգտագործել մեկ միջուկ տարբեր ARM համակարգերի վրա՝ անկախ ցուցիչի իսկորոշման հրահանգներին աջակցելուց: Ծրագրային ապահովման ներդրումն իրականացվում է բեռնման ժամանակ կոդում անհրաժեշտ հրահանգները փոխարինելու միջոցով:
    • Ավելացվել է Intel պրոցեսորների վրա ասինխրոն ելքի ծանուցման մեխանիզմի օգտագործման աջակցություն, որը թույլ է տալիս հայտնաբերել SGX անկլավներում կատարվող կոդի վրա մեկ քայլ հարձակումներ:
    • Առաջարկվում է գործողությունների մի շարք, որը թույլ է տալիս հիպերվիզորին աջակցել Intel TDX (Trusted Domain Extensions) հյուր համակարգերի հարցումներին:
    • Միջուկի կառուցման կարգավորումները RANDOM_TRUST_BOOTLOADER և RANDOM_TRUST_CPU հեռացվել են՝ հօգուտ հրամանի տողի համապատասխան ընտրանքների՝ random.trust_bootloader և random.trust_cpu:
    • Landlock մեխանիզմը, որը թույլ է տալիս սահմանափակել մի խումբ գործընթացների փոխազդեցությունը արտաքին միջավայրի հետ, ավելացրել է աջակցություն LANDLOCK_ACCESS_FS_TRUNCATE դրոշի համար, ինչը հնարավորություն է տալիս վերահսկել ֆայլերի կրճատման գործողությունների կատարումը:
  • Ցանցային ենթահամակարգ
    • IPv6-ի համար ավելացվել է աջակցություն PLB-ին (Protective Load Balancing)՝ ցանցային կապերի միջև բեռի հավասարակշռման մեխանիզմ, որն ուղղված է տվյալների կենտրոնի անջատիչների գերբեռնվածության կետերի կրճատմանը: Փոփոխելով IPv6 հոսքի պիտակը, PLB-ն պատահականորեն փոխում է փաթեթների ուղիները՝ փոխարկիչի նավահանգիստների բեռը հավասարակշռելու համար: Փաթեթների վերադասավորումը նվազեցնելու համար այս գործողությունը հնարավորության դեպքում կատարվում է անգործության ժամանակաշրջաններից հետո: Google-ի տվյալների կենտրոններում PLB-ի օգտագործումը միջինը 60%-ով նվազեցրել է անջատիչ նավահանգիստների բեռի անհավասարակշռությունը, 33%-ով կրճատել է փաթեթների կորուստը և 20%-ով կրճատել հետաձգումը:
    • Ավելացվեց վարորդ MediaTek սարքերի համար, որոնք աջակցում են Wi-Fi 7 (802.11be):
    • Ավելացվել է 800 գիգաբիթանոց հղումների աջակցություն:
    • Ավելացվեց ցանցային ինտերֆեյսները անմիջապես վերանվանելու հնարավորությունը՝ առանց աշխատանքը դադարեցնելու:
    • IP հասցեի նշումը, որին փաթեթը հասել է, ավելացվել է SYN ջրհեղեղի մասին տեղեկամատյանների հաղորդագրություններին:
    • UDP-ի համար ներդրվել է ցանցի տարբեր անունների տարածքների համար առանձին հեշ աղյուսակներ օգտագործելու հնարավորությունը:
    • Ցանցային կամուրջների համար իրականացվել է MAB (MAC Authentication Bypass) վավերացման մեթոդի աջակցություն:
    • CAN արձանագրության (CAN_RAW) համար SO_MARK վարդակից ռեժիմի աջակցությունն իրականացվել է fwmark-ի վրա հիմնված երթևեկության զտիչներ կցելու համար:
    • ipset-ն իրականացնում է բիթմասկի նոր պարամետր, որը թույլ է տալիս IP հասցեում կամայական բիթերի հիման վրա դիմակ դնել (օրինակ՝ «ipset create set1 hash:ip bitmask 255.128.255.0»):
    • Ավելացվել է ներքին վերնագրերի մշակման աջակցություն թունելավորված փաթեթների ներսում nf_tables-ում:
  • սարքավորում
    • «accel» ենթահամակարգն ավելացվել է հաշվողական արագացուցիչների շրջանակի ներդրմամբ, որը կարող է մատակարարվել կա՛մ անհատական ​​ASIC-ների, կա՛մ IP բլոկների տեսքով՝ SoC-ի և GPU-ի ներսում: Այս արագացուցիչները հիմնականում ուղղված են մեքենայական ուսուցման խնդիրների լուծման արագացմանը։
    • Amdgpu դրայվերը ներառում է աջակցություն GC, PSP, SMU և NBIO IP բաղադրիչներին: ARM64 համակարգերի համար իրականացվում է DCN-ի (Display Core Next) աջակցություն: Պաշտպանված էկրանի ելքի իրականացումը DCN10-ից տեղափոխվել է DCN21 և այժմ կարող է օգտագործվել բազմաթիվ էկրաններ միացնելիս:
    • i915 (Intel) դրայվերը կայունացրել է Intel Arc (DG2/Alchemist) դիսկրետ վիդեո քարտերի աջակցությունը:
    • Nouveau-ի դրայվերն աջակցում է NVIDIA GA102 (RTX 30) GPU-ներին՝ հիմնված Ampere ճարտարապետության վրա: Nva3 (GT215) քարտերի համար ավելացվել է հետին լույսը կառավարելու հնարավորությունը։
    • Ավելացվել է Realtek 8852BE, Realtek 8821CU, 8822BU, 8822CU, 8723DU (USB) և MediaTek MT7996 չիպերի, Broadcom BCM4377/4378/4387 Bluetooth ինտերֆեյսների, ինչպես նաև Motorcomm ENG-ի և DIRAyt8521-ի XNUMX-րդ ինտերֆեյսների վրա հիմնված անլար ադապտերների համար։
    • Ավելացվեց ASoC (ALSA System on Chip) աջակցություն ներկառուցված ձայնային չիպերի HP Stream 8, Advantech MICA-071, Dell SKU 0C11, Intel ALC5682I-VD, Xiaomi Redmi Book Pro 14 2022, i.MX93, Armada 38x, RK3588: Ավելացված է աջակցություն Focusrite Saffire Pro 40 աուդիո ինտերֆեյսի համար: Ավելացվել է Realtek RT1318 աուդիո կոդեկ:
    • Ավելացվել է Sony սմարթֆոնների և պլանշետների աջակցություն (Xperia 10 IV, 5 IV, X և X կոմպակտ, OnePlus One, 3, 3T և Nord N100, Xiaomi Poco F1 և Mi6, Huawei Watch, Google Pixel 3a, Samsung Galaxy Tab 4 10.1:
    • Ավելացվել է աջակցություն ARM SoC-ի և Apple T6000 (M1 Pro), T6001 (M1 Max), T6002 (M1 Ultra), Qualcomm MSM8996 Pro (Snapdragon 821), SM6115 (Snapdragon 662), SM4250 (Snapdragon SM460dragon 6375) համար: տախտակներ, SDM695 (Snapdragon 670), MSM670 (Snapdragon 8976), MSM652 (Snapdragon 8956), RK650 Odroid-Go/rg3326, Zyxel NSA351S, InnoComm i.MX310MM, Od.

Միևնույն ժամանակ, Լատինական Ամերիկայի Ազատ ծրագրաշարի հիմնադրամը ձևավորեց լիովին ազատ միջուկի 6.2 տարբերակը՝ Linux-libre 6.2-gnu, որը մաքրված է որոնվածի տարրերից և վարորդներից, որոնք պարունակում են սեփական բաղադրիչներ կամ կոդի բաժիններ, որոնց շրջանակը սահմանափակված է. արտադրողը։ Նոր թողարկումը մաքրում է նոր բշտիկները նորաստեղծ վարորդի մեջ: Blob-ի բեռնումն անջատված է mt7622, ​​mt7996 wifi և bcm4377 bluetooth վարորդներում: Մաքրված բլբի անունները dts ֆայլերում Aarch64 ճարտարապետության համար: Թարմացված բլոկի մաքրման կոդը տարբեր դրայվերներում և ենթահամակարգերում: Դադարեցրեց s5k4ecgx դրայվերի մաքրումը, քանի որ այն հեռացվեց միջուկից:

Source: opennet.ru

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