Pas dy muajsh zhvillimi, Linus Torvalds lëshimi i kernelit . Disa nga ndryshimet më të dukshme: detektori i gjendjeve të garës KCSAN, një mekanizëm universal i dërgimit të njoftimeve në hapësirën e përdoruesit, mbështetje për pajisjet për enkriptim inline, mekanizma të zgjeruar mbrojtës për ARM64, mbështetje për procesorin rus Baikal-T1, mundësia e montimit të ndarë të ekzemplarëve procfs, implementimi për ARM64 i mekanizmave mbrojtës Shadow Call Stack dhe BTI.
Nuklea 5.8 është bërë më i madhi sa u përket ndryshimeve në të gjitha nukleat gjatë gjithë historisë së projektit. Ndryshimet nuk lidhen me ndonjë nën-sistem të vetëm, por prekin pjesë të ndryshme të nukleut dhe kryesisht janë të lidhura me riparime të brendshme dhe pastrime. Më shumë ndryshime janë vërejtur te drejtuesit. Në versionin e ri janë pranuar 17606 rregullime nga 2081 zhvillues, të cilat prekin rreth 20% të të gjithë skedarëve në repozitorin e kodit të nukleut. Madhësia e patch-it është 65 MB (ndryshimet prekin 16180 skedarë, janë shtuar 1043240 rreshta kodi, janë fshirë 489854 rreshta). Për krahasim, në degën 5.7 janë bërë 15033 rregullime, ndërsa madhësia e patch-it ishte 39 MB. Rreth 37% e të gjithë ndryshimeve të paraqitura në 5.8 lidhen me drejtuesit e pajisjeve, rreth 16% e ndryshimeve kanë të bëjnë me azhurnimin e kodit specifik për arkitekturën hardware, 11% lidhen me grumbujin rrjet, 3% me sistemet e skedarëve dhe 4% me nën-sistemat e brendshme të nukleut.
:
- Virtualizimi dhe siguria
- ĂshtĂ« siguruar bllokimi i ngarkimit tĂ« moduleve tĂ« nukleut, tĂ« cilat kanĂ« seksione me kod, ku njĂ«kohĂ«sisht janĂ« vendosur bitĂ«t qĂ« lejojnĂ« ekzekutimin dhe shkruan. Ndryshimi Ă«shtĂ« realizuar si pjesĂ« e njĂ« projekti mĂ« tĂ« madh pĂ«r tĂ« hequr dorĂ« nga pĂ«rdorimi i faqeve tĂ« memories, qĂ« lejojnĂ« njĂ«kohĂ«sisht ekzekutimin dhe shkruan.
- Ka lindur mundësia e krijimit të instancave të veçanta procfs, që lejojnë përdorimin e pikëve të montimit procfs të montuara me mundësi të ndryshme, por që pasqyrojnë një hapësirë emërimi për identifikatorët e proceseve (pid namespace). më parë, të gjitha pikët e montimit procfs pasqyronin vetëm një përfaqësim të brendshëm dhe çdo ndryshim në parametrat e montimit ndikonte në të gjitha pikët tjera të montimit të lidhura me të njëjtën hapësirë emërimi për identifikatorët e proceseve. Nga fushat ku mund të jetë e nevojshme montimi me mundësi të ndryshme, përmendet implementimi i izolimit të lehtë për sisteme të integruara me mundësinë e fshehjes në procfs të disa llojeve procesesh dhe nyjash informacioni.
- Për platformën ARM64 është realizuar mbështetje për mekanizmin
, të ofruar nga kompajleri Clang për mbrojtjen nga mbivendosja e adresës së kthimit nga funksioni në rast të mbushjes së tamponëve në kupë. Thelbi i mbrojtjes është ruajtja e adresës së kthimit pas kalimit të kontrollit te funksioni në një 'shtëpi të hijshme' dhe nxjerrja e kësaj adrese para daljes nga funksioni. - Për platformën ARM64 është shtuar mbështetje për instruksionet (Branch Target Indicator) për mbrojtjen e ekzekutimit të grupeve të instruksioneve që nuk duhet të ekzekutohen kalime gjatë degëzimit. Bllokimi i kalimeve në pjesë të rastit të kodit është realizuar për të parandaluar krijimin e gadgeteve në eksploitë që përdorin teknikat e programimit të orientuar ndaj kthimit (ROP - Return-Oriented Programming, ku sulmuesi nuk përpiqet të vendosë kodin e tij në memorie, por operon me copa ekzistuese të instrukcioneve makinerike që përfundojnë me instrukcionin e kthimit të kontrollit, nga të cilat formohen zinxhirë thirrjesh për të arritur funksionalitetin e nevojshëm).
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r pajisjet pĂ«r inline-enkriptim tĂ« pajisjeve bllokuese (). Pajisjet e inline-enkriptimit zakonisht janĂ« tĂ« integruara nĂ« ruajtĂ«s, por logjikisht vendosen midis memories sistemike dhe diskut, duke realizuar enkriptim dhe dekriptim tĂ« rregullt tĂ« tĂ« dhĂ«nave tĂ« leximit/dĂ«rgimit nĂ« bazĂ« tĂ« çelĂ«save dhe algoritmit tĂ« enkriptimit tĂ« caktuar nga bĂ«rthama.
- ĂshtĂ« shtuar parametri i komandĂ«s sĂ« bĂ«rthamĂ«s 'initrdmem', qĂ« lejon pĂ«rcaktimin e adresĂ«s fizike tĂ« vendosjes initrd nĂ« memorie gjatĂ« vendosjes sĂ« images sĂ« ngarkesĂ«s fillestare nĂ« RAM.
- Shtesa e kapaciteteve të reja: CAP_PERFMON për akses në sisteme perf dhe për kryerjen e monitorimit të performancës. , që lejon kryerjen e disa operacioneve me BPF (për shembull, ngarkimi i programeve BPF), të cilat më parë kërkonin të drejtat CAP_SYS_ADMIN (tani autorizimet CAP_SYS_ADMIN janë të ndara në kombinimin e CAP_BPF, CAP_PERFMON dhe CAP_NET_ADMIN).
- një pajisje e re virtio-mem, që mundëson lidhjen dhe shkëputjen e nxehtë të memories në sistemet mysafir.
- Kthimi i operacioneve të hartimit në /dev/mem është realizuar, nëse drejtori i pajisjes përdor zona memories që mbulohen.
- Shtuar mbrojtje nga vulnerabiliteti , që lejon rikuperimin e rezultateve të ekzekutimit të disa instrukcioneve, të kryera në një bërthamë tjetër CPU.
- Memorie dhe shërbime sistemike
- NĂ« dokumentin qĂ« pĂ«rcakton rregullat e formatimit tĂ« kodit, rekomandimet pĂ«r pĂ«rdorimin e terminologjisĂ« inkluzive. Programuesve nuk u rekomandohet tĂ« pĂ«rdorin lidhjet âmaster/slaveâ dhe âblacklist/whitelistâ, si edhe fjalĂ«n âslaveâ. Rekomandimet vlejnĂ« vetĂ«m pĂ«r pĂ«rdorimet e reja tĂ« kĂ«tyre terma. PĂ«rmendjet ekzistuese tĂ« kĂ«tyre fjalĂ«ve nĂ« bĂ«rthamĂ« do tĂ« mbeten tĂ« paprekura. NĂ« kodin e ri, pĂ«rdorimi i terma tĂ« shĂ«nuara lejohet nĂ«se kĂ«rkohet pĂ«r tĂ« mbĂ«shtetur API dhe ABI qĂ« jepet nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit, si dhe gjatĂ« pĂ«rditĂ«simit tĂ« kodit pĂ«r tĂ« mbĂ«shtetur pajisjet ekzistuese ose protokollet, specifikimet e tĂ« cilĂ«ve kĂ«rkojnĂ« pĂ«rdorimin e terma tĂ« caktuar.
- Pjesë përmban një mjet debugsim (Kernel Concurrency Sanitizer), i dizajnuar për identifikimin dinamik të brenda bërthamës. Përdorimi i KCSAN mbështetet gjatë ndërtimit në GCC dhe Clang, dhe kërkon shtimin e modifikimeve të veçanta në fazën e kompilimit për të monitoruar aksesin në memorje (përdoren pika ndalesash që aktivizohen kur lexohet ose ndryshohet memoria). Vëmendja kryesore gjatë zhvillimit të KCSAN është dhënë parandalimit të njoftimeve të rreme, së bashku me shkallëzimin dhe lehtësinë e përdorimit.
- Shtuar njoftimi i dërgimit nga bërthama në hapësirën e përdoruesit. Mekanizmi bazohet në driver-in e zakonshëm pipe dhe lejon shpërndarjen efikase të njoftimeve nga bërthama përmes kanaleve të hapura në hapësirën e përdoruesit. Pikat e pranimit të njoftimeve janë pipe të hapura në një mod të veçantë që lejojnë grumbullimin në një tampon qarku të mesazheve që vijnë nga bërthama. Leximi bëhet me anë të funksionit të zakonshëm read(). Pronari i kanalit përcakton se cilat burime në bërthamë duhet të monitorohen dhe mund të përcaktojë një filtër për të injoruar mesazhet dhe ngjarjet e një lloji të caktuar. Nga ngjarjet, për momentin përkrahen vetëm operacionet me çelësa, siç janë shtimi / fshirja e çelësave dhe ndryshimi i atributeve të tyre. Ngjarjet e përcaktuara planifikohen të përdoren në GNOME.
- ĂshtĂ« vazhduar zhvillimi i funksionalitetit âpidfdâ, qĂ« ndihmon nĂ« pĂ«rballimin e situatave me ripĂ«rdorimin e PID (pidfd Ă«shtĂ« lidhur me njĂ« proces tĂ« caktuar dhe nuk ndryshon, ndĂ«rsa PID-i mund tĂ« lidhet me njĂ« proces tjetĂ«r pas pĂ«rfundimit tĂ« procesit aktual, tĂ« lidhur me kĂ«tĂ« PID). NĂ« versionin e ri Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r pĂ«rdorimin e pidfd pĂ«r bashkimin e procesit me hapĂ«sira emĂ«rtimi (lejohet specifikimi i pidfd gjatĂ« thirrjes sĂ« sistemit setns). PĂ«rdorimi i pidfd lejon menaxhimin e bashkimit tĂ« njĂ« procesi me disa lloje hapĂ«sirash emĂ«rtimi me njĂ« thirrje, duke e ulur ndjeshĂ«m numrin e thirrjeve tĂ« nevojshme tĂ« sistemit dhe duke realizuar bashkimin nĂ« mĂ«nyrĂ« atomike (nĂ«se ndodh njĂ« dĂ«shtim gjatĂ« bashkimit me njĂ« nga hapĂ«sirat emĂ«rtimi, atĂ«herĂ« nuk do tĂ« bashkohen as tĂ« tjerat).
- ĂshtĂ« shtuar njĂ« thirrje e re e sistemit faccessat2(), e cila ndryshon nga
me një argument shtesë me flamuj që i përkasin rekomandimeve POSIX (më parë këta flamuj ishin emuluar në bibliotekën C, ndërsa faccessat2 e re lejon implementimin e tyre në bërthamë). - Në Cgroup konfigurimi memory.swap.high, i cili mund të përdoret për ngadalësimin e detyrave që zënë shumë hapësirë në seksionin e swap-it.
- Në interface-n e input/output asinkron është shtuar mbështetje për thirrjen e sistemit tee().
- Shtua mekanizmi ", e cila është e destinuar për të dalë në hapësirën e përdoruesit përmbajtjen e strukturave të bërthamës.
- mundësia e përdorimit të tamponit qark për shkëmbimin e të dhënave midis programeve BPF.
- Në mekanizmin , i dizajnuar për të organizuar ekzekutimin paralel të detyrave në bërthamë, është shtuar mbështetje për detyrat shumëprerëse me balancimin e ngarkesës.
- Në mekanizmin pstore, i cili ruan informacionin e shkëlqyer rreth arsyeve të dështimit në një zonë të memories, që nuk humbet midis rinisjeve, backend për ruajtjen e informacionit në pajisjet bllok.
- Nga dega e bërthamës PREEMPT_RT implementimi i bllokimeve lokale.
- API i ri për alokimin e bufereve (AF_XDP), i orientuar në thjeshtimin e shkruarjes së drejtuesve të rrjetit me mbështetje për XDP (eXpress Data Path).
- Për arkitekturën RISC-V është implementuar mbështetje për debuggimin e komponentëve të bërthamës me anë të KGDB.
- Para lëshimit të 4.8 janë rritur kërkesat për versionin e GCC, i cili mund të përdoret për ndërtimin e bërthamës. Në një nga lëshimet e ardhshme planifikohet që kufiri të rritet në GCC 4.9.
- Sistemi i disqeve, hyrja/ dalje dhe sistemet e skedarëve
- Në Device Mapper është shtuar një përpunues i ri dm-ebs (emulate block size), i cili mund të përdoret për të emuluar madhësi më të vogla të bllokut logjik (për shembull, për të emuluar sektorë 512-byte në disqe me madhësi sektori 4K).
- Në sistemin e skedarëve F2FS u shtua mbështetje për kompresimin duke përdorur algoritmin LZO-RLE.
- Në dm-crypt mbështetje për çelësa të enkriptuar.
- Në Btrfs është përmirësuar përpunimi i operacioneve të leximit në modalitetin e hyrjes direkte. Gjatë montimit verifikimi i nënndarjeve të largëta dhe katalogëve pa prind.
- Në CIFS është shtuar parametrin "nodelete", i cili lejon kontrolle standarde të të drejtave në server, por ndalon klientin të fshijë skedarë ose katalogë.
- Në Ext4 është përmirësuar përpunimi i gabimeve kur përdoret shumëprerësia. Në xattr është shtuar mbështetje për hapësirën emërtim gnu.*, e cila përdoret në GNU Hurd.
- Për Ext4 dhe XFS është aktivizuar mbështetje për operacionet DAX (qasje direkte në FS pa kaluar nëpër cache-n e faqeve pa përdorur nivelin e pajisjeve bllok) në lidhje me skedarë dhe katalogë të veçantë.
- Në thirrjen e sistemit është shtuar një flag , kur specifikohet informacioni nxirret duke përdorur mekanizmin DAX.
- Në EXFAT mbështetje për verifikimin e zonës së ngarkimit.
- Në FAT ngarkimi parashikues i elementeve të FS. Testimi i një memorjes USB 2TB të ngadaltë tregoi një reduktim të kohës së kalimit të testit nga 383 në 51 sekonda.
- Sistemi rrjetor
- Në kodin e menaxhimit të punës së urave të rrjetit mbështetja e protokollit (Protokolli për Redundancën Mediale), që lejon sigurimin e qëndrueshmërisë, duke u lidhur disa ndërrues Ethernet.
- Në sistemin e menaxhimit të trafikut (Tc) Veprimi i ri "gate", i cili ofron mundësinë për të përcaktuar intervalet e kohës për përpunimin dhe përjashtimin e paketimeve të caktuara.
- Në bërthamë dhe utilitarin ethtool është shtuar mbështetje për funksionet e testimit të kabllove të lidhjes së rrjetit dhe vetëdiagnozës së pajisjeve rrjet.
- Në stekën IPv6 është shtuar mbështetje për algoritmin MPLS (Multiprotocol Label Switching) për ruterimin e paketimeve duke përdorur kalimin me etiketë (MPLS ka pasur mbështetje për IPv4 më parë).
- Shtuar mbështetje për transferimin e paketimeve IKE (Internet Key Exchange) dhe IPSec mbi TCP () për të kapërcyer bllokimet e mundshme të UDP.
- Dispozita bllokuese e rrjetit rnbd, e cila lejon organizimin e qasjes së largët në një pajisje bllokuese përmes transportit RDMA (InfiniBand, RoCE, iWARP) dhe protokollit RTRS.
- Në stekën TCP është shtuar mbështetje për kompresimin e diapazonit në përgjigjet e konfirmimit selektiv (selective acknowledgment, SACK).
- Për IPv6 është shtuar mbështetje për TCP-LD (, Long Connectivity Disruptions).
- Pajisje
- Në drejtimin DRM i i915 për kartat grafike Intel është aktivizuar si standard mbështetje për çipat Intel Tiger Lake (GEN12), për të cilët gjithashtu është e mundur përdorimi i sistemit SAGV (System Agent Geyserville) për përshtatjen dinamikë të frekuencës dhe tensionit në varësi të kërkesave për konsumin e energjisë apo performancën.
- Në drejtuesin amdgpu është shtuar mbështetje për formatin e pikselëve FP16 dhe është realizuar mundësia e funksionimit me buffer të koduar në memorie grafike (TMZ, Trusted Memory Zone).
- Shtuar mbështetje për sensorët e konsumit të energjisë për procesorët AMD Zen dhe Zen2, si dhe sensorët e temperaturës për AMD Ryzen 4000 Renoir. Për AMD Zen dhe Zen2 është ofruar mbështetje për nxjerrjen e informacionit mbi konsumimin e energjisë përmes ndërfaqes (Running Average Power Limit).
- Në drejtuesin Nouveau është shtuar mbështetje për formatin e modifikatorëve NVIDIA. Për gv100 është realizuar mundësia e përdorimit të modëve të situatave me rrugë të ndërprera. Shtuar përcaktimi i vGPU.
- Në drejtuesin MSM (Qualcomm) është shtuar mbështetje për GPU Adreno A405, A640 dhe A650.
- korniza e brendshme për menaxhimin e burimeve DRM (Direct Rendering Manager).
- Shtuar mbështetje për telefonat inteligjentë Xiaomi Redmi Note 7 dhe Samsung Galaxy S2, si dhe për laptopët Elm/Hana Chromebook.
- Shtuar drejtuesit për panelët LCD: ASUS TM5P5 NT35596, Starry KR070PE2T, Leadtek LTK050H3146W, Visionox rm69299, Boe tv105wum-nw0.
- Shtuar mbështetje për platformat ARM dhe platformat Renesas "RZ/G1H", Realtek RTD1195, Realtek RTD1395/RTD1619, Rockchips RK3326, AMLogic S905D, S905X3, S922XH, Olimex A20-OLinuXino-LIME-eMMC, Check Point L-50,
, Beacon i.MX8m-Mini, Qualcomm SDM660/SDM630, Xnano X5 TV Box, Stinger96, Beaglebone-AI. - Shtimi i mbështetjes për procesorin MIPS Loongson-2K (Loongson64 i shkurtuar). Për CPU-në Loongson 3 është shtuar mbështetje për virtualizimin duke përdorur hipervizorin KVM.
-
mbĂ«shtetje pĂ«r procesorin rus Baikal-T1 dhe sistemin e tij tĂ« integruar nĂ« çip . Procesori Baikal-T1 ka dy bĂ«rthama superkalarare P5600 MIPS 32 r5, qĂ« punojnĂ« nĂ« njĂ« frekuencĂ« prej 1.2 GHz. Ăipi ka njĂ« cache L2 (1 MB), njĂ« kontrollues memorie DDR3-1600 ECC, 1 port 10Gb Ethernet, 2 porta 1Gb Ethernet, njĂ« kontrollues PCIe Gen.3 x4, 2 porta SATA 3.0, USB 2.0, GPIO, UART, SPI, I2C. Procesori ofron mbĂ«shtetje harduerike pĂ«r virtualizimin, instrukcija SIMD dhe njĂ« nxjerrĂ«s harduerik tĂ« integruar pĂ«r operacionet kriptografike, qĂ« mbĂ«shtet GOST 28147-89. Ăipi Ă«shtĂ« zhvilluar duke pĂ«rdorur njĂ« bllok tĂ« licencuar nga kompanisĂ« Imagination Technologies tĂ« bĂ«rthamĂ«s procesorike MIPS32 P5600 Warrior.
Njëkohësisht, Fondi i Softuerit të Lirë të Amerikës Latine
njĂ« variant â , i pastruar nga elemente tĂ« firmuerĂ«ve dhe drejtuesve qĂ« pĂ«rmbajnĂ« komponente ose pjesĂ« kodi tĂ« pa-lira, tĂ« cilat janĂ« tĂ« kufizuara nga prodhuesi. NĂ« kĂ«tĂ« botim Ă«shtĂ« ndaluar ngarkimi i blob-eve nĂ« drejtuesit pĂ«r Atom ISP Video, MediaTek 7663 USB/7915 PCIe, Realtek 8723DE WiFi, Renesas PCI xHCI, HabanaLabs Gaudi, Enhanced Asynchronous Sample Rate Converter, Maxim Integrated MAX98390 Speaker Aimplifier, Microsemi ZL38060 Connected Home Audio Processor, dhe I2C EEPROM Slave. ĂshtĂ« pĂ«rmirĂ«suar kodi pĂ«r pastrimin e blob-eve nĂ« drejtuesit dhe nĂ«n-sistemet Adreno GPU, HabanaLabs Goya, x86 touchscreen, vt6656 dhe btbcm.
Burimi: opennet.ru
