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

Երկու ամիս մշակումից հետո Լինուս Տորվալդսը ներկայացրեց Linux 6.0 միջուկի թողարկումը: Տարբերակի համարի զգալի փոփոխությունը գեղագիտական ​​պատճառներով է և ֆորմալ քայլ է շարքի մեջ մեծ թվով խնդիրներ կուտակելու անհանգստությունից ազատվելու համար (Լինուսը կատակեց, որ մասնաճյուղի համարը փոխելու պատճառն ավելի հավանական է, որ իր մատները վերջանում են. և ոտքի մատները՝ տարբերակների համարները հաշվելու համար): Ամենաուշագրավ փոփոխություններից են՝ XFS-ում ասինխրոն բուֆերային գրելու աջակցություն, ublk բլոկի դրայվեր, առաջադրանքների ժամանակացույցի օպտիմալացում, միջուկի ճիշտ աշխատանքը ստուգելու մեխանիզմ, ARIA բլոկի ծածկագրի աջակցություն:

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

  • Սկավառակի ենթահամակարգ, I/O և ֆայլային համակարգեր
    • XFS ֆայլային համակարգը ավելացրել է աջակցություն ասինխրոն բուֆերային գրելու համար՝ օգտագործելով io_uring մեխանիզմը: Fio գործիքների միջոցով իրականացված կատարողականի թեստերը (1 շղթա, 4 կԲ բլոկի չափ, 600 վայրկյան, հաջորդական գրություն) ցույց են տալիս մուտքային/ելքային գործառնությունների ավելացում մեկ վայրկյանում (IOPS) 77 k-ից մինչև 209 k, տվյալների փոխանցման արագությունը 314 ՄԲ/վ-ից մինչև 854 ՄԲ/վ, և հետաձգման անկում 9600ns-ից մինչև 120ns (80 անգամ):
    • Btrfs ֆայլային համակարգը իրականացնում է «send» հրամանի արձանագրության երկրորդ տարբերակը, որն ապահովում է լրացուցիչ մետատվյալների աջակցություն՝ ուղարկելով տվյալներ ավելի մեծ բլոկներով (ավելի քան 64K) և փոխանցելով չափերը սեղմված ձևով: Ուղղակի ընթերցման գործողությունների կատարումը զգալիորեն ավելացել է (մինչև 3 անգամ) մինչև 256 հատվածների միաժամանակյա ընթերցման շնորհիվ։ Նվազեցրեց արգելափակման վեճը և արագացրեց մետատվյալների ստուգումը` նվազեցնելով հետաձգված տարրերի համար վերապահված մետատվյալները:
    • Նոր ioctl EXT4_IOC_GETFSUUID և EXT4_IC_SETFSUUID օպերացիաները ավելացվել են ext4 ֆայլային համակարգին՝ գերբլոկում պահվող UUID-ն առբերելու կամ կարգավորելու համար:
    • F2FS ֆայլային համակարգը առաջարկում է հիշողության սպառման ցածր ռեժիմ, որն օպտիմիզացնում է փոքր քանակությամբ RAM ունեցող սարքերի աշխատանքը և թույլ է տալիս նվազեցնել հիշողության սպառումը կրճատված կատարողականության գնով:
    • Ավելացվել է NVMe սկավառակի նույնականացման աջակցություն:
    • NFSv4 սերվերն իրականացնում է ակտիվ հաճախորդների թվի սահմանափակում, որը սահմանվում է որպես 1024 վավեր հաճախորդներ համակարգի յուրաքանչյուր գիգաբայթ RAM-ի համար:
    • CIFS-ի հաճախորդի ներդրումը բարելավեց կատարումը բազմաալիք փոխանցման ռեժիմում:
    • FAN_MARK_IGNORE նոր դրոշակ է ավելացվել իրադարձությունների հետագծման ենթահամակարգին fanotify FS-ում՝ որոշակի իրադարձություններ անտեսելու համար:
    • Overlayfs FS-ում, երբ տեղադրվում է FS-ի վերևում օգտագործողի ID-ի քարտեզագրմամբ, տրամադրվում է ճիշտ աջակցություն POSIX-ին համապատասխան մուտքի վերահսկման ցուցակներին:
    • Ավելացվեց ublk բլոկի դրայվերը, որը հատուկ տրամաբանությունը տեղափոխում է ֆոնային գործընթացի կողմը օգտագործողի տարածքում և օգտագործում է io_uring ենթահամակարգը:
  • Հիշողության և համակարգի ծառայություններ
    • DAMON (Data Access MONitor) ենթահամակարգում ավելացվել են նոր հնարավորություններ, որոնք թույլ են տալիս ոչ միայն վերահսկել գործընթացի մուտքը դեպի RAM օգտվողի տարածքից, այլև ազդել հիշողության կառավարման վրա: Մասնավորապես, առաջարկվել է «LRU_SORT» նոր մոդուլ, որն ապահովում է LRU (Անվազն վերջերս օգտագործված) ցուցակների վերախմբավորում՝ որոշակի հիշողության էջերի առաջնահերթությունը բարձրացնելու համար։
    • Հիշողության նոր շրջաններ ստեղծելու ունակությունն իրականացվել է CXL (Compute Express Link) ավտոբուսի հնարավորությունների միջոցով, որն օգտագործվում է պրոցեսորի և հիշողության սարքերի միջև բարձր արագությամբ փոխազդեցությունը կազմակերպելու համար: CXL-ը թույլ է տալիս միացնել հիշողության նոր տարածքները, որոնք տրամադրվում են արտաքին հիշողության սարքերով և օգտագործել դրանք որպես լրացուցիչ ֆիզիկական հասցեի տարածքի ռեսուրսներ՝ համակարգի պատահական մուտքի հիշողությունը (DDR) կամ մշտական ​​հիշողությունը (PMEM) ընդլայնելու համար:
    • Լուծվել են AMD Zen պրոցեսորների աշխատանքի հետ կապված խնդիրները, որոնք առաջացել են 20 տարի առաջ ավելացված կոդի պատճառով՝ որոշ չիպսեթներում ապարատային խնդիրը լուծելու համար (պրոցեսորը դանդաղեցնելու համար ավելացվել է լրացուցիչ WAIT հրահանգ, որպեսզի չիպսեթը ժամանակ ունենա անգործուն վիճակի մեջ մտնելու համար): Փոփոխությունը հանգեցրեց աշխատանքի ծանրաբեռնվածության նվազմանը, որը հաճախ փոփոխվում է պարապ և զբաղված վիճակների միջև: Օրինակ, լուծումն անջատելուց հետո, tbench թեստի միջին միավորները 32191 ՄԲ/վ-ից բարձրացան մինչև 33805 ՄԲ/վ:
    • Էվրիստիկայով ծածկագիրը հանվել է առաջադրանքների ժամանակացույցից՝ ապահովելով գործընթացների տեղափոխումը դեպի ամենաքիչ բեռնված պրոցեսորները՝ հաշվի առնելով էներգիայի սպառման կանխատեսված շահույթը: Մշակողները եզրակացրեցին, որ էվրիստիկը բավականաչափ օգտակար չէ, և որ ավելի հեշտ է հեռացնել այն և տեղափոխել գործընթացները առանց լրացուցիչ գնահատման, երբ այդպիսի միգրացիան կարող է հանգեցնել էներգիայի ավելի ցածր սպառման (օրինակ, երբ թիրախային պրոցեսորը ցածր էներգիայի մակարդակում է): Էվրիստիկայի անջատումը հանգեցրեց էներգիայի սպառման նվազմանը ինտենսիվ առաջադրանքներ կատարելիս, օրինակ՝ տեսանյութերի վերծանման թեստում էներգիայի սպառումը նվազել է 5.6%-ով։
    • Խոշոր համակարգերում պրոցեսորների միջուկներում առաջադրանքների բաշխումը օպտիմիզացվել է, ինչը բարելավել է աշխատանքը որոշակի տեսակի ծանրաբեռնվածության համար:
    • io_uring asynchronous I/O ինտերֆեյսը առաջարկում է նոր դրոշ՝ IORING_RECV_MULTISHOT, որը թույլ է տալիս օգտագործել բազմաֆունկցիոնալ ռեժիմ recv() համակարգի զանգով՝ միևնույն ցանցի վարդակից միանգամից մի քանի ընթերցման գործողություններ կատարելու համար: io_uring-ը նաև աջակցում է ցանցային փոխանցում առանց միջանկյալ բուֆերացման (զրոյական պատճեն):
    • Իրականացրել է uprobe-ին կցված BPF ծրագրերը քնի վիճակում դնելու հնարավորություն: BPF-ն ավելացնում է նաև նոր կրկնող ksym միջուկի նշանների աղյուսակների հետ աշխատելու համար:
    • Sysfs-ում հնացած «efivars» ինտերֆեյսը, որը նախատեսված էր UEFI boot variables մուտք գործելու համար, հեռացվել է (efivarfs վիրտուալ FS-ն այժմ համընդհանուր օգտագործվում է EFI տվյալների մուտք գործելու համար):
    • Perf utility-ն ունի նոր հաշվետվություններ կողպման կոնֆլիկտների և միջուկի բաղադրիչների կատարման վրա պրոցեսորի ծախսած ժամանակի վերլուծության համար:
    • CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 կարգավորումը հեռացվել է, ինչը թույլ է տվել միջուկը կառուցել «-O3» օպտիմալացման ռեժիմում: Նշվում է, որ օպտիմիզացման ռեժիմների հետ փորձերը կարող են իրականացվել հավաքման ընթացքում դրոշակներ փոխանցելով («կատարել KCFLAGS=-O3»), իսկ Kconfig-ին պարամետր ավելացնելու համար պահանջվում է կրկնվող կատարողական պրոֆիլավորում, որը ցույց է տալիս, որ «-O3» ռեժիմում օգտագործվող օղակի բացումը տալիս է. օգուտ «-O2» օպտիմալացման մակարդակի համեմատ:
    • Ավելացվել է վրիպազերծման ինտերֆեյս՝ առանձին «հիշողության կրճատիչների» աշխատանքի մասին տեղեկատվություն ստանալու համար (գործողներ կանչվում են, երբ հիշողությունը բավարար չէ և փաթեթավորող միջուկի տվյալների կառուցվածքները՝ դրանց հիշողության սպառումը նվազեցնելու համար):
    • OpenRISC և LoongArch ճարտարապետությունների համար իրականացվում է PCI ավտոբուսի աջակցություն:
    • RISC-V ճարտարապետության համար «Zicbom» ընդլայնումն իրականացվել է DMA-ով սարքերը կառավարելու համար, որոնք քեշի հետ կապված չեն:
  • Վիրտուալացում և անվտանգություն
    • Ավելացվել է RV (Runtime Verification) ստուգման մեխանիզմ՝ բարձր հուսալի համակարգերի վրա ճիշտ աշխատանքը ստուգելու համար, որոնք երաշխավորում են ոչ մի խափանում: Ստուգումն իրականացվում է գործարկման ժամանակ՝ կարգավորիչները կցելով հետագծային կետերին, որոնք ստուգում են կատարման իրական առաջընթացը մեքենայի կանխորոշված ​​դետերմինիստական ​​մոդելի հետ, որը սահմանում է համակարգի սպասվող վարքագիծը: Գործարկման ժամանակ մոդելի հետ ստուգումը դիրքավորվում է որպես առավել թեթև և հեշտ իրագործելի մեթոդ՝ կրիտիկական համակարգերի վրա կատարման ճիշտությունը հաստատելու համար՝ լրացնելով դասական հուսալիության ստուգման մեթոդները: RV-ի առավելությունների թվում է խիստ ստուգում ապահովելու հնարավորությունը՝ առանց ամբողջ համակարգի առանձին ներդրման մոդելավորման լեզվով, ինչպես նաև անկանխատեսելի իրադարձություններին ճկուն արձագանքելու հնարավորություն:
    • Ինտեգրված միջուկի բաղադրիչներ Intel SGX2 (Software Guard eXtensions) տեխնոլոգիայի վրա հիմնված անկլավների կառավարման համար, որը հավելվածներին թույլ է տալիս կոդ գործարկել հիշողության մեկուսացված կոդավորված տարածքներում, որոնց հասանելիությունը համակարգի մնացած մասերն ունի: Intel SGX2 տեխնոլոգիան աջակցվում է Intel Ice Lake և Gemini Lake չիպերում և տարբերվում է Intel SGX1-ից անկլավների դինամիկ հիշողության կառավարման լրացուցիչ հրահանգներով:
    • x86 ճարտարապետության համար ներդրվել է կեղծ պատահական թվերի գեներատորի համար սերմը փոխանցելու հնարավորությունը bootloader-ի կարգավորումների միջոցով:
    • SafeSetID LSM մոդուլն այժմ հնարավորություն ունի կառավարելու setgroups() զանգի միջոցով կատարված փոփոխությունները: SafeSetID-ը թույլ է տալիս համակարգի ծառայություններին ապահով կառավարել օգտատերերին՝ առանց արտոնությունների մեծացման (CAP_SETUID) և առանց արմատային արտոնություններ ստանալու:
    • Ավելացվեց աջակցություն ARIA բլոկի ծածկագրին:
    • BPF-ի վրա հիմնված անվտանգության կառավարման մոդուլը հնարավորություն է տալիս կարգավորիչներ կցել առանձին գործընթացներին և գործընթացների խմբերին (cgroups):
    • Ավելացվել է հսկիչի ներդրման մեխանիզմ, որը հայտնաբերելու է հյուրերի համակարգերի կախոցները՝ հիմնված vCPU-ի գործունեության մոնիտորինգի վրա:
  • Ցանցային ենթահամակարգ
    • BPF ենթահամակարգին ավելացվել են SYN թխուկների ստեղծման և ստուգման կարգավորիչներ: Նաև ավելացվել է մի շարք գործառույթներ (kfunc) միացումների վիճակի մուտք գործելու և փոխելու համար:
    • Անլար դարակը ավելացրել է MLO (Multi-Link Operation) մեխանիզմի աջակցությունը, որը սահմանված է WiFi 7 բնութագրում և թույլ է տալիս սարքերին միաժամանակ ստանալ և ուղարկել տվյալներ՝ օգտագործելով տարբեր հաճախականության գոտիներ և ալիքներ, օրինակ՝ միաժամանակ մի քանի կապի ալիքներ ստեղծելու համար: մուտքի կետ դեպի հաճախորդի սարք:
    • Բարելավվել է միջուկում ներկառուցված TLS արձանագրության կատարումը:
    • Ավելացրել է միջուկի հրամանի տող «hostname=» տարբերակը, որպեսզի հյուրընկալողի անունը սահմանվի բեռնման գործընթացի սկզբում, նախքան օգտագործողի տարածքի բաղադրիչները սկսելը:
  • սարքավորում
    • i915 (Intel) դրայվերն ապահովում է Intel Arc (DG2/Alchemist) A750 և A770 դիսկրետ վիդեո քարտերի աջակցություն: Առաջարկվել է Intel Ponte Vecchio (Xe-HPC) և Meteor Lake GPU-ների աջակցության նախնական իրականացում: Աշխատանքները շարունակվում են Intel Raptor Lake հարթակին աջակցելու համար:
    • amdgpu դրայվերը շարունակում է աջակցություն տրամադրել AMD RDNA3 (RX 7000) և CDNA (Instinct) պլատֆորմներին:
    • Nouveau-ի դրայվերը վերամշակել է NVIDIA nv50 GPU ցուցադրման շարժիչների աջակցության կոդը:
    • Ավելացվեց նոր logicvc DRM վարորդ LogiCVC էկրանների համար:
    • v3d դրայվերը (Broadcom Video Core GPU-ի համար) աջակցում է Raspberry Pi 4 տախտակներին:
    • MSM վարորդին ավելացվել է Qualcomm Adreno 619 GPU-ի աջակցություն:
    • Panfrost վարորդին ավելացվել է ARM Mali Valhall GPU-ի աջակցությունը:
    • Ավելացվել է նախնական աջակցություն Qualcomm Snapdragon 8cx Gen3 պրոցեսորների համար, որոնք օգտագործվում են Lenovo ThinkPad X13s նոութբուքերում:
    • Ավելացվել են ձայնային վարորդներ AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake և Mediatek MT8186 պլատֆորմների համար:
    • Ավելացվել է Intel Habana Gaudi 2 մեքենայական ուսուցման արագացուցիչների աջակցություն:
    • Ավելացվել է աջակցություն ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3-ի համար:

Միևնույն ժամանակ, Լատինական Ամերիկայի Ազատ ծրագրային ապահովման հիմնադրամը ձևավորեց լիովին ազատ միջուկի 6.0 տարբերակը՝ Linux-libre 6.0-gnu, որը մաքրվել է որոնվածի տարրերից և ոչ ազատ բաղադրիչներ կամ կոդի բաժիններ պարունակող դրայվերներից, որոնց շրջանակն է. սահմանափակվում է արտադրողի կողմից: Նոր թողարկումն անջատում է բշտիկների օգտագործումը CS35L41 HD-աուդիո դրայվերում և UCSI դրայվերում՝ STM32G0 միկրոկառավարիչների համար: Qualcomm և MediaTek չիպերի DTS ֆայլերը մաքրվել են: MediaTek MT76 դրայվերում բլբերների անջատումը վերամշակվել է: Թարմացված բշտիկների մաքրման կոդը AMDGPU, Adreno, Tegra VIC, Netronome NFP և Habanalabs Gaudi2 վարորդների և ենթահամակարգերում: Դադարեցրեց VXGE դրայվերի մաքրումը, որը հեռացվեց միջուկից:

Source: opennet.ru

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