Linux 5.6 կենտրոնի թողարկում

Երկու ամսվա զարգացածից հետո Լինուս Տորվալդս ներկայացրեց միջուկի թողարկում Linux 5.6. Որպես ամենահայտնի փոփոխություններ` 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-հենքի կանխատեսումը WireGuard, որը իրականացվել է ժամանակակից ծածկագրումը մեթոդների (ChaCha20, Poly1305, Curve25519, BLAKE2s) հիման վրա, հեշտ է օգտագործման համար, ազատ է համակարգերի բարդություններից, լավ է դրսևորվել մեծ ներդրումների մեջ և ապահովում է շատ բարձր կատարողականություն (OpenVPN-ի բարձրությունները 3.9 անգամ): WireGuard-ում կիրառվում է ծածկագրերի բանալիների վրա հիմնված ուղղահայեցման միջոցը, որը ենթադրում է փակ բանալիի առկայություն յուրաքանչյուր ցանցային հենքի համար և բացի բաց բանալիերի կապվածության կիրառումը: Կապի հաստատման համար բաց բանալիների փոխանակումը տեղի է ունենում նման SSH-ին: WireGuard-ի աշխատանքային համար անհրաժեշտ կրիպտոգրաֆիկ պրիմիտիվները հետվուսված են Zinc գրադարան գոնկում Crypto API-ի եւ ներառված է միջուկի կազմում, սկսվեց MPTCP-ն աջակցելու համար անհրաժեշտ բաղադրիչների ինտեգրումը (MultiPath TCP), TCP-պրոտոկոլի ընդլայնում TCP-համախմբումից հետաքոևների ձեռնարկման մեջ, որը միաժամանակ ընթերցում է տարբեր երթուղիներով տարբեր IP-հասցեներով կապված հենքերի միջոցով: Ցանցային կիրառությունների համար նման կուտակված կապը թվում է սովորական TCP-կապ, իսկ բոլոր փակման բաժանման տրամաբանությունը կատարվում է MPTCP-ի միջոցով: Multipath TCP կարող է օգտագործվել իրականացված արդյունավետությունը մեծացնելու կամ վերլուծել հուսալիությունը: Նախ, MPTCP կարող է կիրառվել մոբիլային սարքի տվյալների փոխանցման հավաքագրման համար` WiFi և 4G լինքեր միաժամանակ օգտագործելով, կամ ծախսերի կրճատման համար՝ միաժամանակ մի քանի էժան կենտերիս միջոցով մեկ թանկ։ 5.5.
    • նվիրված է ցանցային հերթը մշակելու նպատակին sch_ets ( Enhanced Transmission Selection
    • Ավելացել է մինչևEnhanced Transmission Selection, IEEE 802.1Qaz), հնարավորություն ընձեռող բաշխելու անցանելիությունը տարբեր տրանսպորտային դասերի միջև: Եթե որոշակի տրանսպորտային դասի բ carga-ն ցածր է տրամադրված անցանելիությանը, ապա ETS-ը թույլ է տալիս այլ դասերի տրանսպորտային կայունությունները օգտագործել հասանելի (չօգտագործված) անցանելիությունը: Qdisc sch_ets-ը կարգավորվում է որպես PRIO դիսցիպլին և օգտագործում է տրանսպորտային դասերը ավանդաբար անցանելիության խիստ և համատեղ սահմանափակումները սահմանելու համար: ETS-ը աշխատում է որպես դիսցիպլիների խառնուրդ PRIO և DRR — եթե տեղադրված են խիստ սահմանափակված տրանսպորտային դասեր, օգտագործվում է PRIO, բայց եթե տրանսպորտային հերթում չկա, աշխատում է DRR-ով:
    • Ավելացվել է նոր տեսակի BPF ծրագրեր BPF_PROG_TYPE_STRUCT_OPS, որը հնարավորություն է տալիս реализация kernel function handlers-ի միջոցով BPF: Այսօր նշված հնարավորությունը արդեն կարող է կիրառվել TCP-ի լցնում վերահսկման ալգորիթմերի реализация - BPF ծրագրերի տեսքով: Օրինակ նոր BPF ծրագիր, որը իրականացնում է ալգորիթմը DCTCP.
    • Նոր kernel ընդունված է փոփոխությունները, փոխանցելու գործիքներ ethtool կամ ioctl() ի օգտագործման նոր netlink միջերեսից . Նոր միջերեսը հեշտացնում է ընդլայնումների ավելացումը, բարելավում սխալների կառավարումը, թույլ է տալիս հաղորդել փոփոխությունները վիճակի դրսևորման ժամանակ, հեշտացնում է kernel-ի և օգտագործողի տարածության միջև փոխգործակցությունը և նվազեցնում համաժամական անունների ցուցակների քանակը:Ավելացվել է FQ-PIE (Flow Queue PIE) ցանցային հերթերի վերահսկման ալգորիթմի реализация, որը նպատակ ունի նվազեցնել անդառնալի փաթեթների միջանկյալ պահպանման բացասական ազդեցությունը սահմանային ցանցային սարքերում (bufferbloat): FQ-PIE-ն ցույց է տալիս բարձր արդյունավետություն օգտագործելով մոդեմային համակարգերում:
    • Btrfs ֆայլային համակարգի համար
  • Դիսկային ենթակառուցվածք, մտցնում/արտահանում և ֆայլային համակարգեր
  • Վիրտուալիզացիան և անվտանգության միջոցները
    • Կհայտարարի, որ Միաժամանակ 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 ենթահամակարգում ավելացված են վարկանիշներ (BPF ուղեցույց), Retpoline մեխանիզմի կիրառման պայմաններում, Spectre V2 դասի հարձակումներից պաշտպանության համար, որը թույլ է տալիս BPF ծրագրերի կատարողականությունն ավելացնել կապված իրադարձությունների առաջացման ժամանակ (օրինակ, հնարավորություն է տալիս արագացնել XDP-համալիրների կանչը ցանցային փաթեթի ստացման ժամանակ):
    • Ավելացված է առաջադրանք AMD APU-ում TEE (Trusted Execution Environment) միջավայրերի աջակցությունը։
  • Համակարգի հիշողություն և ծարայություններ
    • BPF-ում ավելացվել է գլոբալ ֆունկցիաների աջակցություն։ Զարգացումը իրականացվում է BPF ծրագրերում ֆունկցիաների գրադարանների ավելացման նախաձեռնության շրջանակներում։ Հաջորդ քայլը կլինի դինամիկ ընդլայնումների աջակցությունը, որը թույլ կտա ղեկավարել գլոբալ ֆունկցիաները, այդ թվում՝ դրա օգտագործման ընթացքում ներկայիս գլոբալ ֆունկցիաների փոխարինումը։ BPF ենթահամակարգում ևս ավելացվել է քարտեզի գործողության տարբերակի աջակցություն (օգտագործվում է կայուն տվյալներ պահպանելու համար), որը աջակցում է խմբային ռեժիմում կատարմանը։
    • Ավելացված է «cpu_cooling» սարքը, որը թույլ է տալիս սառեցնել տաքացած CPU-ն, տեղափոխելով այն հանգստի (idle) վիճակի ընդհանրացած ժամանակահատվածով։
    • Ավելացված է համակարգային կոչ openat2(), որը առաջարկում է լրացուցիչ նշանների հավաքածու ֆայլերի ուղի սահմանափակումները սահմանելու համար (արգելում է մոնտաժման կետերի հատումն, խորհրդանշական և magic-հղումները (\/proc\/PID\/fd), «..\/» բաղադրիչները):
    • Անհատական համակարգերի համար, որոնք հիմնված են big.LITTLE ճարտարապետության վրա, որոնք միավորում են մեկ չիպում ուժեղ և քիչ արդյունավետ էներգախնայող CPU միջուկներ, իրական ժամանակի առաջադրանքները կատարելու համար ապահովվել է uclamp_min պարամետրը (որ արտացոլված էր 5.3 միջուկում բեռնման ամրագրման մեխանիզմը։ Վերոհիշյալ պարամետրը երաշխավորում է, որ առաջադրանքը կտեղադրվի ծրագրի վրա միջուկում, որն ունի բավական խոստումնալից կարգ։
    • Միջուկը ազատվեց 2038 թվականի խնդրից։ Փոփոխվեցին վերջիններս, որտեղ պահ қойիչի համար օգտագործվում էր 32-մեդիան (signed int) type time_t, որը հաշվի առնելով 1970 թվականից հետո տեղի ունենալու է 2038 թվականին։
    • Շարունակվել է ասինհուն निर्वाचनային մեխանիզմի բարելավումը io_uring, որի մեջ ապահովված է նոր գործողությունների աջակցություն. 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 (ածանցային ֆայլերի ախրանական գործողությունները իրականացման համար):
    • Ավելացված է համակարգային կոչ pidfd_getfd(), որը թույլ է տալիս գործընթացին դուրս բերել մեկ այլ գործընթացից բացված ֆայլի ախրանակ:
    • օպերատոր «^» այն ծրագրավորումների համար՝ նշված ամսաթվից ավելի հին, կատարում է գործողություն, որը հակառակ է «~» օպերատորին։ Օրինակ, «bootconfig» մեխանիզմ, որը թույլ է տալիս ճանապարհային ծրագիրը սահմանել միջուկի աշխատանքային պարամետրերը ֆայլով, բացի հրամանների տողային տարբերակներից: Դրա համար initramfs պատկերին առաջարկվում է bootconfig գործիքը: Այս հնարավորությունը կարող է կիրառվել, օրինակ, kprobes-ը բեռնման ընթացքում կարգավորելու համար.
    • Վերամշակված ոչ անունավորված ալիքներում (pipe) տվյալների գրելու և կարդալու ակնկալիքի մեխանիզմ: Փոփոխությունը թույլ է տվել արագացնել մեծ նախագծերի զուգահեռ հավաքման նման առաջադրանքների կատարման ժամանակ: Մինչդեռ օպտիմիզացիան կարող է առաջացնել մրցակցության վիճակ GNU make-ում 4.2.1թ տարբերակի սխալից, որը վերացված է 4.3-րդ տարբերակում:
    • prctl() -ին ավելացել է PR_SET_IO_FLUSHER ֆլագը՝ որն օգտագործվում է հիշողությունը ազատող գործընթացները նշելու համար, որոնք ստիպված չեն սահմանափակվել համակարգի անմատչելիության դեպքում:
    • Android-ում կիրառվող հիշողության բ distribución ի վրա կառուցված համակարգումն իրականացրել է dma-buf heaps, որը թույլ է տալիս կառավարել DMA-բուֆերների հատկացումը այն տարածքների համար, որոնք կարող են համօգտագործվել սարքավորումների, հավելվածների և տարբեր ենթահամակարգերի կողմից:
  • Հատուկ ճարտարապետություններ
    • Ավելացվել է E0PD ընդլայնման աջակցություն, որը ներկայացված է ARMv8.5-ում և թույլ է տալիս պաշտպանվել CPU-ի մեջ որոշակի հրահանգների կանխատեսման կայուն կատարած ախումներից: E0PD-ով պաշտպանությունը ավելի քիչ ծախսեր է առաջացնում, քան KPTI (Kernel Page Table Isolation) պաշտպանությունը:
    • ARMv8.5 ճարտարապետության հիման վրա ավելացվել է RNG հրահանգի աջակցություն, որը տալիս է հասանելիություն սարքավորված կեղծահյութերի արտադրության ապարատին: RNGen հրահանգը օգտագործվում է մենեջերների մեջ՝ ելակետի տվյալներն ավելի լուծված թիվ արտադրելու համար:
    • Հանվել է MPX (Memory Protection Extensions) աջակցությունը, որը ավելացվել էր kernում 3.19 և որը թույլ էր տալիս ստուգել ցուցիչները հիշողության սահմաններին համապատասխանելը: Այդ տեխնոլոգիան չի տարածվել կոմպիլատորներում և հանվել է GCC-ից:
    • RISC-V ճարտարապետության համար իրականացվել է KASan (Kernel address sanitizer) շարժիչի աջակցություն, որն ապահովում է հիշողության կառավարման ընթացքում սխալների հայտնաբերումը:
  • Սարքավորումներ

Латиноамериканский Фонд свободного ПО создал
версию полностью свободного ядра 5.6Linux-libre 5.6-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или области кода, ограниченные производителем. В новом выпуске отключена загрузка блобов в драйверах для AMD TEE, ATH11K и Mediatek SCP. Обновлён код для очистки блобов в драйверах и подсистемах AMD PSP, amdgpu и nouveau.

Ընտանիք: opennet.ru

Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով 🔥 Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster