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

Երկու ամիս զարգացումից հետո Լինուս Տորվալդսը ներկայացրեց միջուկի թողարկում Linux 5.9. Ամենաուշագրավ փոփոխություններից են՝ սիմվոլների ներմուծման սահմանափակումը սեփական մոդուլներից GPL մոդուլներ, համատեքստի փոխարկման գործողությունների արագացում՝ օգտագործելով FSGSBASE պրոցեսորի հրահանգը, միջուկի պատկերի սեղմման աջակցություն Zstd-ի միջոցով, միջուկում թելերի առաջնահերթության վերամշակում, PRP-ի աջակցություն: (Զուգահեռ ավելորդության արձանագրություն), թողունակության մասին տեղեկացված պլանավորում վերջնաժամկետի ժամանակացույցում, հիշողության էջերի կանխարգելիչ փաթեթավորում, հնարավորությունների դրոշակ՝ CAP_CHECKPOINT_RESTOR, close_range() համակարգի զանգ, dm-crypt-ի կատարողականի բարելավում, կոդերի հեռացում 32-բիթանոց Xen PV-ի հիշողության նոր հյուրերի համար: կառավարման մեխանիզմ, տարբերակ «փրկություն» Btrfs-ում, ներկառուցված կոդավորման աջակցություն ext4 և F2FS-ում:

Նոր տարբերակը ներառում է 16074 ուղղումներ 2011 թվականի մշակողների կողմից,
patch-ի չափը՝ 62 ՄԲ (փոփոխությունները ազդել են 14548 ֆայլերի վրա, ավելացվել է կոդ 782155 տող, ջնջվել է 314792 տող): 45-ում ներկայացված բոլորի մոտ 5.9%-ը
փոփոխությունները կապված են սարքի դրայվերների հետ, փոփոխությունների մոտավորապես 15%-ը
վերաբերմունք ապարատային ճարտարապետությանը հատուկ կոդի թարմացման նկատմամբ, 13%
կապված ցանցային ստեկի հետ, 3%՝ ֆայլային համակարգերի և 3%՝ ներքին
միջուկի ենթահամակարգեր.

Հիմնական նորամուծություններ:

  • Հիշողության և համակարգի ծառայություններ
    • Խստացրեց պաշտպանություն GPL շերտերի օգտագործումից՝ սեփական վարորդներին միջուկի բաղադրիչներին միացնելու համար, որոնք արտահանվում են միայն GPL լիցենզիայի տակ գտնվող մոդուլների համար: TAINT_PROPRIETARY_MODULE դրոշն այժմ ժառանգված է բոլոր մոդուլներում, որոնք ներմուծում են սիմվոլներ այս դրոշով մոդուլներից: Եթե ​​GPL մոդուլը փորձի սիմվոլներ ներմուծել ոչ GPL մոդուլից, ապա այդ GPL մոդուլը կժառանգի TAINT_PROPRIETARY_MODULE պիտակը և չի կարողանա մուտք գործել միջուկի բաղադրիչներ, որոնք հասանելի են միայն GPL լիցենզավորված մոդուլներին, նույնիսկ եթե մոդուլը նախկինում ներմուծել է խորհրդանիշներ։ «gplonly» կատեգորիա: Հակադարձ կողպումը (արտահանվում է միայն EXPORT_SYMBOL_GPL մոդուլներում, որոնք ներմուծել են EXPORT_SYMBOL_GPL), որը կարող է կոտրել սեփական վարորդների աշխատանքը, չի իրականացվում (ժառանգվում է միայն սեփական մոդուլի դրոշը, բայց ոչ GPL կապերը):
    • Ավելացված է kcompactd շարժիչի աջակցություն հիշողության էջերի նախնական փաթեթավորում հետին պլանում՝ միջուկին հասանելի մեծ հիշողության էջերի քանակը մեծացնելու համար: Ըստ նախնական գնահատականների, ֆոնային փաթեթավորումը նվազագույն ծախսերի գնով կարող է նվազեցնել ուշացումները մեծ հիշողության էջեր (հսկայական էջ) տեղաբաշխելիս 70-80 անգամ՝ համեմատած նախկինում օգտագործված փաթեթավորման մեխանիզմի հետ, որը գործարկվում է անհրաժեշտության դեպքում (ըստ պահանջի: ) Արտաքին մասնատման սահմանները սահմանելու համար, որը կտրամադրի kcompactd, ավելացվել է sysctl vm.compaction_proactiveness:
    • Ավելացված է միջուկի պատկերի սեղմման աջակցություն ալգորիթմի միջոցով Զստանդարտ (zstd).
    • x86 համակարգերի համար ներդրվել է պրոցեսորի հրահանգների աջակցություն FSGSBASE, որը թույլ է տալիս կարդալ և փոխել FS/GS ռեգիստրների բովանդակությունը օգտագործողի տարածությունից: Միջուկում FSGSBASE-ն օգտագործվում է համատեքստի փոխարկման գործողություններն արագացնելու համար՝ վերացնելով GSBASE-ի համար MSR գրելու անհարկի գործողությունները, իսկ օգտագործողի տարածքում այն ​​խուսափում է FS/GS փոխելու համար համակարգային անհարկի զանգերից:
    • Ավելացված է «allow_writes» պարամետրը թույլ է տալիս արգելել պրոցեսորի MSR ռեգիստրների փոփոխությունները օգտագործողի տարածքից և սահմանափակել մուտքը դեպի այդ ռեգիստրների բովանդակությունը՝ կարդալու գործողությունները, քանի որ MSR-ի փոփոխությունը կարող է հանգեցնել խնդիրների: Լռելյայնորեն, գրելը դեռ անջատված չէ, և MSR-ի փոփոխությունները արտացոլվում են գրանցամատյանում, բայց ապագայում նախատեսվում է լռելյայն մուտքը միացնել միայն կարդալու ռեժիմին:
    • Դեպի ասինխրոն I/O ինտերֆեյս io_uring Ավելացվեց ամբողջական աջակցություն ասինխրոն բուֆերային ընթերցման գործողությունների համար, որոնք չեն պահանջում միջուկի թելեր: Ձայնագրման աջակցությունը սպասվում է ապագա թողարկումում:
    • I/O ժամանակացույցի վերջնաժամկետում իրականացվել է կարողությունների վրա հիմնված պլանավորում, թույլ տալով ճիշտ որոշումներ կայացնել ասիմետրիկ համակարգերի վերաբերյալ, ինչպիսիք են ARM-ի վրա հիմնված համակարգերը DynamIQ և big.LITTLE, որոնք միավորում են հզոր և պակաս արդյունավետ էներգաարդյունավետ պրոցեսորի միջուկները մեկ չիպի մեջ: Մասնավորապես, նոր ռեժիմը թույլ է տալիս խուսափել ժամանակացույցի անհամապատասխանություններից, երբ դանդաղ CPU միջուկը չունի համապատասխան ռեսուրսներ՝ առաջադրանքը ժամանակին կատարելու համար:
    • Էներգիայի սպառման մոդելը միջուկում (Energy Model frame) այժմ է նկարագրում է ոչ միայն պրոցեսորի էներգիայի սպառման պահվածքը, այլև ընդգրկում է ծայրամասային սարքերը:
    • Close_range() համակարգի կանչն իրականացվել է, որպեսզի գործընթացին թույլատրվի միանգամից փակել բաց ֆայլերի նկարագրիչների մի ամբողջ շարք:
    • Տեքստային վահանակի և fbcon դրայվերի իրականացումից կոդը հեռացվել է, որն ապահովում է տեքստը ծրագրային կերպով հետ ոլորելու հնարավորություն (CONFIG_VGACON_SOFT_SCROLLBACK) ավելի քան VGA տեքստային ռեժիմի վիդեո հիշողության քանակով:
    • Վերանախագծված ալգորիթմ՝ միջուկում գտնվող թելերին առաջնահերթություններ նշանակելու համար: Նոր տարբերակն ապահովում է ավելի լավ հետևողականություն միջուկի բոլոր ենթահամակարգերում իրական ժամանակում առաջադրանքներին առաջնահերթություններ նշանակելիս:
    • Ավելացվեց sysctl sched_uclamp_util_min_rt_default վերահսկելու պրոցեսորի ուժեղացման կարգավորումները իրական ժամանակում առաջադրանքների համար (օրինակ, դուք կարող եք փոխել իրական ժամանակի առաջադրանքների վարքագիծը թռիչքի ժամանակ՝ մարտկոցի էներգիայի կամ շարժական համակարգերի վրա անցնելուց հետո էներգիա խնայելու համար):
    • Նախապատրաստվել են էջերի քեշում «Transparent Huge Pages» տեխնոլոգիայի աջակցությունն իրականացնելու համար:
    • fanotify շարժիչը ներդնում է նոր դրոշներ FAN_REPORT_NAME և FAN_REPORT_DIR_FID՝ ծնողի անունը և եզակի FID տեղեկությունները հաղորդելու համար, երբ գրացուցակի տարրերի և ոչ գրացուցակի օբյեկտների համար տեղի են ունենում իրադարձությունների ստեղծում, ջնջում կամ շարժման դեպքեր:
    • c-խմբերի համար իրականացվել է նոր slab հիշողության կարգավորիչ, որը նշանավոր է սալերի հաշվառումը հիշողության էջի մակարդակից միջուկի օբյեկտի մակարդակ տեղափոխելու համար, ինչը հնարավորություն է տալիս սալերի էջերը կիսել տարբեր cխմբերում՝ յուրաքանչյուր cgroup-ի համար առանձին սալաքարեր հատկացնելու փոխարեն: Առաջարկվող մոտեցումը հնարավորություն է տալիս բարձրացնել սալաքարի օգտագործման արդյունավետությունը, նվազեցնել սալաքարի համար օգտագործվող հիշողության չափը 30-45%-ով, զգալիորեն նվազեցնել միջուկի հիշողության ընդհանուր սպառումը և նվազեցնել հիշողության մասնատումը:
    • Ձայնային ենթահամակարգում ԱԼՍԱ и USB դարակ, համաձայն վերջերս ընդունված Linux-ի միջուկում ներառական տերմինաբանության օգտագործման վերաբերյալ առաջարկություններ, մաքրվեցին քաղաքականապես ոչ ճիշտ տերմինները: Կոդը մաքրվել է «ստրուկ», «վարպետ», «սև ցուցակ» և «սպիտակ ցուցակ» բառերից։
  • Վիրտուալացում և անվտանգություն
    • Միջուկը կառուցելիս՝ օգտագործելով Clang կոմպիլյատորը հայտնվեց կարողությունը կարգավորել (CONFIG_INIT_STACK_ALL_ZERO) ավտոմատ սկզբնավորումը զրոյի վրա պահվող բոլոր փոփոխականները (կառուցելիս նշեք «-ftrivial-auto-var-init=zero»):
    • Seccomp ենթահամակարգում օգտագործողի տարածքում գործընթացի կառավարման ռեժիմն օգտագործելիս, ավելացրել է առիթ ֆայլերի նկարագրիչների փոխարինում մոնիտորինգի գործընթացում` համակարգային կանչերը լիովին ընդօրինակելու համար, որոնք հանգեցնում են ֆայլերի նկարագրիչների ստեղծմանը: Ֆունկցիոնալությունը պահանջված է մեկուսացված բեռնարկղային համակարգերում և Chrome-ի համար ավազատուփի ներդրումներում:
    • Xtensa և csky ճարտարապետությունների համար ավելացվել է աջակցություն՝ սահմանափակելու համակարգային զանգերը՝ օգտագործելով seccomp ենթահամակարգը: Xtensa-ի համար աուդիտի մեխանիզմի աջակցությունը լրացուցիչ իրականացվում է:
    • Ավելացված է նոր հնարավորությունների դրոշ CAP_CHECKPOINT_RESTORE, որը թույլ է տալիս մուտք գործել գործընթացների սառեցման և վիճակի վերականգնման հետ կապված հնարավորություններ՝ առանց լրացուցիչ արտոնությունների փոխանցման:
    • GCC 11-ն ապահովում է ձեզ անհրաժեշտ բոլոր հնարավորությունները
      վրիպազերծման գործիք KCSAN (Kernel Concurrency Sanitizer), որը նախատեսված է միջուկում մրցավազքի պայմանները դինամիկ կերպով հայտնաբերելու համար: Այսպիսով, KCSAN-ն այժմ կարող է օգտագործվել GCC-ում կառուցված միջուկների հետ:

    • AMD Zen-ի և պրոցեսորի նոր մոդելների համար ավելացրել է աջակցություն P2PDMA տեխնոլոգիային, որը թույլ է տալիս օգտագործել DMA՝ PCI ավտոբուսին միացված երկու սարքերի հիշողության միջև տվյալների ուղղակի փոխանցման համար:
    • dm-crypt-ում ավելացվել է ռեժիմ, որը թույլ է տալիս նվազեցնել ուշացումը՝ կատարելով գաղտնագրային տվյալների մշակում՝ առանց աշխատանքային հերթերի օգտագործման: Այս ռեժիմը նույնպես անհրաժեշտ է հետ ճիշտ աշխատանքի համար գոտիավորված բլոկ սարքեր (սարքեր, որոնք ունեն տարածքներ, որոնք պետք է գրվեն հաջորդաբար, թարմացնելով բլոկների ամբողջ խումբը): Աշխատանքներ են տարվել dm-crypt-ում թողունակությունը մեծացնելու և հետաձգումը նվազեցնելու ուղղությամբ:
    • Հեռացվել է կոդը՝ 32-բիթանոց հյուրերին աջակցելու համար, որոնք աշխատում են պարավիրտուալացման ռեժիմով, որն աշխատում է Xen հիպերվիզորով: Նման համակարգերի օգտատերերը պետք է անցնեն 64-բիթանոց միջուկների օգտագործմանը հյուրի միջավայրում կամ օգտագործեն ամբողջական (HVM) կամ համակցված (PVH) վիրտուալացման ռեժիմներ՝ պարավիրտուալիզացիայի (PV) փոխարեն՝ միջավայրեր գործարկելու համար:
  • Սկավառակի ենթահամակարգ, I/O և ֆայլային համակարգեր
    • Btrfs ֆայլային համակարգի վրա իրականացվել է «փրկարար» մոնտաժի տարբերակ, որը միավորում է վերականգնման բոլոր մյուս տարբերակների հասանելիությունը: «alloc_start» և «subvolrootid» տարբերակների աջակցությունը հեռացվել է, իսկ «inode_cache» տարբերակը հնացել է։ Կատարվել են կատարողականի օպտիմալացում, հատկապես նկատելիորեն արագացնելով fsync() գործողությունների կատարումը: Ավելացված է CRC32c-ից բացի այլ ստուգաչափերի այլ տեսակներ օգտագործելու հնարավորություն:
    • Ավելացված է ext4 և F2FS ֆայլային համակարգերում ներկառուցված կոդավորումը (Inline Encryption) օգտագործելու հնարավորությունը, ինչի համար տրամադրվում է «inlinecrypt» տեղադրման տարբերակը: Ներկառուցված գաղտնագրման ռեժիմը թույլ է տալիս օգտագործել գաղտնագրման մեխանիզմները, որոնք ներկառուցված են սկավառակի վերահսկիչի մեջ, որը թափանցիկ կերպով ծածկագրում և վերծանում է մուտքը/ելքը:
    • XFS-ում ապահովված inode-ի վերականգնում (լվացում) ամբողջովին ասինխրոն ռեժիմով, որը չի արգելափակում գործընթացները հիշողության մաքրման գործողություն կատարելիս: Լուծվել է քվոտայի երկարատև խնդիր, որի հետևանքով մեղմ սահմանաչափերի և ինոդերի սահմանաչափի նախազգուշացումները սխալ են հետագծվել: DAX աջակցության միասնական իրականացում ext4-ի և xfs-ի համար:
    • Ext4-ում իրականացվել է բլոկների տեղաբաշխման բիթքարտեզները նախապես բեռնելու համար: Չնախապատրաստված խմբերի սահմանափակ սկանավորման հետ զուգակցված՝ օպտիմալացումը նվազեցրեց շատ մեծ միջնորմներ տեղադրելու համար անհրաժեշտ ժամանակը:
    • F2FS-ում ավելացրեց ioctl F2FS_IOC_SEC_TRIM_FILE, որը թույլ է տալիս օգտագործել TRIM/discard հրամանները ֆայլում նշված տվյալները ֆիզիկապես վերակայելու համար, օրինակ՝ ջնջելու մուտքի ստեղները՝ առանց մնացորդային տվյալներ թողնելու սկավառակի վրա:
      F2FS-ում նույնպես ավելացրեց աղբահանության նոր ռեժիմ՝ GC_URGENT_LOW, որն ավելի ագրեսիվ է աշխատում՝ վերացնելով պարապ վիճակում գտնվելու որոշ ստուգումներ՝ նախքան աղբահավաքը գործարկելը:

    • bcache-ում չափսերի համար bucket_size-ն ավելացել է 16-ից մինչև 32 բիթ՝ պատրաստվելով գոտիավորված սարքի քեշերը միացնելուն:
    • SCSI ենթահամակարգին ավելացվել է UFS կարգավորիչների կողմից տրամադրված ներկառուցված ապարատային կոդավորման հիման վրա ներկառուցված կոդավորումն օգտագործելու հնարավորությունը (Ունիվերսալ ֆլեշ պահեստավորում).
    • Ավելացվել է միջուկի նոր հրամանի տող «debugfs» պարամետրը, որը թույլ է տալիս վերահսկել համանուն կեղծ FS-ի առկայությունը:
    • NFSv4.2 հաճախորդը ապահովում է ընդլայնված ֆայլի ատրիբուտների աջակցություն (xattr):
    • dm-փոշու մեջ ավելացրեց ինտերֆեյս՝ սկավառակի վրա հայտնաբերված բոլոր վատ բլոկների ցանկը միանգամից ցուցադրելու համար («dmsetup message dust1 0 listbadblocks»):
    • md/raid5-ի համար /sys/block/md1/md/stripe_size պարամետրն ավելացվել է STRIPE բլոկի չափը կարգավորելու համար:
    • NVMe պահեստավորման սարքերի համար ավելացրել է սկավառակի գոտիավորման հրամանների աջակցություն (ZNS, NVM Express Zoned Namespace), որը թույլ է տալիս պահեստային տարածքը բաժանել գոտիների, որոնք կազմում են բլոկների խմբեր՝ սկավառակի վրա տվյալների տեղադրման ավելի ամբողջական վերահսկողության համար:
  • Ցանցային ենթահամակարգ
    • Netfilter-ում ավելացրել է Փաթեթները մերժելու ունակությունը փուլում՝ նախքան երթուղային ստուգումը (ՄԵՐԺՈՒՄ արտահայտությունն այժմ կարող է օգտագործվել ոչ միայն INPUT, FORWARD և OUTPUT շղթաներում, այլ նաև icmp-ի և tcp-ի PREROUTING փուլում):
    • Nftables-ում ավելացրել է կոնֆիգուրացիայի փոփոխությունների հետ կապված իրադարձությունների աուդիտի հնարավորություն:
    • nftable-ներում netlink API-ում ավելացրել է աջակցություն անանուն շղթաների համար, որոնց անվանումը դինամիկ կերպով նշանակվում է միջուկի կողմից: Երբ դուք ջնջում եք կանոն, որը կապված է անանուն շղթայի հետ, շղթան ինքնին ինքնաբերաբար ջնջվում է:
    • BPF-ն ավելացնում է կրկնողներին աջակցություն՝ անցնելու, զտելու և փոփոխելու ասոցիատիվ զանգվածների (քարտեզների) տարրերը՝ առանց տվյալների օգտագործողի տարածության մեջ պատճենելու: Iterators-ը կարող է օգտագործվել TCP և UDP վարդակների համար, ինչը թույլ է տալիս BPF ծրագրերին կրկնել բաց վարդակների ցուցակները և դրանցից հանել իրենց անհրաժեշտ տեղեկատվությունը:
    • Ավելացվեց BPF ծրագրի նոր տեսակ BPF_PROG_TYPE_SK_LOOKUP, որը գործարկվում է, երբ միջուկը փնտրում է մուտքային կապի համար համապատասխան լսողական վարդակ: Օգտագործելով այսպիսի BPF ծրագիր, դուք կարող եք ստեղծել մշակիչներ, որոնք որոշում են կայացնում, թե որ վարդակից պետք է կապակցվի կապը, առանց սահմանափակվելու bind() համակարգի կանչով: Օրինակ, դուք կարող եք կապել մեկ վարդակից մի շարք հասցեների կամ նավահանգիստների հետ: Բացի այդ, bpf_setsockopt()-ին ավելացվել է SO_KEEPALIVE դրոշի աջակցությունը և ներդրվել է BPF_CGROUP_INET_SOCK_RELEASE մշակիչներ տեղադրելու հնարավորությունը, որոնք կանչվում են վարդակից ազատվելիս:
    • Արձանագրային աջակցություն է իրականացվել PRP (Parallel Redundancy Protocol), որը թույլ է տալիս Ethernet-ի վրա հիմնված անցում կատարել պահուստային ալիքի, որը թափանցիկ է հավելվածների համար, ցանցի որևէ բաղադրիչի ձախողման դեպքում:
    • Stack mac80211 ավելացրել է Աջակցություն չորս փուլային WPA/WPA2-PSK ալիքի բանակցություններին մուտքի կետի ռեժիմում:
    • Ավելացվել է qdisc (հերթի կարգապահություն) ժամանակացույցը փոխելու հնարավորություն՝ օգտագործելու FQ-PIE (Flow Queue PIE) ցանցի հերթերի կառավարման ալգորիթմը լռելյայնորեն, որի նպատակն է նվազեցնել միջանկյալ փաթեթների բուֆերացման բացասական ազդեցությունը եզրային ցանցային սարքավորումների վրա (bufferbloat) ցանցերում: մալուխային մոդեմներ.
    • MPTCP-ին (MultiPath TCP) ավելացվել են նոր հնարավորություններ՝ TCP արձանագրության ընդլայնումներ՝ TCP կապի գործարկումը կազմակերպելու համար՝ փաթեթների առաքումը միաժամանակ մի քանի երթուղիներով տարբեր ցանցային ինտերֆեյսների միջոցով՝ կապված տարբեր IP հասցեների հետ: Ավելացվել է syncookie-ի, DATA_FIN-ի, բուֆերային ավտոմատ կարգաբերման, վարդակների ախտորոշման և REUSEADDR, REUSEPORT և V6ONLY դրոշների համար setsockopt-ում:
    • Վիրտուալ երթուղային աղյուսակների համար VRF (Վիրտուալ երթուղղում և վերահասցեավորում), որոնք թույլ են տալիս կազմակերպել մի քանի երթուղային տիրույթների աշխատանքը մեկ համակարգում, ներդրվել է «խիստ» ռեժիմը: Այս ռեժիմում վիրտուալ աղյուսակը կարող է կապված լինել միայն երթուղային աղյուսակի հետ, որը չի օգտագործվում այլ վիրտուալ աղյուսակներում:
    • Անլար վարորդը ath11k է ավելացրել է աջակցություն 6 ԳՀց հաճախականությամբ և սպեկտրալ սկանավորում.
  • սարքավորում
    • Հեռացվել է UniCore ճարտարապետությունն աջակցելու համար նախատեսված կոդը, որը մշակվել է Պեկինի համալսարանի միկրոպրոցեսորային կենտրոնում և ներառվել է Linux միջուկում 2011 թվականին: Այս ճարտարապետությունը չի պահպանվել 2014 թվականից և չունի աջակցություն GCC-ում:
    • Իրականացվել է RISC-V ճարտարապետության աջակցություն kcov (debugfs ինտերֆեյս միջուկի ծածկույթի վերլուծության համար), kmemleak (հիշողության արտահոսքի հայտնաբերման համակարգ), կույտի պաշտպանություն, թռիչքի նշաններ և անխափան գործողություններ (ժամաչափի ազդանշաններից անկախ բազմաթիվ առաջադրանքներ):
    • PowerPC-ի ճարտարապետության համար ներդրվել է spinlock հերթերի աջակցություն, ինչը զգալիորեն բարելավել է աշխատանքը կողպեքի կոնֆլիկտային իրավիճակներում:
    • ARM և ARM64 ճարտարապետությունների համար պրոցեսորի հաճախականության կարգավորման մեխանիզմը լռելյայն միացված է ժամանակացույց (cpufreq կառավարիչ), որն ուղղակիորեն օգտագործում է տեղեկատվությունը առաջադրանքների ժամանակացույցից՝ հաճախականությունը փոխելու որոշում կայացնելու համար և կարող է անմիջապես մուտք գործել cpufreq դրայվերներ՝ արագ փոխելու հաճախականությունը՝ ակնթարթորեն կարգավորելով պրոցեսորի գործառնական պարամետրերը ընթացիկ բեռին:
    • Intel գրաֆիկական քարտերի i915 DRM դրայվերը ներառում է միկրոճարտարապետության վրա հիմնված չիպերի աջակցություն Հրթիռային լիճ և ավելացրեց նախնական աջակցություն դիսկրետ քարտերի համար Intel Xe DG1.
    • Amdgpu վարորդն ավելացրել է նախնական աջակցություն AMD GPU-ների համար Navi 21- ը (Navy Flounder) և Navi 22- ը (Sienna Cichlid): Ավելացվել է աջակցություն UVD/VCE տեսանյութերի կոդավորման և ապակոդավորման արագացման շարժիչների համար Հարավային կղզիների GPU-ի համար (Radeon HD 7000):
      Ավելացվեց էկրանը 90, 180 կամ 270 աստիճանով պտտելու հատկություն:

      Հետաքրքիր է, դրայվերը AMD GPU-ի համար է միջուկի ամենամեծ դրայվերը. այն ունի մոտ 2.71 մլն տող կոդ, որը կազմում է միջուկի ընդհանուր չափի մոտավորապես 10%-ը (27.81 մլն տող): Միևնույն ժամանակ, 1.79 միլիոն տող հաշվառվում է ավտոմատ գեներացված վերնագրի ֆայլերով՝ GPU ռեգիստրների տվյալների հետ, իսկ C կոդը 366 հազար տող է (համեմատության համար նշենք, որ Intel i915 դրայվերը ներառում է 209 հազար տող, իսկ Nouveau-ն՝ 149 հազար):

    • Nouveau-ում վարորդ ավելացրել է աջակցություն շրջանակ առ կադր ամբողջականության ստուգման համար՝ օգտագործելով CRC (Cyclic Redundancy Checks) NVIDIA GPU ցուցադրման շարժիչներում: Իրականացումը հիմնված է NVIDIA-ի կողմից տրամադրված փաստաթղթերի վրա:
    • LCD վահանակների համար ավելացված դրայվերներ՝ Frida FRD350H54004, KOE TX26D202VM0BWA, CDTech S070PWS19HP-FC21, CDTech S070SWV29HG-DC44, Tianma TM070JVHG33 և XBD599da:
    • Աջակցում է ALSA աուդիո ենթահամակարգը Intel Silent Stream (արտաքին HDMI սարքերի համար շարունակական սնուցման ռեժիմ՝ նվագարկումը սկսելիս հետաձգումը վերացնելու համար) և նոր սարք վերահսկելու խոսափողի ակտիվացման և խլացման կոճակների լուսավորությունը, ինչպես նաև ավելացրել է աջակցություն նոր սարքավորումների համար, ներառյալ կարգավորիչը Լունգսոն 7A1000.
    • Ավելացված աջակցություն Arm Toards- ին, սարքերն ու հարթակներին. Pine64 PinePhone v1.2, Lenovo Ideapad Duet 10.1, Asus Google Nexus 7, Qualcomm Snapdragon SDM500 (օգտագործվում է Sony Xperia 630, XA10 Plus եւ XA10) Ultra), Jetson Xavier NX, Amlogic WeTek Core2, Aspeed EthanolX, հինգ նոր տախտակ՝ հիմնված NXP i.MX2-ի, MikroTik RouterBoard 2-ի, Xiaomi Libra-ի, Microsoft Lumia 2-ի, Sony Xperia Z6-ի, MStar-ի, Microchip Keepine Bay-ի վրա, v3011, Renesas RZ/G950H.

Միաժամանակ Լատինական Ամերիկայի Ազատ Ծրագրային ապահովման հիմնադրամը ձեւավորվել է
տարբերակը ամբողջովին անվճար միջուկ 5.9 - Linux-libre 5.9-gnu, մաքրված որոնվածից և վարորդի տարրերից, որոնք պարունակում են ոչ ազատ բաղադրիչներ կամ ծածկագրի բաժիններ, որոնց շրջանակը սահմանափակված է արտադրողի կողմից: Նոր թողարկումն անջատում է բլբի բեռնումը WiFi rtw8821c և SoC MediaTek mt8183 վարորդների համար: Թարմացված բլբի մաքրման կոդը Habanalabs, Wilc1000, amdgpu, mt7615, i915 CSR, Mellanox mlxsw (Spectrum3), r8169 (rtl8125b-2) և x86 սենսորային էկրանի դրայվերներում և ենթահամակարգերում:

Source: opennet.ru

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