Pas dy muajsh zhvillimi, Linus Torvalds lëshimi i kernelit Ndër ndryshimet më të dukshme: integrimi i një ndërfaqeje VPN WireGuard, mbështetje për USB4, hapësira emërore kohore, aftësia për të krijuar trajtues të mbingarkesës TCP duke përdorur BPF, mbështetje fillestare për MultiPath TCP, një rregullim i kernelit për problemin e vitit 2038, mekanizmi "bootconfig", ZoneFS.
Versioni i ri përfshin 13702 rregullime nga 1810 zhvillues,
madhësia e patch - 40 MB (ndryshimet prekën 11577 skedarë, u shtuan 610012 rreshta kodi,
294828 rreshta janë hequr). Rreth 45% e të gjitha të paraqitura në 5.6
ndryshimet lidhen me drejtuesit e pajisjes, afërsisht 15% e ndryshimeve janë
qëndrimi ndaj përditësimit të kodit specifik për arkitekturat e harduerit, 12%
lidhur me grumbullin e rrjetit, 4% me sistemet e skedarëve dhe 3% me ato të brendshme
nënsistemet e bërthamës.
:
- Nënsistemi i rrjetit
- implementimi i njĂ« ndĂ«rfaqeje VPN , i cili zbatohet nĂ« bazĂ« tĂ« metodave moderne tĂ« enkriptimit (ChaCha20, Poly1305, Curve25519, BLAKE2s), Ă«shtĂ« i lehtĂ« pĂ«r tâu pĂ«rdorur, pa ndĂ«rlikime, ka provuar veten nĂ« njĂ« numĂ«r zbatimesh tĂ« mĂ«dha dhe ofron performancĂ« shumĂ« tĂ« lartĂ« (3,9 herĂ« mĂ« tĂ« shpejtĂ«) OpenVPN nga rendimenti). NĂ« WireGuard PĂ«rdoret koncepti i rrugĂ«zimit tĂ« çelĂ«sit tĂ« enkriptimit, i cili pĂ«rfshin lidhjen e njĂ« çelĂ«si privat nĂ« secilĂ«n ndĂ«rfaqe rrjeti dhe pĂ«rdorimin e çelĂ«save publikĂ« pĂ«r lidhjen. ShkĂ«mbimi i çelĂ«save publikĂ« pĂ«r tĂ« krijuar njĂ« lidhje Ă«shtĂ« i ngjashĂ«m me SSH. I nevojshĂ«m pĂ«r funksionimin. WireGuard primitive kriptografike nga biblioteka si pjesĂ« e API standarde Crypto dhe nĂ« thelb .
- Integrimi i komponentëve të nevojshëm për të mbështetur MPTCP (MultiPath TCP), një zgjerim i protokollit TCP për organizimin e lidhjeve TCP me shpërndarje të njëkohshme të paketave përgjatë rrugëve të shumëfishta përmes ndërfaqeve të ndryshme të rrjetit të lidhura me adresa të ndryshme IP. Për aplikacionet e rrjetit, një lidhje e tillë e agreguar shfaqet si një lidhje e rregullt TCP, dhe e gjithë logjika e ndarjes së rrjedhës kryhet nga MPTCP. Multipath TCP mund të përdoret si për të zgjeruar rendimentin ashtu edhe për të përmirësuar besueshmërinë. Për shembull, MPTCP mund të përdoret për të organizuar transferimin e të dhënave në një smartphone duke përdorur lidhje WiFi dhe 4G, ose për të ulur kostot duke lidhur një server duke përdorur disa lidhje të lira në vend të një të shtrenjtë.
- mbĂ«shtetje pĂ«r disiplinĂ«n e pĂ«rpunimit tĂ« radhĂ«s sĂ« rrjetit sch_ets (, IEEE 802.1Qaz), i cili ofron mundĂ«sinĂ« pĂ«r tĂ« shpĂ«rndarĂ« gjerĂ«sinĂ« e brezit midis klasave tĂ« ndryshme tĂ« trafikut. NĂ«se ngarkesa nĂ« njĂ« klasĂ« tĂ« caktuar trafiku Ă«shtĂ« mĂ« e ulĂ«t se gjerĂ«sia e brezit e alokuar, atĂ«herĂ« ETS lejon qĂ« klasat e tjera tĂ« trafikut tĂ« pĂ«rdorin gjerĂ«sinĂ« e brezit tĂ« disponueshme (tĂ« papĂ«rdorur). Qdisc sch_ets Ă«shtĂ« konfiguruar si njĂ« disiplinĂ« PRIO dhe pĂ«rdor klasat e trafikut pĂ«r tĂ« pĂ«rcaktuar kufij tĂ« rreptĂ« dhe tĂ« pĂ«rbashkĂ«t tĂ« gjerĂ«sisĂ« sĂ« brezit. ETS funksionon si njĂ« kombinim i disiplinave. Đž â nĂ«se ka klasa trafiku tĂ« kufizuara nĂ« mĂ«nyrĂ« strikte, pĂ«rdoret PRIO, por nĂ«se nuk ka trafik nĂ« radhĂ«, funksionon si DRR.
- ĂshtĂ« shtuar njĂ« lloj i ri i programeve BPF , e cila lejon qĂ« trajtuesit e funksioneve tĂ« kernelit tĂ« implementohen nĂ«pĂ«rmjet BPF-sĂ«. Kjo aftĂ«si tani mund tĂ« pĂ«rdoret pĂ«r tĂ« implementuar algoritmet e kontrollit tĂ« mbingarkesĂ«s TCP si programe BPF. Si shembull, Programi BPF me zbatimin e algoritmit .
- I pranuar në thelb , mjete përkthimi me ioctl() për t'u përdorur Ndërfaqja e re thjeshton shtimin e zgjerimeve, përmirëson trajtimin e gabimeve, lejon njoftime kur ndryshon gjendja, thjeshton ndërveprimin midis hapësirës bazë dhe asaj të përdoruesit dhe zvogëlon numrin e listave të emërtuara për t'u sinkronizuar.
- ĂshtĂ« shtuar njĂ« implementim i algoritmit tĂ« menaxhimit tĂ« radhĂ«s sĂ« rrjetit Flow Queue PIE (FQ-PIE). Ky algoritĂ«m Ă«shtĂ« projektuar pĂ«r tĂ« zvogĂ«luar ndikimin negativ tĂ« buffering-ut tĂ« paketave tĂ« ndĂ«rmjetme nĂ« pajisjet e rrjetit nĂ« skaj (bufferbloat). FQ-PIE demonstron efikasitet tĂ« lartĂ« kur pĂ«rdoret nĂ« sistemet e modemit kabllor.
- Nënsistemi i diskut, I/O dhe sistemet e skedarëve
- Për sistemin e skedarëve Btrfs Implementimi asinkron i operacionit DISCARD (shënimi i blloqeve të liruara që nuk mund të ruhen më fizikisht). Fillimisht, operacionet DISCARD kryheshin në mënyrë sinkrone, gjë që mund të çonte në një penalizim të performancës për shkak të pritjes që disqet të përfundonin komandat përkatëse. Implementimi asinkron eliminon nevojën për të pritur që disku të përfundojë DISCARD dhe lejon që ky operacion të kryhet në sfond.
- Në XFS U pastrua kodi që përdorte numërues të vjetër kohor 32-bitësh (tipi time_t u zëvendësua me time64_t), duke çuar në problemin e Vitit 2038. U rregulluan gabimet dhe korruptimet e memories që ndodhnin në platformat 32-bitëshe. U rifaktorizua kodi për të trajtuar atributet e zgjeruara.
- Në sistemin e skedarëve ext4 Optimizime të performancës në lidhje me trajtimin e bllokimit të inode-ve gjatë operacioneve të leximit dhe shkrimit. Performancë e përmirësuar e rishkrimit në modalitetin Direct I/O. Për të thjeshtuar diagnostikimin e problemeve, kodet e gabimit të parë dhe të fundit tani ruhen në superbllokun.
- Në sistemin e skedarëve F2FS Mundësia për të ruajtur të dhënat në formë të kompresuar. Kompresimi mund të aktivizohet për një skedar ose direktori individuale duke përdorur komandën "chattr +c file" ose "chattr +c dir; touch dir/file". Për të kompresuar një ndarje të tërë, përdorni opsionin "-o compress_extension=ext" në programin e montimit.
- Sistemi i skedarëve është adoptuar në kernel , gjë që thjeshton punën e nivelit të ulët me pajisjet e ruajtjes së zonuar. Disqet e zonuar janë disqe të forta ose SSD NVMe, hapësira e ruajtjes së të cilave është e ndarë në zona, të cilat përbëjnë grupe blloqesh ose sektorësh. Lejohen vetëm shtimet e të dhënave të njëpasnjëshme, me të gjithë grupin e bllokut të përditësuar. I zhvilluar nga Western Digital, ZoneFS shoqëron çdo zonë në një disk me një skedar të veçantë që mund të përdoret për të ruajtur të dhënat në modalitetin RAW pa manipulim në nivel sektori ose blloku, duke u lejuar aplikacioneve të përdorin një API skedarësh në vend që të qasen drejtpërdrejt në pajisjen e bllokut duke përdorur ioctl.
- Montimi i ndarjeve mbi UDP Ă«shtĂ« çaktivizuar si parazgjedhje nĂ« NFS. ĂshtĂ« shtuar mbĂ«shtetja pĂ«r kopjimin direkt tĂ« skedarĂ«ve midis serverave, siç pĂ«rcaktohet nĂ« specifikimin NFS 4.2. ĂshtĂ« shtuar njĂ« opsion i ri montimi, "softreval", qĂ« lejon pĂ«rdorimin e vlerave tĂ« atributeve tĂ« ruajtura nĂ« memorje nĂ« rast tĂ« njĂ« dĂ«shtimi tĂ« serverit. PĂ«r shembull, specifikimi i kĂ«tij opsioni lejon pĂ«rshkimin e shtegut nĂ« njĂ« ndarje NFS dhe qasjen nĂ« informacionin e ruajtur nĂ« memorje pasi njĂ« server nuk Ă«shtĂ« i disponueshĂ«m.
- Optimizime të performancës për mekanizmin fs-verity të përdorur për të monitoruar integritetin dhe vërtetësinë e skedarëve individualë. Performanca e leximit sekuencial është rritur falë përdorimit të një peme Merkle. Performanca e FS_IOC_ENABLE_VERITY është optimizuar në kushtet e mungesës së memorjes së përkohshme (leximi paraprak i faqes së të dhënave është aktivizuar tani).
- Virtualizimi dhe Siguria
- Mundësia për të çaktivizuar modulin SE është hequr nga përdorimi.Linux gjatë funksionimit, dhe në të ardhmen, shkarkimi i SE-së tashmë të aktivizuarLinux do të ndalohet. Për të çaktivizuar SELinux Do të duhet të kaloni parametrin "selinux=0" në rreshtin e komandës së kernelit.
- mbështetje për hapësirat e emrave të kohës, të cilat lejojnë që gjendja e orës së sistemit (CLOCK_REALTIME) të lidhet me një enë
CLOCK_MONOTONIC, CLOCK_BOOTTIME), përdorni kohën tuaj në kontejner dhe, kur migroni kontejnerin në një host tjetër, sigurohuni që vlerat CLOCK_MONOTONIC dhe CLOCK_BOOTTIME të mbeten të pandryshuara (merrni parasysh kohën pas nisjes, me ose pa marrë parasysh të qenit në modalitetin e gjumit). - Grupi i bllokimit /dev/random është hequr. Sjellja e /dev/random është afruar më shumë me atë të /dev/urandom për sa i përket parandalimit të bllokimit të entropisë pas inicializimit të grupit.
- Bërthama kryesore përfshin një drajver që lejon sistemet mysafire që përdorin VirtualBox të montojnë drejtoritë e eksportuara nga mjedisi pritës (VirtualBox Shared Folder).
- Një grup patch-esh është shtuar në nënsistemin BPF (), në kontekstin e përdorimit të mekanizmit Retpoline për t'u mbrojtur nga sulmet Spectre V2, lejon rritjen e efikasitetit të thirrjes së programeve BPF kur ndodhin ngjarje të lidhura me to (për shembull, bën të mundur përshpejtimin e thirrjes së trajtuesve XDP kur mbërrin një paketë rrjeti).
- U shtua drajver për të mbështetur mjediset e integruara TEE (Mjedisi i Ekzekutimit të Besueshëm) të APU-ve të AMD-së.
- Shërbimet e kujtesës dhe sistemit
- BPF ka shtuar mbështetje për funksionet globale. Ky zhvillim është pjesë e një iniciative për të shtuar mbështetje për libraritë e funksioneve që mund të përfshihen në programet BPF. Hapi tjetër do të jetë mbështetja për zgjerimet dinamike, duke lejuar ngarkimin e funksioneve globale, duke përfshirë zëvendësimin e funksioneve ekzistuese globale ndërsa ato janë në përdorim. Nënsistemi BPF ka shtuar gjithashtu mbështetje për një variant të operacionit të hartës (i përdorur për të ruajtur të dhëna të vazhdueshme) që mbështet ekzekutimin në grup.
- Pajisja "cpu_cooling" ju lejon të ftohni një CPU të mbinxehur duke e vendosur atë në gjendje joaktive për periudha të shkurtra kohore.
- Thirrje e shtuar e sistemit , i cili ofron një sërë flamujsh shtesë për të kufizuar rezolucionin e shtegut të skedarit (duke parandaluar kryqëzimet e pikave të montimit, lidhjet simbolike, lidhjet magjike (/proc/PID/fd), komponentët "../").
- Për sistemet heterogjene të bazuara në arkitekturën big.LITTLE, që kombinojnë bërthama CPU të fuqishme dhe më pak produktive me efikasitet energjetik në një çip të vetëm, parametri uclamp_min vendoset kur ekzekutohen detyra në kohë reale ( (Në kernel 5.3, mekanizmi i fiksimit të ngarkesës). Ky parametër siguron që detyra do të planifikohet nga planifikuesi në një bërthamë CPU-je me performancë të mjaftueshme.
- Bërthama lirohet nga Zëvendësoi trajtuesit e fundit të mbetur që përdornin llojin time_t 32-bit (int i nënshkruar) për numëruesin epokal të kohës, i cili, duke pasur parasysh raportin e vitit 1970, duhet të mbushet plotësisht në vitin 2038.
- Përmirësim i vazhdueshëm i ndërfaqes asinkrone të hyrjes/daljes në të cilën mbështetje për operacione të reja: IORING_OP_FALLOCATE (rezervoni zona bosh), IORING_OP_OPENAT,
IORING_OP_OPENAT2,
IORING_OP_CLOSE (hapja dhe mbyllja e skedarëve),
IORING_OP_FILES_UPDATE (shtimi dhe heqja e skedarëve nga lista e aksesit të shpejtë),
IORING_OP_STATX (kërkesë për informacionin e skedarit),
IORING_OP_READ,
IORING_OP_WRITE (analoge të thjeshtuara të IORING_OP_READV dhe IORING_OP_WRITEV),
IORING_OP_FADVISE,
IORING_OP_MADVISE (variante asinkrone të thirrjeve posix_fadvise dhe madvise), IORING_OP_SEND,
IORING_OP_RECV (dërgon dhe merr të dhëna rrjeti),
IORING_OP_EPOLL_CTL (duke kryer operacione në përshkruesit e skedarëve epoll). - Thirrje e shtuar e sistemit , i cili i lejon një procesi të marrë një përshkrues skedari për një skedar të hapur nga një proces tjetër.
- Mekanizmi "bootconfig" lejon që parametrat e kernelit të përcaktohen nëpërmjet një skedari konfigurimi përveç opsioneve të rreshtit të komandës. Programi bootconfig është projektuar për shtimin e skedarëve të tillë në imazhin initramfs. Ky funksion mund të përdoret, për shembull, për të konfiguruar kprobes gjatë nisjes.
- Një mekanizëm për të pritur që të dhënat të shkruhen dhe lexohen nga tuba pa emër. Ky ndryshim ka përmirësuar performancën për detyra të tilla si ndërtimet paralele të projekteve të mëdha. Megjithatë, ky optimizim mund të çojë në një gjendje gare në GNU Make për shkak të një gabimi në versionin 4.2.1, i cili u rregullua në versionin 4.3.
- Një flamur PR_SET_IO_FLUSHER është shtuar në prctl(), i cili mund të përdoret për të shënuar proceset që lirojnë memorie si të tilla që nuk i nënshtrohen kufizimeve të ulëta të memories.
- Bazuar në teknologjinë e përdorur në Android Sistemi i alokimit të memories ION ka një nënsistem të implementuar , e cila ju lejon të menaxhoni ndarjen e tamponëve DMA për ndarjen e zonave të memories midis drajverëve, aplikacioneve dhe nënsistemeve të ndryshme.
- Arkitekturat e harduerit
- Shtoi mbështetje për zgjerimin E0PD, të prezantuar në ARMv8.5 dhe që mundëson mbrojtje kundër sulmeve që përfshijnë ekzekutimin spekulativ të udhëzimeve në CPU. Mbrojtja e bazuar në E0PD rezulton në kosto më të ulëta sesa mbrojtja KPTI (Izolimi i Tabelës së Faqes së Bërthamës).
- Mbështetja për udhëzimin RNG, i cili siguron qasje në një gjenerator numrash pseudo-rastësor në harduer, është shtuar për sistemet e bazuara në arkitekturën ARMv8.5. Në bërthamë, udhëzimi RNG përdoret për të gjeneruar entropi gjatë inicializimit të gjeneratorit të numrave pseudo-rastësor të ofruar nga bërthama.
- U hoq mbështetja për MPX (Zgjerimet e Mbrojtjes së Memories) të shtuara në kernel dhe lejon kontrollin e treguesve për përputhshmërinë e kufijve të memories. Kjo teknologji nuk u përvetësua gjerësisht nga kompiluesit dhe u hoq nga GCC.
- Për arkitekturën RISC-V, është zbatuar mbështetje për mjetin e debuggingut KASan (Kernel address sanitizer), i cili mundëson zbulimin e gabimeve gjatë punës me memorien.
- ĐĐ±ĐŸŃŃĐŽĐŸĐČĐ°ĐœĐžĐ”
- Mbështetja e specifikimeve është zbatuar , i cili bazohet në protokollin Thunderbolt 3 dhe ofron rendiment deri në 40 Gbps, duke ruajtur pajtueshmërinë e prapambetur me USB 2.0 dhe USB 3.2. Ngjashëm me Ndërfaqja USB 4.0 lejon tunelimin e protokolleve të ndryshme përmes një kablli të vetëm me një lidhës. , duke përfshirë PCIe, Display Port dhe USB 3.x, si dhe implementime softuerike të protokolleve, të tilla si ato për krijimin e lidhjeve të rrjetit midis hosteve. Implementimi bazohet në atë që është përfshirë tashmë në bërthamë. Linux Drajveri Thunderbolt është përditësuar dhe përshtatur për të funksionuar me pajisje dhe hostë të pajtueshëm me USB4. Ndryshimet shtojnë gjithashtu mbështetje për pajisjet Thunderbolt 3 në zbatimin e softuerit të Connection Manager, i cili është përgjegjës për krijimin e tuneleve për lidhjen e shumë pajisjeve nëpërmjet një porte të vetme.
- Në drajverin amdgpu Mbështetje fillestare për teknologjinë e mbrojtjes nga kopjimi HDCP 2.x (High-bandwidth Digital Content Protection). Shtim mbështetjeje për çipin AMD Pollock ASIC të bazuar në Raven 2. Implementim i mundësisë së rivendosjes së GPU-së për familjet Renoir dhe Navi.
- Drajveri DRM në kartën grafike Intel Mbështetje për DSI VDSC për çipat e bazuar në mikroarkitekturën Ice Lake dhe Tiger Lake, implementuar LMEM mmap (memoria lokale e pajisjes), përmirësuar analizimi i VBT (Tabela e BIOS-it të videos), implementuar mbështetje për HDCP 2.2 për çipat Coffee Lake.
- Vazhdoi puna për unifikimin e kodit të drajverit amdkfd (për GPU diskrete si Fiji, Tonga, Polaris) me drajverin amdgpu.
- Drajveri k10temp është ripërpunuar për të mbështetur daljen e parametrave të tensionit dhe rrymës për CPU-të AMD Zen, si dhe informacionin e zgjeruar nga sensorët e temperaturës të përdorur në CPU-të Zen dhe Zen 2.
- NĂ« shoferin e ri MbĂ«shtetje pĂ«r modalitetin e shkarkimit tĂ« firmware-it tĂ« verifikuar pĂ«r GPU-tĂ« NVIDIA bazuar nĂ« mikroarkitekturĂ«n Turing (GeForce RTX 2000), duke mundĂ«suar mbĂ«shtetjen e pĂ«rshpejtimit 3D pĂ«r kĂ«to karta (kĂ«rkon shkarkimin e firmware-it zyrtar me njĂ« nĂ«nshkrim dixhital nga NVIDIA). ĂshtĂ« shtuar mbĂ«shtetje pĂ«r motorin grafik TU10x. Problemet me HD Audio janĂ« zgjidhur.
- Shtoi mbështetje për kompresimin e të dhënave gjatë transmetimit nëpërmjet DisplayPort MST (Transport Multi-Stream).
- U shtua shofer i ri "» për çipat pa tel të Qualcomm me mbështetje 802.11ax.
Drajveri bazohet në grupin mac80211 dhe mbështet modalitetet e pikës së aksesit, stacionit të punës dhe nyjeve të rrjetit mesh. - sysfs ofron qasje në leximet e lexueshme të sensorëve të temperaturës të përdorura në disqet e forta dhe SSD-të moderne.
- ndryshime të rëndësishme në sistemin e zërit ALSA që synojnë çlirimin e kodit nga (duke u larguar nga përdorimi i tipit time_t 32-bit në ndërfaqet snd_pcm_mmap_status dhe snd_pcm_mmap_control). U shtua mbështetje për kodekët e rinj audio.
Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770. - Drajverë për panelet LCD Logic PD 28, Jimax8729d MIPI-DSI, igenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM940B0,
BOE NV140FHM-N49,
Satoz SAT050AT40H12R2,
Sharp LS020B1DD01D. - Mbështetje për pllakat ARM dhe platformat Gen1: Amazon Echo (bazuar në 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,
Lexuesi i librave elektronikë Tolino Shine 3,
Embedded Artists COM (i.MX7ULP), SolidRun Clearfog CX/ITX dhe 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. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r kontrolluesin PCIe tĂ« pĂ«rdorur nĂ« Raspberry Pi 4.
Në të njëjtën kohë, Fondacioni i Software-it të Lirë të Amerikës Latine
alternativë - , pastruar nga elementët e firmware-it dhe drajverit që përmbajnë komponentë pronësorë ose seksione kodi me fushëveprim të kufizuar. Versioni i ri çaktivizon ngarkimin e blob-eve në drajverë për AMD TEE, ATH11K dhe Mediatek SCP. Kodi i pastrimit të blob-eve është përditësuar për drajverët dhe nënsistemet AMD PSP, amdgpu dhe nouveau.
Burimi: opennet.ru
