Pas dy muajsh zhvillimi, Linus Torvalds publikoi bërthamën. Linux 5.12. Ndër ndryshimet më të dukshme: mbështetja për pajisjet me bllok të zonuar në Btrfs, aftësia për të lidhur ID-të e përdoruesve me sistemet e skedarëve, pastrimi i arkitekturave të trashëguara ARM, modaliteti i shkrimit me dëshirë në NFS, mekanizmi LOOKUP_CACHED për përcaktimin e shtigjeve të skedarëve nga memoria e përkohshme, mbështetja për udhëzimet atomike në BPF, sistemi i debugging-ut KFENCE për zbulimin e gabimeve në trajtimin e memories, një modalitet pollingu NAPI në grumbullin e rrjetit që funksionon në një fije të veçantë kerneli, hipervizori ACRN, aftësia për të ndryshuar modelin paraprak në kohë reale në planifikuesin e detyrave dhe mbështetja për optimizimet LTO gjatë ndërtimit në Clang.
Versioni i ri përfshin 14170 (në versionin e mëparshëm 15480) rregullime nga zhvilluesit e 1946 (1991), madhësia e patch-it është 38 MB (ndryshimet prekën 12102 (12090) skedarë, 538599 (868025) rreshta kodi u shtuan, 333377) rreshtat u fshinë). Rreth 261456% e të gjitha ndryshimeve të paraqitura në 43 janë të lidhura me drejtuesit e pajisjes, afërsisht 5.12% e ndryshimeve lidhen me përditësimin e kodit specifik për arkitekturat e harduerit, 17% janë të lidhura me grupin e rrjetit, 12% lidhen me sistemet e skedarëve dhe 5% janë të lidhura me nënsistemet e brendshme të kernelit.
Risitë kryesore:
- Nënsistemi i diskut, I/O dhe sistemet e skedarëve
- ĂshtĂ« zbatuar aftĂ«sia pĂ«r tĂ« hartuar ID-tĂ« e pĂ«rdoruesve pĂ«r sistemet e skedarĂ«ve tĂ« montuar (mund tĂ« hartoni skedarĂ«t e njĂ« pĂ«rdoruesi nĂ« njĂ« ndarje tĂ« huaj tĂ« montuar me njĂ« pĂ«rdorues tjetĂ«r nĂ« sistemin aktual). Hartimi mbĂ«shtetet pĂ«r sistemet e skedarĂ«ve FAT, ext4 dhe XFS. Funksionaliteti i propozuar bĂ«n tĂ« mundur thjeshtimin e ndarjes sĂ« skedarĂ«ve midis pĂ«rdoruesve tĂ« ndryshĂ«m dhe nĂ« kompjuterĂ« tĂ« ndryshĂ«m, duke pĂ«rfshirĂ« hartĂ«n qĂ« do tĂ« pĂ«rdoret nĂ« mekanizmin portativ tĂ« direktoriumit nĂ« shtĂ«pi systemd-homed, duke i lejuar pĂ«rdoruesit tĂ« zhvendosin direktoritĂ« e tyre tĂ« shtĂ«pisĂ« nĂ« media tĂ« jashtme dhe t'i pĂ«rdorin ato nĂ« tĂ« ndryshme kompjuterĂ«, duke hartuar ID-tĂ« e pĂ«rdoruesve me tĂ« cilĂ«t nuk pĂ«rputhen. NjĂ« tjetĂ«r aplikacion i dobishĂ«m Ă«shtĂ« organizimi i ofrimit tĂ« aksesit tĂ« pĂ«rbashkĂ«t nĂ« skedarĂ« nga njĂ« host i jashtĂ«m, pa ndryshuar nĂ« fakt tĂ« dhĂ«nat pĂ«r pronarĂ«t e skedarĂ«ve nĂ« sistemin e skedarĂ«ve.
- Arnimet LOOKUP_CACHED janë miratuar në kernel, duke lejuar operacionet për të përcaktuar një shteg skedari nga hapësira e përdoruesit pa bllokim, vetëm bazuar në të dhënat e disponueshme në cache. Modaliteti LOOKUP_CACHED aktivizohet në thirrjen openat2() duke kaluar flamurin RESOLVE_CACHED, në të cilin të dhënat shërbehen vetëm nga cache, dhe nëse përcaktimi i rrugës kërkon qasje në diskun, kthehet gabimi EAGAIN.
- Sistemi i skedarëve Btrfs ka shtuar mbështetjen fillestare për pajisjet e bllokut të zonuar (pajisjet në disqe të fortë magnetikë ose NVMe SSD, hapësira e ruajtjes në të cilën është e ndarë në zona që përbëjnë grupe blloqesh ose sektorësh, në të cilat lejohet vetëm shtimi vijues i të dhënave, përditësimi i të gjithë grupit të blloqeve). Në modalitetin vetëm për lexim, zbatohet mbështetja për blloqe me meta të dhëna dhe të dhëna më të vogla se një faqe (nënfaqe).
- Në sistemin e skedarëve F2FS, është shtuar aftësia për të zgjedhur algoritmin dhe nivelin e kompresimit. Mbështetje e shtuar për kompresim të nivelit të lartë për algoritmin LZ4. Zbatoi opsionin e montimit checkpoint_merge.
- Një komandë e re ioctl FS_IOC_READ_VERITY_METADATA është zbatuar për të lexuar meta të dhënat nga skedarët e mbrojtur me fs-verity.
- Klienti NFS zbaton njĂ« modalitet shkrimi âeagerâ (shkruan=eager), kur aktivizohet, operacionet e shkrimit nĂ« njĂ« skedar transferohen menjĂ«herĂ« nĂ« server, duke anashkaluar cache-in e faqeve. Kjo mĂ«nyrĂ« ju lejon tĂ« zvogĂ«loni konsumin e kujtesĂ«s, siguron marrjen e menjĂ«hershme tĂ« informacionit nĂ« lidhje me fundin e hapĂ«sirĂ«s sĂ« lirĂ« nĂ« sistemin e skedarĂ«ve dhe nĂ« disa situata bĂ«n tĂ« mundur arritjen e performancĂ«s sĂ« rritur.
- Opsionet e reja të montimit janë shtuar në CIFS (SMB): acregmax për të kontrolluar memorien e skedarëve dhe acdirmax për të kontrolluar ruajtjen e meta të dhënave të drejtorisë.
- Në XFS, modaliteti i kontrollit të kuotave me shumë fije është aktivizuar, ekzekutimi i fsync është përshpejtuar dhe kodi growfs është përgatitur për të zbatuar funksionin e zvogëlimit të madhësisë së sistemit të skedarëve.
- Shërbimet e kujtesës dhe sistemit
- ĂshtĂ« shtuar nĂ«nsistemi DTMP (Dynamic Thermal Power Management), i cili ju lejon tĂ« rregulloni nĂ« mĂ«nyrĂ« dinamike konsumin e energjisĂ« sĂ« pajisjeve tĂ« ndryshme bazuar nĂ« kufijtĂ« e vendosur tĂ« temperaturĂ«s sĂ« pĂ«rgjithshme.
- ĂshtĂ« zbatuar aftĂ«sia pĂ«r tĂ« ndĂ«rtuar kernel duke pĂ«rdorur pĂ«rpiluesin Clang me pĂ«rfshirjen e optimizimeve nĂ« fazĂ«n e lidhjes (LTO, Link Time Optimization). Optimizimet LTO ndryshojnĂ« duke marrĂ« parasysh gjendjen e tĂ« gjithĂ« skedarĂ«ve tĂ« pĂ«rfshirĂ« nĂ« procesin e ndĂ«rtimit, ndĂ«rsa mĂ«nyrat tradicionale tĂ« optimizimit optimizojnĂ« secilin skedar veç e veç dhe nuk marrin parasysh kushtet pĂ«r thirrjen e funksioneve tĂ« pĂ«rcaktuara nĂ« skedarĂ« tĂ« tjerĂ«. PĂ«r shembull, me LTO, vendosja nĂ« linjĂ« Ă«shtĂ« e mundur pĂ«r funksione nga skedarĂ« tĂ« tjerĂ«, kodi i papĂ«rdorur nuk pĂ«rfshihet nĂ« skedarin e ekzekutueshĂ«m, kontrolli i llojit dhe optimizimi i pĂ«rgjithshĂ«m kryhen nĂ« nivelin e projektit nĂ« tĂ«rĂ«si. MbĂ«shtetja LTO aktualisht Ă«shtĂ« e kufizuar nĂ« arkitekturat x86 dhe ARM64.
- Mundësia për të zgjedhur modalitetet e parapërgatitjes (PREEMPT) tani është e disponueshme në planifikuesin e detyrave në kohën e nisjes (preempt=none/volunteer/full) ose gjatë ekzekutimit nëpërmjet debugfs (/debug/sched_debug), nëse cilësimi PREEMPT_DYNAMIC ishte specifikuar gjatë kompilimit të bërthamës. Më parë, modaliteti i parapërgatitjes mund të specifikohej vetëm në nivelin e parametrave të ndërtimit. Ky ndryshim lejon shpërndarjet të dërgojnë bërthama me PREEMPT të aktivizuar, gjë që siguron vonesë minimale për desktopët me koston e një rënieje të lehtë të rendimentit, dhe, nëse është e nevojshme, të kthehen në PREEMPT_VOLUNTARY (një modalitet i ndërmjetëm për desktopët) ose PREEMPT_NONE (i cili siguron rendiment maksimal për serverat).
- Mbështetja për operacionet atomike BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG dhe BPF_CMPXCHG është shtuar në nënsistemin BPF.
- Programeve BPF u jepet aftësia për të aksesuar të dhënat në pirg duke përdorur tregues me zhvendosje të ndryshueshme. Për shembull, nëse më parë mund të përdornit vetëm një indeks elementi konstant për të hyrë në një grup në pirg, tani mund të përdorni një indeks që ndryshon. Kontrolli i aksesit vetëm brenda kufijve ekzistues kryhet nga verifikuesi BPF. Ky funksion është i disponueshëm vetëm për programet e privilegjuara për shkak të shqetësimeve në lidhje me shfrytëzimin e dobësive spekulative të ekzekutimit të kodit.
- U shtua aftësia për të bashkangjitur programet BPF në pika gjurmësh të zhveshura që nuk janë të lidhura me ngjarje gjurmësh të dukshme në hapësirën e përdoruesit (ruajtja e ABI nuk është e garantuar për pika të tilla gjurmë).
- ĂshtĂ« implementuar mbĂ«shtetja pĂ«r autobusin CXL 2.0 (Compute Express Link), i cili pĂ«rdoret pĂ«r tĂ« organizuar ndĂ«rveprimin me shpejtĂ«si tĂ« lartĂ« midis CPU-sĂ« dhe pajisjeve tĂ« memories (ju lejon tĂ« pĂ«rdorni pajisje tĂ« memories sĂ« jashtme si pjesĂ« e RAM-it ose kujtesĂ«s sĂ« pĂ«rhershme, sikur kjo memorie u lidhĂ«n pĂ«rmes njĂ« kontrolluesi standard tĂ« memories nĂ« CPU).
- U shtua drajveri nvmem për marrjen e të dhënave nga zonat e memories të rezervuara nga firmware-i që nuk janë të arritshme drejtpërdrejti. Linux (për shembull, memoria EEPROM që është fizikisht e arritshme vetëm për firmware-in, ose të dhënat që janë të arritshme vetëm në një fazë të hershme të nisjes).
- Mbështetja për sistemin e profilizimit "oprofile" është hequr, i cili nuk ishte përdorur gjerësisht dhe është zëvendësuar nga mekanizmi më modern perf.
- Ndërfaqja asinkrone I/O io_uring ofron integrim me cgroups që kontrollojnë përdorimin e kujtesës.
- Arkitektura RISC-V mbështet sistemet NUMA, si dhe mekanizmat ksondë dhe mekanizma të larjes.
- U shtua aftësia për të përdorur thirrjen e sistemit kcmp() pavarësisht nga funksionaliteti i fotografive të gjendjes së procesit (pikë kontrolli/rivendosje).
- Makrot EXPORT_UNUSED_SYMBOL() dhe EXPORT_SYMBOL_GPL_FUTURE(), të cilat nuk janë përdorur në praktikë për shumë vite, janë hequr.
- Virtualizimi dhe Siguria
- U shtua mekanizmi mbrojtës KFence (Kernel Electric Fence), i cili kap gabime kur punoni me memorie, si tejkalimet e buferit dhe aksesi pas çlirimit të memories. Ndryshe nga mekanizmi i korrigjimit KASAN, nënsistemi KFence karakterizohet nga shpejtësia e lartë e funksionimit dhe shpenzimet e ulëta, gjë që ju lejon të kapni gabimet e kujtesës që shfaqen vetëm në sistemet e punës ose gjatë funksionimit afatgjatë.
- Shtohet mbështetje për hipervizorin ACRN, i shkruar duke pasur parasysh gatishmërinë në kohë reale dhe përshtatshmërinë kritike për misionin. ACRN ofron mbingarkesë minimale, garanton vonesë të ulët dhe reagim të përshtatshëm gjatë bashkëveprimit me harduerin. Ai mbështet virtualizimin e burimeve të CPU-së, hyrjeve/daljeve, rrjetit, grafikës dhe zërit. ACRN mund të përdoret për të ekzekutuar instanca të shumta të izoluara. makina virtuale në njësitë e kontrollit elektronik, grupet e instrumenteve, sistemet e informacionit automobilistik, pajisjet IoT të konsumatorit dhe teknologji të tjera të integruara. ACRN mbështet dy lloje sistemesh mysafirësh: VM-të e Shërbimit të privilegjuar, të cilat përdoren për të menaxhuar burimet e sistemit (CPU, memorie, I/O, etj.), dhe VM-të e përdoruesit, të cilat mund të ekzekutohen Linux-shpërndarjet, Android О Windows.
- Nënsistemi IMA (Arkitektura e Matjes së Integritetit), i cili mirëmban një bazë të dhënash hash për të kontrolluar integritetin e skedarëve dhe meta të dhënave të shoqëruara, tani ka aftësinë të kontrollojë integritetin e vetë të dhënave të kernelit, për shembull, për të ndjekur ndryshimet në rregullat e SE.Linux.
- Aftësia për të përgjuar hiperthirrjet Xen dhe për t'i përcjellë ato te emulatori që funksionon në hapësirën e përdoruesit është shtuar në hipervizorin KVM.
- U shtua aftësia për t'u përdorur Linux si mjedisi rrënjësor për hipervizorin Hyper-V. Mjedisi rrënjësor ka qasje të drejtpërdrejtë në harduer dhe përdoret për të nisur sisteme mysafirësh (ngjashëm me Dom0 në Xen). Deri më tani, Hyper-V (Microsoft Hypervisor) mbështetej Linux vetëm në mjediset e mysafirëve, por vetë hipervizori kontrollohej nga mjedisi pritës Windows.
- Mbështetje e shtuar për enkriptimin inline për kartat eMMC, duke ju lejuar të përdorni mekanizma enkriptimi të integruara në kontrolluesin e diskut që enkriptojnë dhe deshifrojnë në mënyrë transparente hyrjen/daljen.
- Nga nënsistem kripto. Algoritmi blake128 është përditësuar për të zbatuar blake256s.
- Nënsistemi i rrjetit
- U shtua aftësia për të zhvendosur mbajtësin e sondazheve NAPI për pajisjet e rrjetit në një fill të veçantë të kernelit, i cili lejon performancë të përmirësuar për disa lloje të ngarkesës së punës. Më parë, sondazhi kryhej në kontekstin e softirq dhe nuk mbulohej nga planifikuesi i detyrave, gjë që e bënte të vështirë kryerjen e optimizimeve të imta për të arritur performancën maksimale. Ekzekutimi në një thread të veçantë të kernelit lejon që mbajtësi i sondazhit të vëzhgohet nga hapësira e përdoruesit, të bashkohet me bërthamat individuale të CPU-së dhe të merret parasysh kur planifikohet ndërrimi i detyrave. Për të aktivizuar modalitetin e ri në sysfs, propozohet parametri /sys/class/net//threaded.
- Integrimi në thelbin e MPTCP (MultiPath TCP), një zgjerim i protokollit TCP për organizimin e funksionimit të një lidhjeje TCP me dërgimin e paketave njëkohësisht përgjatë disa rrugëve përmes ndërfaqeve të ndryshme të rrjetit të lidhura me adresa IP të ndryshme. Publikimi i ri shton mundësinë për t'u caktuar prioritet temave të caktuara, gjë që lejon, për shembull, të organizojë punën e temave rezervë që ndizen vetëm nëse ka probleme me fillin kryesor.
- IGMPv3 shton mbështetje për mekanizmin EHT (Explicit Host Tracking).
- Motori i filtrimit të paketave të Netfilter ofron mundësinë për të zotëruar tabela të caktuara për të fituar kontroll ekskluziv (për shembull, një proces i murit të zjarrit në sfond mund të marrë pronësinë e tabelave të caktuara, duke parandaluar që dikush tjetër të ndërhyjë me to).
- ĐĐ±ĐŸŃŃĐŽĐŸĐČĐ°ĐœĐžĐ”
- Ne pastruam platformat e vjetëruara dhe të pamirëmbajtura ARM. Kodi për platformat efm32, picoxcell, prima2, tango, u300, zx dhe c6x, si dhe drejtuesit e tyre të lidhur janë hequr.
- Drejtuesi amdgpu ofron mundësinë për të mbingarkuar kartat (OverDrive) bazuar në GPU Sienna Cichlid (Navi 22, Radeon RX 6xxx). Mbështetje e shtuar për formatin piksel FP16 për DCE (motori i kontrolluesit të ekranit) nga gjenerata e 8-të në 11-të. Për GPU Navy Flounder (Navi 21) dhe APU Van Gogh, është zbatuar aftësia për të rivendosur GPU-në.
- Drejtuesi i915 pĂ«r kartat grafike Intel zbaton parametrin i915.mitigations pĂ«r tĂ« çaktivizuar mekanizmat e izolimit dhe mbrojtjes nĂ« favor tĂ« performancĂ«s sĂ« pĂ«rmirĂ«suar. PĂ«r çipat qĂ« fillojnĂ« nga Tiger Lake, pĂ«rfshihet mbĂ«shtetja pĂ«r mekanizmin VRR (Rifresko me shpejtĂ«si tĂ« ndryshueshme), i cili ju lejon tĂ« ndryshoni nĂ« mĂ«nyrĂ« adaptive shkallĂ«n e rifreskimit tĂ« monitorit pĂ«r tĂ« siguruar butĂ«si dhe pa boshllĂ«qe gjatĂ« lojĂ«rave. MbĂ«shtetja pĂ«r teknologjinĂ« Intel Clear Color Ă«shtĂ« pĂ«rfshirĂ« pĂ«r saktĂ«si tĂ« pĂ«rmirĂ«suar tĂ« ngjyrave. MbĂ«shtetje e shtuar pĂ«r DP-HDMI 2.1. ĂshtĂ« zbatuar aftĂ«sia pĂ«r tĂ« kontrolluar dritĂ«n e prapme tĂ« paneleve eDP. PĂ«r GPU-tĂ« Gen9 me mbĂ«shtetje LSPCON (Level Shifter and Protocol Converter), mbĂ«shtetja HDR Ă«shtĂ« e aktivizuar.
- Shoferi nouveau shton mbështetjen fillestare për GPU-të NVIDIA bazuar në arkitekturën GA100 (Ampere).
- Drejtuesi i msm shton mbështetje për GPU-të Adreno 508, 509 dhe 512 të përdorura në çipat SDM (Snapdragon) 630, 636 dhe 660.
- Mbështetje e shtuar për kartat e zërit Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s dhe Pioneer DJM-750. Mbështetje e shtuar për nënsistemin audio Intel Alder Lake PCH-P. Mbështetja për simulimin e softuerit të lidhjes dhe shkëputjes së një lidhësi audio është zbatuar për korrigjimin e kontrolluesve në hapësirën e përdoruesit.
- Shtoi mbështetje për konsolat e lojërave Nintendo 64 të lëshuara nga viti 1996 deri në vitin 2003 (përpjekjet e mëparshme për t'u transferuar) Linux (Portimi i Nintendo 64 nuk u përfundua kurrë dhe u la në statusin Vaporware.) Motivimi për krijimin e një porti të ri për platformën e vjetër, e cila ka qenë jashtë prodhimit për gati njëzet vjet, thuhet të jetë dëshira për të stimuluar zhvillimin e emulatorëve dhe për të thjeshtuar portimimin e lojërave.
- Shofer i shtuar për kontrolluesin e lojës Sony PlayStation 5 DualSense.
- Mbështetje e shtuar për bordet, pajisjet dhe platformat ARM: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MXnoP Nano,
- Mbështetje e shtuar për telefonat inteligjentë Purism Librem5 Evergreen, Xperia Z3+/Z4/Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, Samsung GT-I9070.
- U shtua drejtuesi bcm-vk për bordet e përshpejtuesit Broadcom VK (për shembull, bordet Valkyrie dhe Viper PCIe), të cilat mund të përdoren për të shkarkuar operacionet e përpunimit audio, video dhe imazhi, si dhe operacione të lidhura me enkriptimin, në një pajisje të veçantë.
- Mbështetje e shtuar për platformën Lenovo IdeaPad me aftësinë për të kontrolluar karikimin e vazhdueshëm dhe ndriçimin e tastierës. Gjithashtu ofrohet mbështetje për profilin ACPI të platformës ThinkPad me aftësinë për të kontrolluar mënyrat e konsumit të energjisë. Shtuar shofer për nënsistemin Lenovo ThinkPad X1 Tablet Gen 2 HID.
- U shtua drejtuesi ov5647 me mbështetje për modulin e kamerës për Raspberry Pi.
- MbĂ«shtetje e shtuar pĂ«r bordet RISC-V SoC FU740 dhe HiFive Unleashed. ĂshtĂ« shtuar gjithashtu njĂ« drejtues i ri pĂ«r çipin Kendryte K210.
Burimi: opennet.ru
