Pas dy muaj zhvillimi, Linus Torvalds prezantoi lëshimin e bërthamës Linux 6.1. Disa nga ndryshimet më të dukshme janë: mbështetje për zhvillimin e drejtorive dhe moduleve në gjuhën Rust, modernizimi i mekanizmit për përcaktimin e faqeve të kujtesës të përdorura, një menaxher i veçantë i kujtesës për programet BPF, një sistem diagnostikimi për problemet me kujtesën KMSAN, mekanizmi i mbrojtjes KCFI (Kernel Control-Flow Integrity), implementimi i strukturës Maple tree.
Në versionin e ri janë pranuar 15115 korrigjime nga 2139 zhvillues, madhësia e patch-it është 51 MB, që është rreth 2 herë më e vogël se madhësia e patch-ëve nga bërthamës 6.0 dhe 5.19. Ndryshimet prekin 13165 skedare, janë shtuar 716247 rreshta kodi, janë fshirë 304560 rreshta. Rreth 45% e të gjitha ndryshimeve të paraqitura në 6.1 lidhen me drejtuesit e pajisjeve, rreth 14% e ndryshimeve kanë të bëjnë me përditësimin e kodit të veçantë për arkitekturat harduerike, 14% lidhen me pilin rrjetë, 3% - me sistemet e skedarëve dhe 3% me nën-sistemet e brendshme të bërthamës.
Novitetet kryesore në bërthamën 6.1:
- Memorie dhe shërbime sistemike
- Shtuar mundësia e përdorimit të gjuhës Rust si gjuhë e dytë për zhvillimin e drejtuesve dhe moduleve të bërthamës. Motivi kryesor për mbështetje Rust është thjeshtimi i shkruajtjes së drejtuesve të pajisjeve të sigurta dhe cilësore duke zvogëluar probabilitetin e gabimeve gjatë punës me kujtesën. Mbështetja e Rust-it nuk është e aktivizuar si parazgjedhje dhe nuk e bën Rustin pjesë të varësive të detyrueshme të ndërtimit për bërthamën. Deri tani, në bërthamë është pranuar një version minimal i shkurtuar i patch-ëve, i cili është zvogëluar nga 40 në 13 mijë rreshta kodi dhe siguron vetëm minimumin e nevojshëm, mjaftueshëm për ndërtimin e një moduli të thjeshtë të bërthamës të shkruar në gjuhën Rust. Në të ardhmen, planifikohet gradualisht të rritet funksionaliteti ekzistues, duke transferuar dhe ndryshime të tjera nga dega Rust-for-Linux. Paralelisht, po zhvillohen projekte për përdorimin e infrastrukturës së propozuar për zhvillimin në gjuhën Rust të drejtuesve të pajisjeve NVMe, protokollit rrjet 9p dhe GPU Apple M1.
- PĂ«r sistemet e bazuara nĂ« arkitekturĂ«n AArch64, RISC-V dhe LoongArch me EFI, Ă«shtĂ« realizuar mundĂ«sia e ngarkimit tĂ« drejtpĂ«rdrejtĂ« tĂ« imazheve tĂ« kompresuara tĂ« bĂ«rthamĂ«s. JanĂ« shtuar handler-a pĂ«r ngarkimin, nisjen dhe shkarkimin e imazheve tĂ« bĂ«rthamĂ«s, tĂ« cilat thirren drejtpĂ«rdrejt nga EFI zboot. Gjithashtu janĂ« shtuar handler-a pĂ«r instalimin dhe heqjen e protokolleve nga databaza e protokolleve EFI. MĂ« parĂ«, shpĂ«rbĂ«rja bĂ«hej nga njĂ« ngarkues i veçantĂ«, ndĂ«rsa tani mund ta bĂ«jĂ« handler-i brenda vetĂ« bĂ«rthamĂ«s â imazhi i bĂ«rthamĂ«s formohet nĂ« formĂ«n e njĂ« aplikacioni EFI.
- Në përbërje është pranuar një pjesë e patches me realizimin e modelit shumë-nivelësh të menaxhimit të memories, i cili lejon ndarjen e bankave të memories me karakteristika të ndryshme performancës. Për shembull, faqet që përdoren më intensively mund të vendosen në memorjen më të shpejtë, ndërsa faqet e përdorura rrallë mund të ruhen në memorjen relativisht më të ngadaltë. Në bërthamën 6.1 është pranuar një mekanizëm për përcaktimin e vendndodhjes së faqeve të përdorura intensively në memorjen e ngadaltë për t'i promovuar ato në memorjen e shpejtë, si dhe është realizuar një koncept i përgjithshëm i niveleve të memories dhe performancës së tyre relative.
- Në përbërje është përfshirë mekanizmi MGLRU (Multi-Generational LRU), i cili ka zëvendësuar implementimin e vjetër të LRU (Më pak së fundit të përdorura) bazuar në dy radhë me një strukturë me shumë nivele, që përcakton më mirë se cilat faqe të memories janë të vërtetë në përdorim dhe cilat mund të zgjidhen për në hapësirën e këmbimit.
- Shtuar mbështetje për strukturën e dhënash «maple tree» të propozuar nga inxhinierët e Oracle, e cila pozicionohet si një zëvendësim më efikas për strukturën «red-black tree». Maple tree është një variant B-tree, që mbështet indeksimin sipas intervaleve të vlerave dhe është projektuar për përdorim efikas të caches. proceseve moderneDisa sisteme të menaxhimit të memories tashmë janë përkthyer në maple tree, gjë që ka pasur një ndikim pozitiv në performancën e tyre. Në të ardhmen, maple tree mund të përdoret për të realizuar bllokime sipas intervaleve (range locking).
- Në nën-sistemin BPF është shtuar mundësia për krijimin e programeve "distruktive" BPF, të projektuara posaçërisht për të inicuar mbylljen emergjente përmes thirrjes crash_kexec(). Programe të tilla BPF mund të jenë të nevojshme për qëllime debuggimi për të iniciuar krijimin e një dump-i të crash në një moment të caktuar të kohës. Për aksesin në operacionet destruktive gjatë ngarkimit të programit BPF, kërkohet tregimi i flamurit BPF_F_DESTRUCTIVE, aktivizimi i sysctl kernel.destructive_bpf_enabled dhe ekzistenca e të drejtave CAP_SYS_BOOT.
- PĂ«r programet BPF Ă«shtĂ« ofruar mundĂ«sia pĂ«r tĂ« kaluar nĂ«pĂ«r elementĂ«t cgroup si dhe pĂ«r tĂ« kaluar nĂ«pĂ«r burimet (skedarĂ«t, vma, proceset etj.) tĂ« njĂ« thread-i ose detyre tĂ« caktuar. ĂshtĂ« realizuar njĂ« tip i ri map pĂ«r krijimin e bufereve tĂ« pĂ«rziera (user ring buffer).
- ĂshtĂ« shtuar njĂ« thirrje speciale pĂ«r alokimin e memories nĂ« programet BPF (memory allocator), e cila siguron njĂ« shpĂ«rndarje mĂ« tĂ« sigurt tĂ« memories nĂ« kontekstin BPF, sesa kmalloc zakonor.
- ĂshtĂ« integruar pjesa e parĂ« e ndryshimeve qĂ« mundĂ«sojnĂ« krijimin e drejtuesve pĂ«r pajisjet e input-it me ndĂ«rfaqen HID (Human Interface Device), tĂ« realizuara nĂ« formĂ«n e programeve BPF.
- Kodi për mbështetje të formatit të skedave ekzekutive a.out është hequr plotësisht nga bërthama, i cili u klasifikua si i vjetruar në versionin 5.1, dhe duke filluar nga versionet 5.18 dhe 5.19 është çaktivizuar për arkitekturën kryesore. Formati a.out prej kohësh nuk përdoret në sistemet me Linux, dhe gjenerimi i skedave a.out nuk mbështetet nga mjetet moderne të zhvillimit në konfigurimet për Linux nga parazgjedhja. Ngarkuesi për skedat a.out mund të realizohet plotësisht në hapësirën e përdoruesit.
- Për sistemet që bazohen në arkitekturën e setit të instrukcioneve LoongArch, e përdorur në procesorët Loongson 3 5000 dhe që implementon një ISA të re RISC, të ngjashëm me MIPS dhe RISC-V, është realizuar mbështetje për ngjarjet e matjes së performancës (perf event), kexec, kdump dhe JIT-kompilimin BPF.
- Në ndërfaqen e input-it/asynchronous output io_uring është propozuar një mod i ri IORING_SETUP_DEFER_TASKRUN, i cili lejon shtyrjen e përkohshme të ekzekutimit të punëve të lidhura me buffer-in e përzier deri në momentin kur të merret një kërkesë nga aplikacioni, që mund të përdoret për organizimin e ekzekutimit të punëve në modin paket dhe për të parandaluar problemet me vonesat për shkak të zëvendësimit të aplikacionit në një moment të papërshtatshëm.
- Proceseve në hapësirën e përdoruesit u është dhënë mundësia për të filluar transformimin e gamës së faqeve të zakonshme të memories në një grup faqesh të mëdha të memories (Transparent Huge-Pages).
- ĂshtĂ« shtuar implementimi i pajisjes /dev/userfaultfd, e cila lejon organizimin e aksesit nĂ« funksionalitetin e thirrjes sistemore userfaultfd() duke pĂ«rdorur tĂ« drejtat e aksesit nĂ« FS. Funksionaliteti i userfaultfd lejon krijimin e trajtuesve pĂ«r ndodhitĂ« e faqeve tĂ« pakohshme (page faults) nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit.
- KĂ«rkesat pĂ«r versionin e utilitarit GNU Make janĂ« rritur â pĂ«r ndĂ«rtimin e bĂ«rthamĂ«s tani kĂ«rkohet tĂ« paktĂ«n versioni 3.82.
- Sistemi i disqeve, hyrja/ dalje dhe sistemet e skedarëve
- NĂ« sistemin e skedarĂ«ve Btrfs janĂ« bĂ«rĂ« optimizime tĂ« konsiderueshme tĂ« performancĂ«s, pĂ«rfshirĂ« rritjen e rendit tĂ« performancĂ«s sĂ« thirrjes ioctl FIEMAP. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r shkrimin e tamponizuar asinkron pĂ«r aplikacionet qĂ« pĂ«rdorin io_uring. NĂ« operacionin 'send' Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r skedarĂ«t e mbrojtur me fs-verity.
- Në sistemin e skedarëve ext4 janë shtuar optimizime të performancës, të lidhura me mbajtjen e jurnalit dhe punën në modalitetin vetëm për lexim.
- Në sistemin e skedarëve EROFS (Enhanced Read-Only File System), i destinuar për t'u përdorur në pjesë të aksesueshme vetëm për lexim, është realizuar mundësia e ruajtjes së përbashkët të të dhënave që duplicohen në sisteme të ndryshme skedarësh.
- Në thirrjen sistemore statx() është shtuar mundësia e shpërndarjes së informacionit mbi mundësinë e aplikimit të hyrjes së drejtpërdrejtë/apo daljes për një skedar.
- Në nënstrukturën FUSE (Filesystems in User Space) është shtuar mbështetje për krijimin e skedarëve të përkohshëm me flamurin O_TMPFILE.
- Virtualizimi dhe siguria
- Këtu është zëvendësuar implementimi i mekanizmit të mbrojtjes CFI (Control Flow Integrity), duke shtuar një verifikim përpara çdo thirrjeje indirekte të funksionit për të identifikuar disa forma të sjelljes së pashpjeguar, të cilat potencialisht mund të çojnë në shkelje të rendit normal të ekzekutimit (control flow) si rezultat i shfrytëzimeve që ndryshojnë treguesit e funksionit të ruajtur në memorie. Implementimi standard i CFI nga projekti LLVM është zëvendësuar me një variant, gjithashtu të bazuar në përdorimin e Clang, por posaçërisht i adaptuar për të mbrojtur nën-sistemet e ulëta dhe kernelët e sistemeve operative. Në LLVM, implementimi i ri do të ofrohet në versionin Clang 16 dhe do të përfshihet me opsionin "-fsanitize=kcfi". Dallimi kryesor i implementimit të ri është se ai nuk është i lidhur me optimizimet në fazën e lidhjes (LTO) dhe nuk çon në zëvendësimin e treguesve të funksioneve me referenca në tabelën e kalimeve.
- Për modulat LSM (Linux Security Module) është ofruar mundësia për krijimin e trajtesave që kapin operacionet për krijimin e hapësirave të emrave.
- Janë ofruar mjete për verifikimin e nënshkrimeve digjitale PKCS#7 në programet BPF.
- Në /dev/random është rikthyer mundësia e hapjes në modalitetin jo-bllokues (O_NONBLOCK), e cila u eliminua nga neglizhenca në kernelin 5.6.
- Në sistemet me arkitekturë x86 është shtuar një paralajmërim në rastin e mapimit të faqeve të memories nga nën-sistemet e kernelit, duke lejuar njëkohësisht ekzekutimin dhe shkruarjen. Në të ardhmen po shqyrtohet mundësia e ndalimit të plotë të tillë mapimi të memories.
- ĂshtĂ« shtuar njĂ« mekanizĂ«m pĂ«r debugging KMSAN (Kernel Memory Sanitizer) pĂ«r identifikimin e pĂ«rdorimit tĂ« memories sĂ« pa inicializuar nĂ« kernel, si dhe rrjedhjeve tĂ« memories sĂ« pa inicializuar midis hapĂ«sirĂ«s sĂ« pĂ«rdoruesit dhe pajisjeve.
- Janë bërë përmirësime në gjeneratorin e numrave të rastit CRNG, i cili përdoret në thirrjen getrandom. Ndryshimet janë përgatitur nga Jason Donenfeld, autori i WireGuard dhe janë të synuara për të rritur sigurinë në nxjerrjen e numrave të rastit të plotë. VPN Në TCP-stack është implementuar mundësia (e çaktivizuar si parazgjedhje) për përdorimin e ndarë të tabelave të hash-it për çdo hapësirë emri, gjë që lejon rritjen e performancës së sistemeve me numër të madh hapësirash emri.
- Sistemi rrjetor
- Në TCP-stack është implementuar mundësia (e çaktivizuar si parazgjedhje) për përdorimin e ndarë të tabelave të hash-it për çdo hapësirë emri, gjë që lejon rritjen e performancës së sistemeve me numër të madh hapësirash emri.
- Kodet për mbështetje të protokollit të vjetëruar DECnet është hequr. Për hapësirën e përdoruesit janë lënë shkurtore API që lejojnë të kompilohen aplikacione që përdorin DECnet, por këto aplikacione nuk do të jenë në gjendje të lidhen me rrjetin.
- Protokolli netlink është dokumentuar.
- Pajisje
- NĂ« driverin amdgpu Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r kalimin e DSC (Display Stream Compression) pĂ«r tĂ« kompresuar tĂ« dhĂ«nat pa humbje gjatĂ« shkĂ«mbimit tĂ« informacionit me ekranet qĂ« mbĂ«shtesin rezolucione shumĂ« tĂ« larta. Puna pĂ«r mbĂ«shtetje tĂ« platformave AMD RDNA3 (RX 7000) dhe CDNA (Instinct) Ă«shtĂ« vazhduar. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r komponentĂ«t IP DCN 3.2, SMU 13.x, NBIO 7.7, GC 11.x, PSP 13.x, SDMA 6.x dhe GMC 11.x. NĂ« driverin amdkfd (pĂ«r GPU tĂ« veçantĂ« AMD, siç Ă«shtĂ« Polaris) Ă«shtĂ« implementuar mbĂ«shtetje pĂ«r GFX 11.0.3.
- Në driverin i915 (Intel) është aktivizuar mbështetje për GPU Meteor Lake. Për Meteor Lake dhe GPU më të reja është siguruar mbështetje për ndërfaqen DP 2.0 (DisplayPort). Janë shtuar identifikues për kartat grafike të bazuara në mikroarkitekturën Alder Lake S.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r sistemet audio tĂ« implementuara nĂ« procesorĂ«t Apple Silicon, Intel SkyLake dhe Intel KabyLake. NĂ« driverin audio CS35L41 HDA Ă«shtĂ« siguruar mbĂ«shtetje pĂ«r kalimin nĂ« gjendjen e pritjes. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r ASoC (ALSA System on Chip) pĂ«r çipat audio tĂ« integruar Apple Silicon, AMD Rembrandt DSPs, AMD Pink Sardine ACP 6.2, Everest ES8326, Intel Sky Lake dhe Kaby Lake, Mediatek MT8186, NXP i.MX8ULP DSPs, Qualcomm SC8280XP, SM8250, SM8450 dhe Texas Instruments SRC4392.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r panelet LCD Samsung LTL101AL01, B120XAN01.0, R140NWF5 RH, Densitron DMT028VGHMCMI-1A TFT, AUO B133UAN02.1, IVO M133NW4J-R3, Innolux N120ACA-EA1, AUO B116XAK01.6, BOE NT116WHM-N21, INX N116BCA-EA2, INX N116BCN-EA1, Multi-Inno Technology MI0800FT-9.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r kontrolluesit AHCI SATA tĂ« pĂ«rdorur nĂ« SoC Baikal-T1.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r çipat Bluetooth MediaTek MT7921, Intel Magnetor (CNVi, lidhje tĂ« integruar), Realtek RTL8852C, RTW8852AE dhe RTL8761BUV (Edimax BT-8500).
- Në driverin ath11k për modulat pa tel Qualcomm është shtuar mbështetje për skanimin spektral në gamën 160 MHz, është implementuar NAPI me shumërrjesh, është përmirësuar mbështetje për çipat Wi-Fi Qualcomm WCN6750.
- Janë shtuar driverët për tastierat e PinePhone, përpadhe InterTouch (ThinkPad P1 G3), X-Box Adaptive Controller, PhoenixRC Flight Controller, VRC-2 Car Controller, DualSense Edge Controller, panele kontrolli të IBM (IBM Operation Panel), telekomandat XBOX One Elite, tabletët XP-PEN Deco Pro S dhe Intuos Pro Small (PTH-460).
- ĂshtĂ« shtuar njĂ« driver pĂ«r pĂ«rshpejtuesit kriptografikĂ« Aspeed HACE (Hash and Crypto Engine).
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r kontrolluesit e integruar Thunderbolt/USB4 Intel Meteor Lake.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r smartphone-et Sony Xperia 1 IV, Samsung Galaxy E5, E7 dhe Grand Max, Pine64 Pinephone Pro.
- Shtimi i mbështetjes për ARM SoC dhe bordet: AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 dhe RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQ8062, IPQ8065, Kontron SL/BL i.MX8MM OSM-S, MT8195 (Acer Tomato), Radxa ROCK 4C+, NanoPi R4S Enterprise Edition, JetHome JetHub D1p. A janë përmirësuar drejtuesit për SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom dhe NXP.
NĂ« tĂ« njĂ«jtĂ«n kohĂ«, Fondi i LirisĂ« sĂ« Software-it nĂ« AmerikĂ«n Latine formoi variantin e plotĂ« tĂ« lirĂ« tĂ« bĂ«rthamĂ«s 6.1 - Linux-libre 6.1-gnu, tĂ« pastruar nga elemente tĂ« firmuerĂ«ve dhe drejtuesve qĂ« pĂ«rmbajnĂ« komponentĂ« a kod tĂ« pavlefshĂ«m, zona e aplikimit tĂ« tĂ« cilĂ«ve Ă«shtĂ« e kufizuar nga prodhuesi. NĂ« kĂ«tĂ« numĂ«r, Ă«shtĂ« bĂ«rĂ« pastrimi i drejtuesit tĂ« ri rtw8852b dhe skedarĂ«ve DTS pĂ«r SoC tĂ« ndryshĂ«m Qualcomm dhe MediaTek me procesorĂ«t e bazuar nĂ« arkitekturĂ«n AArch64. ĂshtĂ« pĂ«rmirĂ«suar kodi i pastrimit tĂ« blob-Ă«ve nĂ« drejtues dhe nĂ«n-sisteme amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI. ĂshtĂ« rregulluar pastrimi i drejtuesve tĂ« vjetruar tm6000 TV cards, cpia2 v4l, sp8870, av7110.
Burimi: opennet.ru
