Pas dy muajsh zhvillimi Linus Torvalds lëshimi i bërthamës . Ndër ndryshimet më të dukshme janë: integrimi i ndërfaqes VPN WireGuard, mbështetje për USB4, hapësira emri për kohën, mundësia për të krijuar trajtues të ngarkesës TCP me ndihmën e BPF, mbështetje fillestare për MultiPath TCP, zhdukja e problemit të vitit 2038 nga bërthama, mekanizmi "bootconfig", si dhe sistemi i skedarëve ZoneFS.
Në versionin e ri janë pranuar 13702 rregullime nga 1810 zhvillues.
Masa e patches është 40 MB (ndryshimet prekin 11577 skedarë, janë shtuar 610012 rreshta kodi,
dhe janë fshirë 294828 rreshta). Rreth 45% e të gjitha përmirësimeve në 5.6
ndryshimet lidhen me drejtuesit e pajisjeve, rreth 15% e ndryshimeve kanë
kanë të bëjnë me përmirësimin e kodit të veçantë për arkitekturën harduerike, 12%
ka të bëjë me grumbullin e rrjetit, 4% - me sistemet e skedarëve dhe 3% - me brendësinë e
të bërthamës.
:
- Sistemi i rrjetit
- implementimit të ndërfaqes VPN , e cila është implementuar mbi baza të metodave moderne të kriptimit (ChaCha20, Poly1305, Curve25519, BLAKE2s), e thjeshtë për t'u përdorur, e liruar nga ndërlikimet, është treguar me sukses në një sërë zbatimesh të mëdha dhe ofron performancë shumë të lartë (3.9 herë më e shpejtë se OpenVPN në çlirojen). Në WireGuard aplikohet koncepti i rrugëzimit përmes çelsave të kriptimit, i cili nënkupton lidhjen e çdo ndërfaqe rrjeti me një çelës privat dhe përdorimin për lidhjen e çelsave të hapur. Shkëmbimi i çelsave të hapur për vendosjen e lidhjes bëhet në mënyrë të ngjashme me SSH. Elementet e nevojshme për funksionimin e WireGuard nga biblioteka në përbërjen e API Crypto standart dhe në përbërjen e bërthamës .
- integrimi i komponentëve të nevojshëm për mbështetjen e MPTCP (MultiPath TCP), një zgjerim i protokollit TCP për organizimin e punës së lidhjes TCP me dërgesën e paketave njëkohësisht përmes disa rrugëve përmes ndërfaqeve të ndryshme të rrjetit, të lidhura me adresa të ndryshme IP. Për aplikacionet rrjet, kjo lidhje e grumbulluar duket si një lidhje e zakonshme TCP, ndërsa e gjithë logjika e ndarjes së flukseve ekzekutohet nga MPTCP. Multipath TCP mund të përdoret si për zgjerimin e kapacitetit, ashtu edhe për rritjen e qëndrueshmërisë. Për shembull, MPTCP mund të aplikohet për të organizuar transmetimin e të dhënave në smartphone duke përdorur njëkohësisht lidhje WiFi dhe 4G ose për të reduktuar shpenzimet duke ndërlidhur serverin me disa lidhje të lira në vend të një linku të shtrenjtë.
- mbĂ«shtetje pĂ«r disiplinĂ«n e menaxhimit tĂ« radhĂ«ve tĂ« rrjetit sch_ets (, IEEE 802.1Qaz), e cila ofron mundĂ«sinĂ« e shpĂ«rndarjes sĂ« kapacitetit midis klasave tĂ« ndryshme tĂ« trafik. NĂ«se ngarkesa mbi njĂ« klasĂ« tĂ« caktuar tĂ« trafikut Ă«shtĂ« mĂ« e ulĂ«t se kapaciteti i ofruar, atĂ«herĂ« ETS lejon klasave tĂ« tjera tĂ« trafikut tĂ« shfrytĂ«zojnĂ« kapacitetin e disponueshĂ«m (tĂ« papĂ«rdorur). Qdisc sch_ets konfigurohet si njĂ« disiplinĂ« PRIO dhe pĂ«rdor klasat e trafik pĂ«r tĂ« pĂ«rcaktuar kufizime strikte dhe tĂ« ndara pĂ«r kapacitetin. ETS operon si njĂ« kombinim disiplinash dhe â nĂ« rastin e klasave tĂ« kufizuara tĂ« trafikĂ«s, pĂ«rdoret PRIO, por nĂ«se nuk ka trafik nĂ« radhĂ«, funksionon si DRR.
- Shtuar një tip të ri programesh BPF , që lejon implementimin e trajtuesve të funksioneve të bërthamës përmes BPF. Aktualisht, kjo mundësi tashmë mund të përdoret për të implementuar algoritme të kontrollit të ngarkesës TCP në formën e programeve BPF. Si një shembull programi BPF me implementimin e algoritmit .
- Të pranuara në bërthamë , duke përkthyer mjetin nga ioctl() në përdorimin e . Interface i ri lehtëson shtimin e zgjerimeve, përmirëson përpunimin e gabimeve, lejon dërgimin e njoftimeve kur ndryshon gjendja, lehtëson ndërveprimin mes bërthamës dhe hapësirës së përdoruesit dhe redukton numrin e listave emëruese të sinkronizuara.
- Shtuar implementimi i algoritmit për menaxhimin e radhëve të rrjetit FQ-PIE (Flow Queue PIE), i orientuar për të reduktuar ndikimin negativ të tamponimit të paketave në pajisjet kufitare të rrjetit (bufferbloat). FQ-PIE demonstruar një eficiencë të lartë kur përdoret në sisteme me modemë kabllorë.
- Sistemi i diskut, hyrja/ dalje dhe sistemet e skedarëve
- Për sistemin e skedarëve Btrfs implementim asinkron të operacionit DISCARD (etiketimi i bllokave të liruar që nuk duhet të ruhen fizikisht më). Fillimisht, operacionet DISCARD u kryen në mënyrë sinjkrone, gjë që mund të shkaktonte rënie të performancës për shkak të pritjes për përfundimin e komandave përkatëse nga disqet. Implementimi asinkron lejon të mos pritet për përfundimin e DISCARD nga disku dhe të kryejë këtë operacion në sfond.
- Në XFS pastrimi i kodit, ku ishin përdorur numrat e vjetër 32-bit të kohës (tipo time_t zëvendësuar me time64_t), që sillte në problemin e vitit 2038. Korrigjime të gabimeve dhe dëmtimeve të memories janë bërë, që shfaqeshin në platformat 32-bit. Kodi është ristrukturëzuar për të punuar me atributet e zgjeruara.
- Në sistemin e skedarëve ext4 optimizations e performancës lidhur me trajtimin e bllokimeve inode gjatë operacioneve të leximit dhe shkruajtur. Rritur performancën e ri-shkrimit në mënyrën e hyrjes direkte (Direct I/O). Për të lehtësuar diagnostikimin e problemeve, ruhet në superblokun kodi i parë dhe i fundit i gabimeve.
- Në sistemin e skedarëve F2FS mundësia e ruajtjes së të dhënave në formë të kompresuar. Për një skedar ose direktor me të dhëna, kompresimi mund të aktivizohet duke përdorur komandën «chattr +c file» ose «chattr +c dir; touch dir/file». Për kompresimin e tërë ndarjes, në utilitarin mount mund të përdoret opsioni «-o compress_extension=ext».
- Në bërthamë është pranuar sistemi i skedarëve , e cila thjeshton punën me nivel të ulët me pajisjet e ruajtjes të zonuara. Pajisjet e zonuara përfshijnë disqet e forta magnetike ose NVMe SSD, hapësira e ruajtjes së të cilave është e ndarë në zona, që përbëjnë grupe blokesh ose sektorësh, në të cilat lejohet vetëm shtimi i rregullt i të dhënave me përditësimin e të gjithë grupit të blokesh. FS ZoneFS është zhvilluar nga kompania Western Digital dhe lidh çdo zonë në pajisësin me një skedar të veçantë, i cili mund të përdoret për ruajtjen e të dhënave në mënyrë raw pa manipuluar në nivelin e sektorëve dhe blloqeve, domethënë, lejon aplikacionet të përdorin API-në e skedarëve në vend të qasjes direkte në pajisjen bllok me ndihmën e ioctl.
- NĂ« NFS Ă«shtĂ« e çaktivizuar siç Ă«shtĂ«, montimi i ndarjeve mbi UDP. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r mundĂ«sinĂ« e kopjimit tĂ« drejtpĂ«rdrejtĂ« tĂ« skedarĂ«ve midis serverĂ«ve, e cila Ă«shtĂ« e specifikuar nĂ« NFS 4.2. ĂshtĂ« shtuar njĂ« opsion i ri montimi âsoftrevalâ, i cili, nĂ« rast tĂ« dĂ«shtimit tĂ« serverit, lejon pĂ«rdorimin e vlerave tĂ« atribuiteve tĂ« ruajtura nĂ« cache. PĂ«r shembull, me kĂ«tĂ« opsion tĂ« specifikuar, pas njĂ« serveri tĂ« papĂ«rftuar, ruhet mundĂ«sia pĂ«r tĂ« lĂ«vizur nĂ«pĂ«r rrugĂ«t nĂ« ndarjen NFS dhe pĂ«r tĂ« qasur informacionin qĂ« Ă«shtĂ« vendosur nĂ« cache.
- optimizimi i performancĂ«s sĂ« mekanizmit fs-verity, i cili pĂ«rdoret pĂ«r tĂ« kontrolluar integritetin dhe verifikimin e autentikitetit tĂ« skedarĂ«ve tĂ« veçantĂ«. JanĂ« pĂ«rmirĂ«suar shpejtĂ«sitĂ« e leximit tĂ« rreshtuar falĂ« pĂ«rdorimit tĂ« pemĂ«s sĂ« hash-it Merkle. ĂshtĂ« optimizuar produktiviteti FS_IOC_ENABLE_VERITY nĂ« kushte kur nuk ka tĂ« dhĂ«na nĂ« cache (ka qenĂ« pĂ«rdorur leximi i parashikimit tĂ« faqeve me tĂ« dhĂ«na).
- Virtualizimi dhe siguria
- ĂshtĂ« shpallur e vjetruar mundĂ«sia e çaktivizimit tĂ« modulit SELinux gjatĂ« funksionimit, dhe nĂ« tĂ« ardhmen, shkarkimi i SELinux sĂ« aktivizuar do tĂ« ndalohet. PĂ«r tĂ« çaktivizuar SELinux do tĂ« duhet tĂ« dĂ«rgoni parametrin âselinux=0â nĂ« komandĂ«n e bĂ«rthĂ«mĂ«s.
- mbështetje për hapësirat e emrave për kohën (time namespaces), të cilat lejojnë lidhjen e gjendjes së orëve sistemike për një kontejner (CLOCK_REALTIME,
CLOCK_MONOTONIC, CLOCK_BOOTTIME), tĂ« pĂ«rdorin kohĂ«n e tyre nĂ« kontejner dhe gjatĂ« migrimit tĂ« kontejnerit nĂ« njĂ« host tjetĂ«r tĂ« sigurojnĂ« paprekshmĂ«rinĂ« e leximeve tĂ« CLOCK_MONOTONIC dhe CLOCK_BOOTTIME (duke marrĂ« parasysh kohĂ«n pas ngarkesĂ«s me ose pa marrĂ« parasysh se ka qenĂ« nĂ« gjumĂ«). - ĂshtĂ« hequr puli i bllokuar "/dev/random". Sjellja e "/dev/random" Ă«shtĂ« afruar me "/dev/urandom" nĂ« aspektin e parandalimit tĂ« bllokimit tĂ« entropisĂ« pas inicializimit tĂ« pulit.
- Në bërthamën kryesore është përfshirë një driver që lejon sistemet mikrokontrolle, të cilat funksionojnë nën menaxhimin e VirtualBox, për të montuar katalogët e eksportuar nga mjedisi host (VirtualBox Shared Folder).
- Në nënsistemën BPF është shtuar një grup patch-esh (), në kushtet e aplikimit të mekanizmit Retpoline për mbrojtje nga sulmet e klasës Spectre V2, që lejon rritjen e efikasitetit të thirrjes së programeve BPF kur ndodhin ngjarje të lidhura me to (për shembull, ofron mundësinë e përshpejtimit të thirrjes së përpunuesve XDP kur mbërrin një paketë rrjeti).
- Shtuar një drejtues për mbështetje të mjediseve TEE (Trusted Execution Environment) të integruar në APU-të AMD.
- Kujtesa dhe shërbimet sistemore
- Në BPF është shtuar mbështetje për funksione globale. Zhvillimi po kryhet në kuadër të iniciativës për shtimin e mbështetjes për biblioteka funksionesh, të cilat mund të lidhen në programet BPF. Hapi tjetër do të jetë mbështetje për zgjerime dinamike, që lejojnë ngarkimin e funksioneve globale, duke përfshirë zëvendësimin e funksioneve globale ekzistuese gjatë përdorimit të tyre. Në nënstrukturën BPF është shtuar gjithashtu mbështetje për një variant të operacionit map (që përdoret për ruajtjen e të dhënave të qëndrueshme), që mbështet ekzekutimin në modin e paketave.
- dispositivi "cpu_cooling" që lejon ftohjen e CPU-së së mbinxehur duke e kaluar atë në një gjendje pritjeje (idle) për periudha të shkurtra kohe.
- Shtuar thirrjen sistemike , që ofron një set shtesash flamujsh për të kufizuar zgjidhjen e shtegut të skedave (ndalimi i kalimit të pikave të montimit, lidhjeve simbolike, lidhjeve magjike (\proc\PID\fd), komponenteve "..\" ).
- Për sisteme të heterogjene të bazuara në arkitekturën big.LITTLE, që kombinojnë në një çip sete të fuqishme dhe më pak produktive të bërthamave të CPU-së me efikasitet energjetik, gjatë ekzekutimit të detyrave në kohë reale është siguruar vendosja e parametrave uclamp_min ( në bërthamën 5.3 mekanizmi i ngjeshjes së ngarkesës). Parametri i cituar garanton që detyra do të vendoset nga planifikuesi në një bërthamë CPU-je që ka mjaft performancë.
- Bërthama është çliruar nga . Janë zëvendësuar përpunuesit e fundit të mbetur, në të cilët për numërimin e epokës së kohës ishte përdorur një tip 32-bit (signed int) time_t, i cili, duke marrë parasysh raportin nga viti 1970, duhet të mbushet në vitin 2038.
- Vazhdon përmirësimi i ndërfaqes së hyrjes/asinkrone , në të cilin mbështetje për operacione të reja: IORING_OP_FALLOCATE (rezervimi i hapësirave të zbrazëta), IORING_OP_OPENAT,
IORING_OP_OPENAT2,
IORING_OP_CLOSE (hapja dhe mbyllja e skedave),
IORING_OP_FILES_UPDATE (shtimi dhe fshirja e skedave nga lista e aksesit të shpejtë),
IORING_OP_STATX (kërkesa për informacion rreth skedës),
IORING_OP_READ,
IORING_OP_WRITE (analogë të thjeshtuar 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ërgimi dhe pranimi i të dhënave rrjetë),
IORING_OP_EPOLL_CTL (ekzekutimi i operacioneve mbi descriptorët e skedave epoll). - Shtuar thirrjen sistemike , që i jep mundësinë procesit të nxjerrë nga një proces tjetër një descriptor të skedës së një skede të hapur.
- mekanizmi «bootconfig», i cili lejon përcaktimin e parametrave të funksionimit të bërthamës përmes një skedari konfigurationsh, përveç opsioneve të komandave të linjës. Për të shtuar skedarë të tillë në imazhin initramfs, është propozuar utiliteti bootconfig. Kjo mundësi mund të përdoret, për shembull, për konfigurimin e kprobes gjatë ngarkimit.
- mekanizmi i pritjes së shkrimit dhe leximit të të dhënave në kanale të paemërtuara (pipe). Ndryshimi ka mundësuar përshpejtimin e përfundimit të detyrave të tilla si ndarja paralele e projekteve të mëdha. Megjithatë, optimizimi mund të çojë në një gjendje garash në GNU make për shkak të një gabimi në publikimin 4.2.1, i cili është eliminuar në versionin 4.3.
- Në prctl() është shtuar flaka PR_SET_IO_FLUSHER, e cila mund të përdoret për të markuar proceset që angazhohen në çlirimin e memorjes, për të cilat nuk duhet aplikuar kufizime në situata të mungesës së memories në sistem.
- Në bazë të sistemit të menaxhimit të memories në Android, ION është realizuar si një nën-sistem. i cili lejon menaxhimin e alokimit të bufferave DMA për ndarjen e zonave të memories midis drejtorëve, aplikacioneve dhe nën-sistemeve të ndryshme.
- Arkitekturat harduerike
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r zgjatimin E0PD, i cili Ă«shtĂ« shfaqur nĂ« ARMv8.5 dhe lejon implementimin e mbrojtjes nga sulmet qĂ« lidhen me ekzekutimin spekulativ tĂ« instrukcionesh nĂ« CPU. Mbrojtja e bazuar nĂ« E0PD rezulton nĂ« mĂ« pak shpenzime krahasuar me mbrojtjen KPTI (Izolimi i TabelĂ«s sĂ« Faqeve tĂ« Kernelit).
- Për sistemet e bazuara në arkitekturën ARMv8.5 është shtuar mbështetje për instrukcioni RNG, i cili ofron qasje në gjeneruesin harduerik të numrave pseudo-rastësorë. Në bërthamë, instrukcioni RNG përdoret për formimin e entropisë gjatë inicializimit të gjeneruesit të numrave pseudo-rastësorë që ofrohet nga bërthama.
- ĂshtĂ« hequr mbĂ«shtetja pĂ«r zgjatjet MPX (Zgjerimet e Mbrojtjes sĂ« Memories), tĂ« cilat ishin shtuar nĂ« bĂ«rthamĂ« dhe qĂ« lejonin organizimin e kontrollit tĂ« treguesve pĂ«r respektimin e kufijve tĂ« zonave tĂ« memories. Kjo teknologji nuk Ă«shtĂ« pĂ«rhapur nĂ« kompilerĂ« dhe Ă«shtĂ« hequr nga GCC.
- Për arkitekturën RISC-V është realizuar mbështetje për mjetin e debugimit KASan (sanitizuesi i adresave të Kernelit), i cili siguron identifikimin e gabimeve gjatë punës me memorjen.
- Pajisjet
- ĂshtĂ« realizuar mbĂ«shtetje pĂ«r specifikimin i cili bazohet nĂ« protokollin Thunderbolt 3 dhe ofron kapacitet deri nĂ« 40 Gbit/s, duke ruajtur pĂ«rputhshmĂ«rinĂ« me USB 2.0 dhe USB 3.2. NĂ« pĂ«rputhje me interfejsi USB 4.0 lejon tunelimin e protokolleve tĂ« ndryshme pĂ«rmes njĂ« kablli me lidhĂ«sin , pĂ«rfshirĂ« PCIe, Display Port dhe USB 3.x, si dhe implementimet programore tĂ« protokolleve, pĂ«r shembull, pĂ«r organizimin e lidhjeve rrjet nĂ« mes hosteve. Implementimi bazohet nĂ« driver-in e Thunderbolt qĂ« tashmĂ« Ă«shtĂ« pĂ«rfshirĂ« nĂ« kernelin e Linux dhe e adapton atĂ« pĂ«r punĂ« me hoste dhe pajisje tĂ« pajtueshme me USB4. Ndryshimet gjithashtu shtojnĂ« mbĂ«shtetje pĂ«r pajisjet Thunderbolt 3 nĂ« implementimin programor tĂ« menaxherit tĂ« lidhjeve (Connection Manager), i cili Ă«shtĂ« pĂ«rgjegjĂ«s pĂ«r krijimin e tunelĂ«ve pĂ«r lidhjen e disa pajisjeve nĂ«pĂ«rmjet njĂ« porti.
- Në driver-in amdgpu mbështetje fillestare për teknologjinë e mbrojtjes nga kopjimi HDCP 2.x (High-bandwidth Digital Content Protection). Shtuar mbështetje për çipin ASIC AMD Pollock, i cili është bazuar në Raven 2. Realizuar mundësia e rikthimit të GPU për familjet Renoir dhe Navi.
- Në driver-in e DRM për kartat e grafikës Intel mbështetje për DSI VDSC për çipat e bazuar në mikro-arkitekturën Ice Lake dhe Tiger Lake, realizuar LMEM mmap (memorie lokale pajisjeje), përmirësuar përpunimi i VBT (Video BIOS Table), realizuar mbështetje për HDCP 2.2 për çipat Coffee Lake.
- Puna për unifikimin e kodit të driver-it amdkfd (për GPU diskrete, si Fiji, Tonga, Polaris) është vazhduar me driver-in amdgpu.
- Driver-i k10temp është rishikuar, në të cilin është shtuar mbështetje për daljen e parametrave të tensionit dhe forcës së rrymës për CPU AMD Zen, si dhe informacione të zgjeruara nga sensorët e temperaturës, të përdorur në CPU Zen dhe Zen 2.
- Në driver-in nouveau mbështetje për modalitetin e verifikimit të ngarkesës së firmware për GPU NVIDIA të bazuar në mikro-arkitekturën Turing (GeForce RTX 2000), e cila mundëson aktivizimin e mbështetjes për akcelerimin 3D për këto karta (kërkohet ngarkimi i firmware-ve zyrtare me nënshkrimin digjital të NVIDIA). Shtuar mbështetje për motorin grafik TU10x. Problemet me HD Audio janë zgjidhur.
- Shtuar mbështetje për kompresimin e të dhënave gjatë transferimit përmes DisplayPort MST (Multi-Stream Transport).
- Shtuar një driver të ri "" për çipat wireless të Qualcomm me mbështetje 802.11ax.
Driver-i është i bazuar në stekën mac80211 dhe mbështet modalitetet e pikës së qasjeve, stacionit të punës dhe nyjës Mesh. - Përmes sysfs, sigurohet aksesi në lexime të sensorëve të temperaturës, të përdorur në disqet e ndezura dhe SSD-të moderne.
- ndryshime të rëndësishme në sistemin audio ALSA, të drejtuara për të eleminuar kodin nga (shkëputja nga përdorimi i tipit 32-bit të time_t në ndërfaqet snd_pcm_mmap_status dhe snd_pcm_mmap_control). Shtuar mbështetje për kodeka të rinj audio
Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770. - driverat 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 platformat ARM dhe platformat Gen1 Amazon Echo (të bazuara 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 e-librit 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. Support for the PCIe controller used in Raspberry Pi 4 has been added.
Njëkohësisht Fondi Latino-Amerikan i Softuerit të Lirë
opsion â , free from firmware and driver elements containing non-free components or code sections limited by the manufacturer. In the new release, blob loading has been disabled in drivers for AMD TEE, ATH11K, and Mediatek SCP. The blob cleaning code in the drivers and subsystems AMD PSP, amdgpu, and nouveau has been updated.
Burimi: opennet.ru
