Երկու ամսվա զարգացածից հետո Լինուս Տորվալդս միջուկի թողարկում . Որպես ամենահայտնի փոփոխություններ` WireGuard VPN-հենքի ինտեգրում, USB4-support, ժամանակի անունների տարածքներ, TCP-պայմաններ ստեղծելու հնարավորություն BPF-ի միջոցով, MultiPath TCP-ի սկզբնական աջակցություն, 2038 թվականի խնդրից ազատում, «bootconfig» մեխանիզմ, ZoneFS ֆայլային համակարգը:
Նոր տարբերակին ընդունվել է 13702 կատարված ուղղում 1810 մշակողներից,
հրապարակման չափը՝ 40 Մբ (փոփոխությունները վերաբերում են 11577 ֆայլերի, ավելացված 610012 տող կոդի,
900294 տող հեռացվել): 5.6-ի կատարած բոլոր փոփոխությունների շուրջ 45%-ը
հκοίνված սարքային վարորդների հետ կապված, մոտ 15%-ը փոփոխություններն ունեն
սարքային արխիտեկտուրայի հատուկ կոդի թարմացումների, 12% հարաբերությամբ
ցանցային կույտի, 4%-ը՝ ֆայլային համակարգերի, և 3%-ը՝ ներքին
միջուկի ենթակառուցվածքներին:
:
- Ձեռնարկային համակարգ
- VPN-հենքի կանխատեսումը , որը իրականացվել է ժամանակակից ծածկագրումը մեթոդների (ChaCha20, Poly1305, Curve25519, BLAKE2s) հիման վրա, հեշտ է օգտագործման համար, ազատ է համակարգերի բարդություններից, լավ է դրսևորվել մեծ ներդրումների մեջ և ապահովում է շատ բարձր կատարողականություն (OpenVPN-ի բարձրությունները 3.9 անգամ): WireGuard-ում կիրառվում է ծածկագրերի բանալիների վրա հիմնված ուղղահայեցման միջոցը, որը ենթադրում է փակ բանալիի առկայություն յուրաքանչյուր ցանցային հենքի համար և բացի բաց բանալիերի կապվածության կիրառումը: Կապի հաստատման համար բաց բանալիների փոխանակումը տեղի է ունենում նման SSH-ին: WireGuard-ի աշխատանքային համար անհրաժեշտ կրիպտոգրաֆիկ պրիմիտիվները գոնկում Crypto API-ի եւ միջուկի կազմում, MPTCP-ն աջակցելու համար անհրաժեշտ բաղադրիչների ինտեգրումը (MultiPath TCP), TCP-պրոտոկոլի ընդլայնում TCP-համախմբումից հետաքոևների ձեռնարկման մեջ, որը միաժամանակ ընթերցում է տարբեր երթուղիներով տարբեր IP-հասցեներով կապված հենքերի միջոցով: Ցանցային կիրառությունների համար նման կուտակված կապը թվում է սովորական TCP-կապ, իսկ բոլոր փակման բաժանման տրամաբանությունը կատարվում է MPTCP-ի միջոցով: Multipath TCP կարող է օգտագործվել իրականացված արդյունավետությունը մեծացնելու կամ վերլուծել հուսալիությունը: Նախ, MPTCP կարող է կիրառվել մոբիլային սարքի տվյալների փոխանցման հավաքագրման համար` WiFi և 4G լինքեր միաժամանակ օգտագործելով, կամ ծախսերի կրճատման համար՝ միաժամանակ մի քանի էժան կենտերիս միջոցով մեկ թանկ։ .
- Enhanced Transmission Selection
- մինչև, IEEE 802.1Qaz), հնարավորություն ընձեռող բաշխելու անցանելիությունը տարբեր տրանսպորտային դասերի միջև: Եթե որոշակի տրանսպորտային դասի բ carga-ն ցածր է տրամադրված անցանելիությանը, ապա ETS-ը թույլ է տալիս այլ դասերի տրանսպորտային կայունությունները օգտագործել հասանելի (չօգտագործված) անցանելիությունը: Qdisc sch_ets-ը կարգավորվում է որպես PRIO դիսցիպլին և օգտագործում է տրանսպորտային դասերը ավանդաբար անցանելիության խիստ և համատեղ սահմանափակումները սահմանելու համար: ETS-ը աշխատում է որպես դիսցիպլիների խառնուրդ և — եթե տեղադրված են խիստ սահմանափակված տրանսպորտային դասեր, օգտագործվում է PRIO, բայց եթե տրանսպորտային հերթում չկա, աշխատում է DRR-ով:
- Ավելացվել է նոր տեսակի BPF ծրագրեր , որը հնարավորություն է տալիս реализация kernel function handlers-ի միջոցով BPF: Այսօր նշված հնարավորությունը արդեն կարող է կիրառվել TCP-ի լցնում վերահսկման ալգորիթմերի реализация - BPF ծրագրերի տեսքով: Օրինակ BPF ծրագիր, որը իրականացնում է ալգորիթմը .
- Նոր kernel ընդունված է , փոխանցելու գործիքներ կամ ioctl() ի օգտագործման նոր netlink միջերեսից Ավելացվել է FQ-PIE (Flow Queue PIE) ցանցային հերթերի վերահսկման ալգորիթմի реализация, որը նպատակ ունի նվազեցնել անդառնալի փաթեթների միջանկյալ պահպանման բացասական ազդեցությունը սահմանային ցանցային սարքերում (bufferbloat): FQ-PIE-ն ցույց է տալիս բարձր արդյունավետություն օգտագործելով մոդեմային համակարգերում:
- Btrfs ֆայլային համակարգի համար
- Դիսկային ենթակառուցվածք, մտցնում/արտահանում և ֆայլային համակարգեր
- ասինքրոն реализация DISCARD գործողության (մաքրման ազատված բլոկների, որոնք արդեն չի կարելի ֆիզիկապես պահել): Նախկինում DISCARD գործողությունները կատարվում էին ասինքրոն, ինչը կարող էր ունենալ նվազող արտադրողականություն համապատասխան հրահանգների ավարտի սպասելու պատճառով: Ասինքրոն реализация-ն թույլ է տալիս չսպասել DISCARD-ի ավարտին և իրականացնել այս գործողությունը ֆոնում: XFS-ում
- կատարվել է ext4 ֆայլային համակարգին
- ներդրվել են F2FS ֆայլային համակարգում
- իրականացվել է նայողության հնարավորությունը տվյալների պահպանման խոնավեցված տեսքով: Համապատասխան ֆայլի կամ կատալոգի համար ճնշումը կարող է ներառվել «chattr +c file» կամ «chattr +c dir; touch dir/file» հրամանների միջոցով: Խմբի ամբողջ բաժնի համար, mount գործիքի պարագայում կարող է օգտագործվել «-o compress_extension=ext» տարբերակը:
- Կեղտավոր համակարգի մեջ ընդունվել է ֆայլային համակարգը , որը հեշտացնում է ցածր մակարդակի աշխատանքն զոնացված պահման սարքերի հետ: Զոնացված հիշողությունները ենթագիտակցաբար վերաբերում են այն սարքերին, որոնք օգտագործում են կոշտ մագնիսի սկավառակներ կամ NVMe SSD, պահեստավորման տարածքը, որի զոնաները ձևավորվում են բլոկների կամ սեկտորների խմբերով, որոնց թույլատրվում է միայն հաջորդական տվյալների ավելացում, որի ժամանակ ամբողջ խմբի բլոկները պետք է թարմացվեն: ZoneFS ֆայլային համակարգը մշակվել է Western Digital- ի կողմից և կապում է յուրաքանչյուր զոնան հիշողությունում առանձին ֆայլի հետ, որը կարող է օգտագործվել տվյալներ պահպանելու ռաու-режիմի մեջ՝ խուսափելով սեկտորների և բլոկների մակարդակի մանիպուլյացիներից, այսինքն՝ թույլ տալիս ծրագրերին օգտագործել ֆայլային API՝ առանց ուղղակի շուկայում գործնական դիմումների կիրառման:
- NFS-ում բանաձևման կողմից բաժանման վերակազմը UDP-ի վերաֆիլմացվել է: Ավելացված է NFS 4.2 հանածոյում նշված ֆայլերի անմիջական փոխումի հնարավորությունը կարգավորող: Ավելացված է նոր մոնտաժման տարբերակ՝ «softreval», եթե սերվերը ձախողվի, թույլատրում է օգտագործել cached արժեքների атрибутների: Օրինակ, այս տարբերակը նշելիս սերվերի հանվելուց հետո պահվում է NFS՝ բաժանման մեջ ուղիներով մղում կատարելու հնարավորությունը և cached տեղեկությանը վերաբերելու հնարավորությունը:
- կարողությունների օպտիմիզացումը fs-verity մեխանիզմի համար, որը կիրառվում է անհատական ֆայլերի ամբողջականության վերահսկման և հավաստագրման համար: Բարձրացված է հաջորդական ընթերցման արագությունը, շնորհիվ Մերկլ-արգելակի կիրառման: Ավելացված է արտադրողականություն FS_IOC_ENABLE_VERITY- ի դեպքում, երբ գերխոլուրդների տվյալներ գոյություն չունեն (կիրառվել է կանխարգելիչ ընթերցման էջերի տվյալների համար):
- Վիրտուալիզացիան և անվտանգության միջոցները
- Կհայտարարի, որ Միաժամանակ SELinux մոդուլի անջատումը համաձայնեցված չի տարածվում, իսկ ապագայում արդեն ակտիվ կազմակերպված SELinux-ը դուրս չի գրվի: SELinux-ը անջատելու համար անհրաժեշտ կլինի փոխանցել «selinux=0» պարամետրը միջուկի հրամանային տողին:
- աջակցություն ժամանակի տարածքների (time namespaces), որոնք հնարավորություն կտան կապել կազմակերպությունում ժամանակի համակարգի վիճակը (CLOCK_REALTIME,
CLOCK_MONOTONIC, CLOCK_BOOTTIME), հնարավոր է օգտագործել կազմակերպությունում ձեր ժամանակը, և երբ կազմակերպությունը տեղափոխվի այլ հյուրանոց, կպահպանի CLOCK_MONOTONIC և CLOCK_BOOTTIME-ի հաշվումները (հաշվի առնելով կամ առանց հաշվելու քնած ժամանակը): - Հեռացվել է արգելված պուլ /dev/random: /dev/random- ի վարքը մերձեցվել է /dev/urandom- ի վարքին՝ համոզվելու համար, որ պուլը գործարկելու պահին պատահականության արգելքները չեն գործում:
- Նկատի ունեցեք, որ հիմնական միջուկում ներառված է կրիչ, որը թույլ է տալիս VirtualBox-ի վարորդային համակարգերում աշխատող հյուրականացվող համակարգերին մեխանիզմների բաժիններն կապել ագրավողի միջավայրից (VirtualBox Ամբողջացված Ծալք)։
- BPF ենթահամակարգում ավելացված են վարկանիշներ (), Retpoline մեխանիզմի կիրառման պայմաններում, Spectre V2 դասի հարձակումներից պաշտպանության համար, որը թույլ է տալիս BPF ծրագրերի կատարողականությունն ավելացնել կապված իրադարձությունների առաջացման ժամանակ (օրինակ, հնարավորություն է տալիս արագացնել XDP-համալիրների կանչը ցանցային փաթեթի ստացման ժամանակ):
- Ավելացված է առաջադրանք AMD APU-ում TEE (Trusted Execution Environment) միջավայրերի աջակցությունը։
- Համակարգի հիշողություն և ծարայություններ
- BPF-ում ավելացվել է գլոբալ ֆունկցիաների աջակցություն։ Զարգացումը իրականացվում է BPF ծրագրերում ֆունկցիաների գրադարանների ավելացման նախաձեռնության շրջանակներում։ Հաջորդ քայլը կլինի դինամիկ ընդլայնումների աջակցությունը, որը թույլ կտա ղեկավարել գլոբալ ֆունկցիաները, այդ թվում՝ դրա օգտագործման ընթացքում ներկայիս գլոբալ ֆունկցիաների փոխարինումը։ BPF ենթահամակարգում ևս ավելացվել է քարտեզի գործողության տարբերակի աջակցություն (օգտագործվում է կայուն տվյալներ պահպանելու համար), որը աջակցում է խմբային ռեժիմում կատարմանը։
- «cpu_cooling» սարքը, որը թույլ է տալիս սառեցնել տաքացած CPU-ն, տեղափոխելով այն հանգստի (idle) վիճակի ընդհանրացած ժամանակահատվածով։
- Ավելացված է համակարգային կոչ , որը առաջարկում է լրացուցիչ նշանների հավաքածու ֆայլերի ուղի սահմանափակումները սահմանելու համար (արգելում է մոնտաժման կետերի հատումն, խորհրդանշական և magic-հղումները (\/proc\/PID\/fd), «..\/» բաղադրիչները):
- Անհատական համակարգերի համար, որոնք հիմնված են big.LITTLE ճարտարապետության վրա, որոնք միավորում են մեկ չիպում ուժեղ և քիչ արդյունավետ էներգախնայող CPU միջուկներ, իրական ժամանակի առաջադրանքները կատարելու համար ապահովվել է uclamp_min պարամետրը ( 5.3 միջուկում բեռնման ամրագրման մեխանիզմը։ Վերոհիշյալ պարամետրը երաշխավորում է, որ առաջադրանքը կտեղադրվի ծրագրի վրա միջուկում, որն ունի բավական խոստումնալից կարգ։
- Միջուկը ազատվեց ։ Փոփոխվեցին վերջիններս, որտեղ պահ қойիչի համար օգտագործվում էր 32-մեդիան (signed int) type time_t, որը հաշվի առնելով 1970 թվականից հետո տեղի ունենալու է 2038 թվականին։
- Շարունակվել է ասինհուն निर्वाचनային մեխանիզմի բարելավումը , որի մեջ նոր գործողությունների աջակցություն. IORING_OP_FALLOCATE (բիզնես տարածքների պահպանում), IORING_OP_OPENAT,
IORING_OP_OPENAT2,
IORING_OP_CLOSE (ֆայլերի բացում և փակել)։
IORING_OP_FILES_UPDATE (ֆայլերի ավելացում և հեռացում արագ հասանելիության ցուցակից),
IORING_OP_STATX (ֆայլի մասին տեղեկատվություն հարցնել),
IORING_OP_READ,
IORING_OP_WRITE (IORING_OP_READV և IORING_OP_WRITEV-երի հեշտացված անալոգներ),
IORING_OP_FADVISE,
IORING_OP_MADVISE (posix_fadvise և madvise հարստացման ասինհուն տարբերակներ), IORING_OP_SEND,
IORING_OP_RECV (ցանցային տվյալների փոխանցման և ստացման գործընթացների)։
IORING_OP_EPOLL_CTL (ածանցային ֆայլերի ախրանական գործողությունները իրականացման համար): - Ավելացված է համակարգային կոչ , որը թույլ է տալիս գործընթացին դուրս բերել մեկ այլ գործընթացից բացված ֆայլի ախրանակ:
- «bootconfig» մեխանիզմ, որը թույլ է տալիս ճանապարհային ծրագիրը սահմանել միջուկի աշխատանքային պարամետրերը ֆայլով, բացի հրամանների տողային տարբերակներից: Դրա համար initramfs պատկերին առաջարկվում է bootconfig գործիքը: Այս հնարավորությունը կարող է կիրառվել, օրինակ, kprobes-ը բեռնման ընթացքում կարգավորելու համար.
- ոչ անունավորված ալիքներում (pipe) տվյալների գրելու և կարդալու ակնկալիքի մեխանիզմ: Փոփոխությունը թույլ է տվել արագացնել մեծ նախագծերի զուգահեռ հավաքման նման առաջադրանքների կատարման ժամանակ: Մինչդեռ օպտիմիզացիան կարող է առաջացնել մրցակցության վիճակ GNU make-ում 4.2.1թ տարբերակի սխալից, որը վերացված է 4.3-րդ տարբերակում:
- prctl() -ին ավելացել է PR_SET_IO_FLUSHER ֆլագը՝ որն օգտագործվում է հիշողությունը ազատող գործընթացները նշելու համար, որոնք ստիպված չեն սահմանափակվել համակարգի անմատչելիության դեպքում:
- Android-ում կիրառվող հիշողության բ distribución ի վրա կառուցված համակարգումն իրականացրել է , որը թույլ է տալիս կառավարել DMA-բուֆերների հատկացումը այն տարածքների համար, որոնք կարող են համօգտագործվել սարքավորումների, հավելվածների և տարբեր ենթահամակարգերի կողմից:
- Հատուկ ճարտարապետություններ
- Ավելացվել է E0PD ընդլայնման աջակցություն, որը ներկայացված է ARMv8.5-ում և թույլ է տալիս պաշտպանվել CPU-ի մեջ որոշակի հրահանգների կանխատեսման կայուն կատարած ախումներից: E0PD-ով պաշտպանությունը ավելի քիչ ծախսեր է առաջացնում, քան KPTI (Kernel Page Table Isolation) պաշտպանությունը:
- ARMv8.5 ճարտարապետության հիման վրա ավելացվել է RNG հրահանգի աջակցություն, որը տալիս է հասանելիություն սարքավորված կեղծահյութերի արտադրության ապարատին: RNGen հրահանգը օգտագործվում է մենեջերների մեջ՝ ելակետի տվյալներն ավելի լուծված թիվ արտադրելու համար:
- Հանվել է MPX (Memory Protection Extensions) աջակցությունը, որը ավելացվել էր kernում և որը թույլ էր տալիս ստուգել ցուցիչները հիշողության սահմաններին համապատասխանելը: Այդ տեխնոլոգիան չի տարածվել կոմպիլատորներում և հանվել է GCC-ից:
- RISC-V ճարտարապետության համար իրականացվել է KASan (Kernel address sanitizer) շարժիչի աջակցություն, որն ապահովում է հիշողության կառավարման ընթացքում սխալների հայտնաբերումը:
- Սարքավորումներ
- Արդյունավետ է , որը հիմնված է Thunderbolt 3 պրոտոկոլի վրա և ապահովում է 40 Գբիտ/ս մինչև փոխանցման արագություն, պահպանելով USB 2.0 և USB 3.2 հետադարձ համատեղելիությունը: Thunderbolt-ի նման USB 4.0-ի ինտերֆեյսը թույլ է տալիս միացնել տարբեր պրոտոկոլներ մեկ Type-C միացնողով: , включая PCIe, Display Port և USB 3.x, ինչպես նաև ծրագրային իրականացում Protocols, օրինակ, հոստերի միջև ցանցային կապերի կազմակերպման համար։ Իրականացումը հիմնված է Linux 핵-կին Thunderbolt-ի վրա և փոխակերպում է այն USB4-ով համատեղ համապատասխան հոստերի ու սարքերի հետ։ Փոփոխությունները նաև ավելացնում են Thunderbolt 3 սարքերի աջակցությունը կապի կառավարման ծրագրային իրականացման (Connection Manager) մեջ, որը պատասխանատու է մի քանի սարքերի միացման համար մեկ պորտի միջոցով։
- amdgpu դրամայնանում HDCP 2.x (High-bandwidth Digital Content Protection) կոդավորման տեխնոլոգիայի սկզբնական աջակցությունը։ Ավելանում է AMD Pollock ASIC-պրոցեսորի աջակցությունը, որն հիմնված է Raven 2-ում։ GPU-ի վերնախավերի վերաօգնություն գրանցման հնարավորությունը իրականացվել է Renoir և Navi ընտանիքների համար։
- Intel-ի տեսանյութային քարտերի DRM-դրամայնքում DSI VDSC աջակցություն Ice Lake և Tiger Lake միկրո-ակայունավորմամբ անջուրների համար, իրականացվել է LMEM mmap (սարքի տեղական հիշողությունը), VBT (Video BIOS Table) մուտքագրման բարելավում, HDCP 2.2-ի աջակցություն Coffee Lake-ի համար։
- amdkfd դրամայն կատարողների կոդի միավորականացման աշխատանքը շարունակվում է (բացահայտ GPU, ինչպես լայն Fiji, Tonga, Polaris) amdgpu դրամայնի հետ։
- k10temp դրամայնի վերակառուցումը տեղի ունեցավ, որում աջակցություն ապահովվեց AMD Zen CPU-ների լարման և տեղադրումների զորքերի ցուցանիշների արտահայտման համար, ինչպես նաև Zen և Zen 2 CPU-ներում օգտագործվող ջերմաստիճանի սենսորներից առաջատար տվյալ Ժամանակագրություն։
- nouveau դրամայնում վավերացված firmware բեռնման ռեժիմի աջակցություն NVIDIA GPU-ների Turing միկրո-մարշահների համար (GeForce RTX 2000), որը թույլ է տալիս 3D արագացնող աջակցություն այս քարտերի համար (պահանջվում է NVIDIA-ի կողմից թվային ստորագրությամբ պաշտոնական firmware-ն բեռնել)։ Ավելացել է TU10x գծի աջակցություն։ HD Ադենուլաձի խնդիրները լուծվել են։
- Միաժամանակ աշխատելու, DisplayPort MST (Multi-Stream Transport) միջոցով տվյալների սեղմման աջակցություն ավելացված է։
- Ավելացվեց «» նորի драйվեր Qualcomm-ի գրանցված սարքերով, 802.11ax-ով աջակցում։
Դրամայնը հիմնված է mac80211-երի վրա և աջակցում է մուտքային կառավարման, աշխատանքային կայանի և Mesh ցանցային հանգույցի ռեժիմներին։ - sysfs-ի միջոցով ընձեռված է ժամանակակից HDD-երի և SSD-ների ջերմաստիճանի սենսորների ցուցանիշների ընթերցման հասանելիություն։
- ALSA ձայնային համակարգում նշանակալի փոփոխություններ են կատարվում, որոնք նշանակում են հաղորդավարների մաքրումը (snd_pcm_mmap_status և snd_pcm_mmap_control-ներում 32-bit type time_t օգտագործելու թվում)։ Ավելանում է նոր ձայնային կոդեկների աջակցությունը՝
Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770։ - LCD-մանկիցներին գործողի նոր առաջարկներ՝ Logic PD 28, Jimax8729d MIPI-DSI, Ingenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM940B0,
BOE NV140FHM-N49,
Satoz SAT050AT40H12R2,
Sharp LS020B1DD01D։ - ARM ծրագրային և Gen1 Amazon Echo (OMAP3630 հիման վրա) կայանի աջակցություն, Samsung Galaxy S III mini (GT-I8190), Allwinner Emlid Neutis, Libre Computer ALL-H3-IT, PineH64 Model B, Aibretech Amlogic GX PC,
Armada SolidRun Clearfog GTR, NXPGateworks GW59xx,
Tolino Shine 3 էլեկտրոնային գրքի ընթերցող,
Embedded Artists COM (i.MX7ULP), SolidRun Clearfog CX/ITX և HoneyComb (LX2160A), Google Coral Edge TPU (i.MX8MQ),
Rockchip Radxa Dalang Carrier, Radxa Rock Pi N10, VMARC RK3399Pro SOM
ST Ericsson HREF520, Inforce 6640, SC7180 IDP, Atmel/Microchip AM9X60 (ARM926 SoC, Kizboxmini), ST stm32mp15, AM3703/AM3715/DM3725, ST Ericsson ab8505, Unisoc SC9863A, Qualcomm SC7180. PCIe-контроллер, используемый в Raspberry Pi 4, был добавлен в поддержку.
Латиноамериканский Фонд свободного ПО
версию — , очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или области кода, ограниченные производителем. В новом выпуске отключена загрузка блобов в драйверах для AMD TEE, ATH11K и Mediatek SCP. Обновлён код для очистки блобов в драйверах и подсистемах AMD PSP, amdgpu и nouveau.
Ընտանիք: opennet.ru
