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

Երկու ամիս մշակումից հետո Լինուս Տորվալդսը ներկայացրեց Linux միջուկի 5.17 թողարկումը: Ամենաուշագրավ փոփոխություններից են՝ AMD պրոցեսորների կատարողականի կառավարման նոր համակարգ, ֆայլային համակարգերում օգտագործողի ID-ները ռեկուրսիվ կերպով քարտեզագրելու հնարավորություն, շարժական կոմպիլացված BPF ծրագրերի աջակցություն, կեղծ պատահական թվերի գեներատորի անցում BLAKE2s ալգորիթմին, RTLA օգտակար գործիք: իրական ժամանակում կատարման վերլուծության համար, ցանցային ֆայլային համակարգերի քեշավորման համար նոր fscache backend, անանուն mmap գործողություններին անուններ կցելու հնարավորություն:

Նոր տարբերակը ներառում է 14203 ուղղում 1995 ծրագրավորողների կողմից, կարկատանի չափը 37 ՄԲ է (փոփոխությունները ազդել են 11366 ֆայլերի վրա, ավելացվել է 506043 կոդ, ջնջվել է 250954 տող): 44-ում ներկայացված բոլոր փոփոխությունների մոտ 5.17%-ը կապված է սարքի դրայվերների հետ, փոփոխությունների մոտավորապես 16%-ը կապված է ապարատային ճարտարապետությանը հատուկ կոդի թարմացման հետ, 15%-ը կապված է ցանցի ստեկին, 4%-ը՝ ֆայլային համակարգերին և 4%-ը։ կապված են միջուկի ներքին ենթահամակարգերի հետ:

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

  • Սկավառակի ենթահամակարգ, I/O և ֆայլային համակարգեր
    • Իրականացրել է մոնտաժված ֆայլային համակարգերի օգտատերերի ID-ների ներկառուցված քարտեզագրման հնարավորությունը, որն օգտագործվում է մոնտաժված արտասահմանյան միջնորմի վրա կոնկրետ օգտագործողի ֆայլերը համեմատելու համար ընթացիկ համակարգի մեկ այլ օգտագործողի հետ: Ավելացված հատկությունը թույլ է տալիս ռեկուրսիվ կերպով օգտագործել քարտեզագրումը ֆայլային համակարգերի վերևում, որոնց համար արդեն կիրառվել է քարտեզագրում:
    • Fscache ենթահամակարգը, որն օգտագործվում է ցանցային ֆայլային համակարգերի միջոցով փոխանցվող տվյալների տեղական ֆայլային համակարգում քեշավորումը կազմակերպելու համար, ամբողջությամբ վերաշարադրվել է: Նոր ներդրումն առանձնանում է կոդի զգալի պարզեցմամբ և պլանավորման և հետևելու օբյեկտների վիճակների բարդ գործողությունների ավելի պարզ մեխանիզմներով փոխարինմամբ։ Նոր fscache-ի աջակցությունն իրականացվում է CIFS ֆայլային համակարգում:
    • Իրադարձությունների հետագծման ենթահամակարգը fanotify FS-ում իրականացնում է իրադարձության նոր տեսակ՝ FAN_RENAME, որը թույլ է տալիս անմիջապես ընդհատել ֆայլերի կամ գրացուցակների վերանվանման գործողությունը (նախկինում վերանվանումները մշակելու համար օգտագործվում էին երկու առանձին իրադարձություններ FAN_MOVED_FROM և FAN_MOVED_TO):
    • Btrfs ֆայլային համակարգը օպտիմիզացրել է գրանցման և fsync գործառնությունները մեծ դիրեկտորիաների համար, որոնք իրականացվել են միայն ինդեքսային ստեղների պատճենմամբ և գրանցված մետատվյալների քանակի կրճատմամբ: Աջակցություն է տրամադրվել ազատ տարածության գրառումների չափերով ինդեքսավորման և որոնման համար, ինչը նվազեցրել է հետաձգումը մոտավորապես 30%-ով և կրճատել որոնման ժամանակը: Թույլատրվում է ընդհատել դեֆրագրման գործողությունները: Սկավառակների միջև հավասարակշռելիս սարքեր ավելացնելու հնարավորությունն անջատված է, այսինքն. skip_balance տարբերակով ֆայլային համակարգ մոնտաժելիս:
    • Առաջարկվել է Ceph ֆայլային համակարգի տեղադրման նոր շարահյուսություն՝ լուծելով IP հասցեների հետ կապված առկա խնդիրները: Բացի IP հասցեներից, այժմ կարող եք օգտագործել կլաստերի նույնացուցիչը (FSID)՝ սերվերը նույնականացնելու համար՝ mount -t ceph: [էլեկտրոնային փոստով պաշտպանված]_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Ext4 ֆայլային համակարգը տեղափոխվել է նոր մոնտաժային API, որը բաժանում է մոնտաժային ընտրանքների վերլուծության և գերբլոկի կազմաձևման քայլերը: Մենք դադարեցրել ենք lazytime և nolazytime mount տարբերակների աջակցությունը, որոնք ավելացվել են որպես ժամանակավոր փոփոխություն՝ հեշտացնելու util-linux-ի անցումը MS_LAZYTIME դրոշակի օգտագործմանը: Ավելացվել է FS-ում պիտակներ տեղադրելու և կարդալու աջակցություն (ioctl FS_IOC_GETFSLABEL և FS_IOC_SETFSLABEL):
    • NFSv4-ն ավելացրել է աջակցություն՝ ֆայլերի և գրացուցակների անուններում մեծատառերի նկատմամբ զգայուն ֆայլային համակարգերում աշխատելու համար: NFSv4.1+-ն ավելացնում է աջակցություն՝ ագրեգացված նստաշրջանների սահմանման համար (տռունկինգ):
  • Հիշողության և համակարգի ծառայություններ
    • Ավելացվել է amd-pstate դրայվեր՝ օպտիմալ կատարման համար հաճախականության դինամիկ կառավարում ապահովելու համար: Վարորդն աջակցում է AMD պրոցեսորներին և APU-ներին՝ սկսած Zen 2 սերնդից, որոնք մշակվել են Valve-ի հետ համատեղ և ուղղված են էներգիայի կառավարման արդյունավետության բարձրացմանը: Հարմարվողական հաճախականության փոփոխությունների համար օգտագործվում է CPPC (Colaborative Processor Performance Control) մեխանիզմը, որը թույլ է տալիս ավելի ճշգրիտ փոխել ցուցիչները (չսահմանափակվելով կատարողականի երեք մակարդակով) և ավելի արագ արձագանքել վիճակի փոփոխություններին, քան նախկինում օգտագործված ACPI-ի վրա հիմնված P- վիճակը: վարորդներ (CPUFreq):
    • eBPF ենթահամակարգն առաջարկում է bpf_loop() կարգավորիչ, որն ապահովում է eBPF ծրագրերում օղակները կազմակերպելու այլընտրանքային միջոց, որն ավելի արագ և հեշտ է ստուգման համար ստուգողի կողմից:
    • Միջուկի մակարդակում ներդրված է CO-RE (Compile Once - Run Everywhere) մեխանիզմը, որը թույլ է տալիս կազմել eBPF ծրագրերի կոդը միայն մեկ անգամ և օգտագործել հատուկ ունիվերսալ բեռնիչ, որը հարմարեցնում է բեռնված ծրագիրը ընթացիկ միջուկին և BTF-ի տեսակներին: (BPF Type Format):
    • Հնարավոր է անուններ վերագրել մասնավոր անանուն (հատկացված malloc-ի միջոցով) հիշողության տարածքներին, ինչը կարող է պարզեցնել վրիպազերծումը և հավելվածներում հիշողության սպառման օպտիմալացումը: Անունները նշանակվում են prctl-ի միջոցով PR_SET_VMA_ANON_NAME դրոշակով և ցուցադրվում են /proc/pid/maps և /proc/pid/smaps ձևաչափերում՝ «[anon: ]»:
    • Առաջադրանքների ժամանակացույցը ապահովում է հետևել և ցուցադրել /proc/PID/sched-ով այն ժամանակը, որն անցկացվում է գործընթացների կողմից հարկադիր պարապ վիճակում, որն օգտագործվում է, օրինակ, նվազեցնելու բեռը, երբ պրոցեսորը գերտաքանում է:
    • Ավելացվեց gpio-sim մոդուլը, որը նախատեսված է փորձարկման համար GPIO չիպերի մոդելավորման համար:
    • «perf ftrace» հրամանին ավելացրել է «latency» ենթահրաման՝ հիստոգրամներ ստեղծելու հետաձգման մասին տեղեկություններով:
    • Ավելացվեց «RTLA» կոմունալ ծառայություններ իրական ժամանակում աշխատանքը վերլուծելու համար: Այն ներառում է կոմունալ ծառայություններ, ինչպիսիք են osnoise (որոշում է օպերացիոն համակարգի ազդեցությունը առաջադրանքի կատարման վրա) և timerlat (փոխում է ժմչփի հետ կապված ուշացումները):
    • Կարկատանների երկրորդ շարքը ինտեգրվել է էջերի ֆոլիոների հայեցակարգի իրականացմանը, որոնք նման են բաղադրյալ էջերին, բայց բարելավված են իմաստաբանությունը և աշխատանքի ավելի հստակ կազմակերպումը: Tomes-ի օգտագործումը թույլ է տալիս արագացնել հիշողության կառավարումը միջուկի որոշ ենթահամակարգերում: Առաջարկվող պատչերը ավարտեցին էջի քեշի վերափոխումը tomes-ի օգտագործման և ավելացրեցին նախնական աջակցություն XFS ֆայլային համակարգում tomes-ին:
    • Ավելացվեց «make mod2noconfig» կառուցման ռեժիմը, որը ստեղծում է կոնֆիգուրացիա, որը հավաքում է բոլոր հաշմանդամ ենթահամակարգերը միջուկի մոդուլների տեսքով:
    • Բարձրացվել են LLVM/Clang տարբերակի պահանջները, որոնք կարող են օգտագործվել միջուկը կառուցելու համար: Այժմ կառուցելը պահանջում է առնվազն LLVM 11 թողարկում:
  • Վիրտուալացում և անվտանգություն
    • Առաջարկվում է կեղծ պատահական թվերի գեներատոր RDRAND-ի թարմացված ներդրում, որը պատասխանատու է /dev/random և /dev/urandom սարքերի աշխատանքի համար, որը նշանավոր է էնտրոպիայի խառնման գործողությունների համար SHA2-ի փոխարեն BLAKE1s հեշ ֆունկցիայի օգտագործման անցումով: Փոփոխությունը բարելավեց կեղծ պատահական թվերի գեներատորի անվտանգությունը՝ վերացնելով խնդրահարույց SHA1 ալգորիթմը և վերացնելով RNG սկզբնավորման վեկտորի վերագրումը։ Քանի որ BLAKE2s ալգորիթմը գերազանցում է SHA1-ին կատարողականով, դրա օգտագործումը նույնպես դրական ազդեցություն ունեցավ կատարողականի վրա:
    • Ավելացվել է պաշտպանություն պրոցեսորների խոցելիություններից, որոնք առաջացել են հրահանգների սպեկուլյատիվ կատարման հետևանքով անվերապահ առաջ թռիչքի գործողություններից հետո: Խնդիրն առաջանում է հիշողության մեջ ճյուղային հրահանգին անմիջապես հաջորդող հրահանգների կանխարգելիչ մշակման պատճառով (SLS, Straight Line Speculation): Պաշտպանությունն ակտիվացնելու համար անհրաժեշտ է կառուցել GCC 12-ի ներկայումս փորձարկվող թողարկումով:
    • Ավելացվել է տեղեկանքների հաշվման հետևելու մեխանիզմ (վերահաշվարկ, տեղեկանք-հաշվում), որի նպատակն է նվազեցնել տեղեկանքների հաշվման սխալների քանակը, որոնք հանգեցնում են հիշողության հասանելիությանը այն ազատելուց հետո: Մեխանիզմը ներկայումս սահմանափակված է ցանցային ենթահամակարգով, սակայն ապագայում այն ​​կարող է հարմարեցվել միջուկի այլ մասերին։
    • Գործընթացի հիշողության էջի աղյուսակում նոր մուտքերի ընդլայնված ստուգումներ են իրականացվել՝ թույլ տալով հայտնաբերել որոշակի տեսակի վնասներ և դադարեցնել համակարգը՝ արգելափակելով հարձակումները վաղ փուլում:
    • Ավելացվեց միջուկի մոդուլները անմիջապես միջուկի միջոցով, այլ ոչ թե օգտագործողի տարածքում գտնվող կառավարչի միջոցով բացելու հնարավորությունը, ինչը թույլ է տալիս օգտագործել LoadPin LSM մոդուլը՝ ապահովելու, որ միջուկի մոդուլները բեռնված են հիշողության մեջ հաստատված պահեստային սարքից:
    • Ապահովված է «-Wcast-function-type» դրոշակով, որը հնարավորություն է տալիս նախազգուշացումներ կատարել ֆունկցիայի ցուցիչները անհամատեղելի տիպի փոխանցելու վերաբերյալ:
    • Ավելացվել է վիրտուալ հոսթի վարորդ pvUSB Xen հիպերվիզորի համար, որն ապահովում է մուտք դեպի հյուր համակարգեր փոխանցված USB սարքեր (թույլ է տալիս հյուրի համակարգերին մուտք գործել հյուրի համակարգին հատկացված ֆիզիկական USB սարքեր):
    • Ավելացվել է մոդուլ, որը թույլ է տալիս Wi-Fi-ի միջոցով շփվել IME (Intel Management Engine) ենթահամակարգի հետ, որը գալիս է Intel պրոցեսորներով ժամանակակից մայր տախտակների մեծ մասում և ներդրվում է որպես առանձին միկրոպրոցեսոր, որը գործում է պրոցեսորից անկախ:
    • ARM64 ճարտարապետության համար աջակցություն է ներդրվել KCSAN (Kernel Concurrency Sanitizer) վրիպազերծման գործիքի համար, որը նախատեսված է միջուկում մրցավազքի պայմանները դինամիկ կերպով հայտնաբերելու համար:
    • 32-բիթանոց ARM համակարգերի համար ավելացվել է հիշողության հետ աշխատելիս սխալները հայտնաբերելու համար KFENCE մեխանիզմի օգտագործման հնարավորությունը:
    • KVM հիպերվիզորն ավելացնում է աջակցություն AMX (Advanced Matrix Extensions) հրահանգներին, որոնք իրականացվել են առաջիկա Intel Xeon Scalable սերվերի պրոցեսորներում:
  • Ցանցային ենթահամակարգ
    • Ավելացվել է աջակցություն ցանցային սարքերի կողքին երթևեկության կառավարման հետ կապված գործողությունների բեռնաթափման համար:
    • Ավելացվեց MCTP (Management Component Transport Protocol) սերիական սարքերի վրա օգտագործելու հնարավորություն: MCTP-ն կարող է օգտագործվել կառավարման կարգավորիչների և նրանց հետ կապված սարքերի (հյուրընկալող պրոցեսորներ, ծայրամասային սարքեր և այլն) միջև հաղորդակցվելու համար:
    • TCP փաթեթը օպտիմիզացվել է, օրինակ՝ recvmsg զանգերի կատարումը բարելավելու համար, ներդրվել է վարդակների բուֆերների հետաձգված թողարկումը:
    • CAP_NET_RAW հեղինակության մակարդակում թույլատրվում է սահմանել SO_PRIORITY և SO_MARK ռեժիմները setsockopt ֆունկցիայի միջոցով:
    • IPv4-ի համար չմշակված վարդակները թույլատրվում են կապել ոչ տեղական IP հասցեներին՝ օգտագործելով IP_FREEBIND և IP_TRANSPARENT տարբերակները:
    • Ավելացվեց sysctl arp_missed_max՝ ARP մոնիտորների ստուգման ժամանակ խափանումների շեմային թիվը կարգավորելու համար, որից հետո ցանցային ինտերֆեյսը դրվում է անջատված վիճակում:
    • Ապահովում է ցանցի անվանատարածքների համար առանձին sysctl min_pmtu և mtu_expires արժեքները կարգավորելու հնարավորություն:
    • Ավելացվել է ethtool API-ին մուտքային և ելքային փաթեթների բուֆերների չափը սահմանելու և որոշելու հնարավորություն:
    • Netfilter-ն ավելացրել է աջակցություն ցանցային կամուրջում տարանցիկ pppoe տրաֆիկի զտման համար:
    • ksmbd մոդուլը, որն իրականացնում է ֆայլերի սերվեր՝ օգտագործելով SMB3 արձանագրությունը, ավելացրել է աջակցություն բանալիների փոխանակման համար, միացրել է ցանցային պորտը 445 smbdirect-ի համար և ավելացրել է աջակցություն «smb2 max credit» պարամետրին:
  • սարքավորում
    • Գաղտնի տեղեկատվության ցուցադրման էկրաններին աջակցություն է ավելացվել drm (Direct Renderering Manager) ենթահամակարգին և i915 դրայվերին, օրինակ՝ որոշ նոութբուքեր հագեցած են ներկառուցված գաղտնի դիտման ռեժիմով էկրաններով, ինչը դժվարացնում է դրսից դիտելը: . Ավելացված փոփոխությունները թույլ են տալիս միացնել մասնագիտացված դրայվերները նման էկրանների համար և վերահսկել զննարկման գաղտնի ռեժիմները՝ կանոնավոր KMS դրայվերներում սահմանելով հատկություններ:
    • Amdgpu դրայվերը ներառում է STB (Smart Trace Buffer) վրիպազերծման տեխնոլոգիայի աջակցություն բոլոր AMD GPU-ների համար, որոնք աջակցում են այն: STB-ն ավելի դյուրին է դարձնում խափանումների վերլուծությունը և խնդիրների աղբյուրի բացահայտումը` հատուկ բուֆերում պահելով վերջին ձախողումից առաջ կատարված գործառույթների մասին տեղեկատվությունը:
    • i915 դրայվերն ավելացնում է աջակցություն Intel Raptor Lake S չիպերին և թույլ է տալիս լռելյայն աջակցություն Intel Alder Lake P չիպերի գրաֆիկական ենթահամակարգին: Հնարավոր է վերահսկել էկրանի հետին լույսը VESA DPCD ինտերֆեյսի միջոցով:
    • Վահանակում ապարատային ոլորման արագացման աջակցությունը վերադարձվել է fbcon/fbdev դրայվերներում:
    • Apple M1 չիպերին աջակցելու համար փոփոխությունների շարունակական ինտեգրումը: Իրականացրել է Simpledrm դրայվերը Apple M1 չիպով համակարգերի վրա օգտագործելու հնարավորությունը՝ որոնվածի տրամադրած շրջանակային բուֆերի միջոցով:
    • Ավելացված է աջակցություն ARM SoС-ի, սարքերի և տախտակների համար Snapdragon 7c, 845 և 888 (Sony Xperia XZ2 / XZ2C / XZ3, Xperia 1 III / 5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek (MT8183) Acer Chromebook 314), Mediatek MT7986a/b (օգտագործվում է Wi-Fi երթուղղիչներում), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI J.320PMSPEXAr , Aspeed AST8/AST8, Engicam i.Core STM2500MP2600, Allwinner Tanix TX32, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t1/t6 MacBook Pro 6000/6001:
    • Ավելացվել է աջակցություն ARM Cortex-M55 և Cortex-M33 պրոցեսորների համար:
    • Ավելացվել է պրոցեսորի MIPS-ի վրա հիմնված սարքերի աջակցություն՝ Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2:
    • Ավելացվել է աջակցություն StarFive JH7100 SoC-ի համար՝ հիմնված RISC-V ճարտարապետության վրա:
    • Ավելացվել է lenovo-yogabook-wmi դրայվեր՝ ստեղնաշարի հետևի լույսը կառավարելու և Lenovo Yoga Book-ի տարբեր սենսորների հասանելիության համար:
    • Ավելացվել է asus_wmi_sensors վարորդը՝ AMD Ryzen պրոցեսորների վրա հիմնված Asus X370, X470, B450, B550 և X399 մայր տախտակների վրա օգտագործվող սենսորներին մուտք գործելու համար:
    • Ավելացվեց x86-android-պլանշետների վարորդ x86-ի վրա հիմնված պլանշետային համակարգիչների համար, որոնք առաքվում են Android հարթակով:
    • Ավելացվեց TrekStor SurfTab duo W1 սենսորային էկրանների և էլեկտրոնային գրչի աջակցությունը Chuwi Hi10 Plus և Pro պլանշետների համար:
    • SoC Tegra 20/30-ի վարորդներն ավելացրել են էներգիայի և լարման կառավարման աջակցություն: Միացնում է բեռնումը հին 32-բիթանոց Tegra SoC սարքերում, ինչպիսիք են ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 և Pad TF300TG:
    • Ավելացված դրայվերներ Siemens արդյունաբերական համակարգիչների համար:
    • Ավելացվել է աջակցություն Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA-043015 և Team-ի համար:
    • Ավելացվել է ձայնային համակարգերի և կոդեկների աջակցություն AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel համակարգերի համար՝ օգտագործելով NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS320DXVS, Texas TEXAX3X194 Tegra35 HD-audio-ի հետ կապված խնդիրները լուծվել են: Ավելացվեց HDA աջակցություն CS41LXNUMX կոդեկների համար: Lenovo և HP նոութբուքերի, ինչպես նաև Gigabyte մայրական տախտակների ձայնային համակարգերի բարելավված աջակցություն:

Source: opennet.ru

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