Pas dy muajsh zhvillimi, Linus Torvalds publikoi kernelin Linux 6.1. Ndër ndryshimet më të dukshme janë: mbështetje për zhvillimin e shoferëve dhe moduleve në gjuhën Rust, përmirësimi i mekanizmit për përcaktimin e faqeve të kujtesës të përdorura, një menaxher special i kujtesës për programet BPF, një sistem diagnostikimi të problemeve me kujtesën KMSAN, mekanizmi i mbrojtjes KCFI (Kernel Control-Flow Integrity), dhe 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ë afërsisht 2 herë më e vogël se madhësitë e patches për kernelët 6.0 dhe 5.19. Ndryshimet prekin 13165 skedarë, janë shtuar 716247 rreshta kodi, dhe janë fshirë 304560 rreshta. Rreth 45% e të gjitha ndryshimeve të paraqitura në 6.1 lidhen me shoferët e pajisjeve, përafërsisht 14% e ndryshimeve kanë të bëjnë me përditësimin e kodit specifik për arkitekturën harduerike, 14% lidhen me pilarin rrjetësor, 3% me sistemet e skedarëve dhe 3% me nën-sistemat e brendshme të kernelit.
Novitetet kryesore në kernelin 6.1:
- Kujtesa dhe shërbimet sistemore
- ĂshtĂ« shtuar mundĂ«sia e pĂ«rdorimit tĂ« gjuhĂ«s Rust si njĂ« gjuhĂ« tĂ« dytĂ« pĂ«r zhvillimin e drejtuesve dhe moduleve tĂ« bĂ«rthamĂ«s. Motivi kryesor pĂ«r mbĂ«shtetje nĂ« Rust Ă«shtĂ« thjeshtimi i procesit tĂ« shkruajtjes sĂ« drejtuesve tĂ« sigurt dhe cilĂ«sorĂ« pĂ«rmes zvogĂ«limit tĂ« probabilitetit tĂ« gabimeve nĂ« punĂ«n me memorjen. MbĂ«shtetje nĂ« Rust nuk Ă«shtĂ« aktive me default dhe nuk e bĂ«n Rust njĂ« nga varĂ«sitĂ« e detyrueshme tĂ« ndĂ«rtimit pĂ«r bĂ«rthamĂ«n. NĂ« bĂ«rthamĂ« Ă«shtĂ« pranuar ende njĂ« version minimal i shkurtuar i patch-ave, i cili Ă«shtĂ« zvogĂ«luar nga 40,000 nĂ« 13,000 rreshta kodi dhe siguron vetĂ«m minimumin e nevojshĂ«m, tĂ« mjaftueshĂ«m pĂ«r ndĂ«rtimin e njĂ« moduli tĂ« thjeshtĂ« bĂ«rthamor, tĂ« shkruar nĂ« gjuhĂ«n Rust. NĂ« tĂ« ardhmen, planifikohet rritja e gradualshme e funksionalitetit ekzistues, duke transferuar edhe ndrystime tĂ« tjera nga dega Rust-for-Linux. Paralelisht, po zhvillohen projekte pĂ«r tĂ« pĂ«rdorur infrastrukturĂ«n e propozuar pĂ«r zhvillimin nĂ« gjuhĂ«n Rust tĂ« drejtuesve tĂ« diskĂ«ve NVMe, protokollit rrjetor 9p dhe GPU-sĂ« 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Ă« bĂ«rthamave tĂ« kompresuara. JanĂ« shtuar trajtues pĂ«r ngarkimin, nisjen dhe shkarkimin e imazheve tĂ« bĂ«rthamĂ«s, tĂ« thirrura drejtpĂ«rdrejt nga EFI zboot. Gjithashtu janĂ« shtuar trajtues pĂ«r instalimin dhe heqjen e protokollĂ«ve nga DB e protokollĂ«ve EFI. MĂ« parĂ«, shkarkimi realizohej nga njĂ« ngarkues i veçantĂ«, ndĂ«rsa tani mund tĂ« bĂ«het nga trajtuesi nĂ« vetĂ« bĂ«rthamĂ«n â imazhi i bĂ«rthamĂ«s formohet si njĂ« aplikacion EFI.
- Në përbërje janë pranuar disa patch-e me realizimin e një modeli shumë-nivëlësh të menaxhimit të memories, që lejon ndarjen e bankave të memories me karakteristika të ndryshme performancës. Për shembull, faqet më intensive që përdoren mund të vendosen në memoryn më të shpejtë, ndërsa faqet që përdoren rrallë mund të ruhen në memoryn relativisht të ngadalshëm. Në bërthamën 6.1 është pranuar një mekanizëm për përcaktimin e faqeve që përdoren intensivisht në memoryn e ngadalshme për t'i avancuar në memoryn e shpejtë, si dhe është realizuar një koncept i përgjithshëm i niveleve të memories dhe performancës së tyre relative.
- Në përmbajtje është përfshirë mekanizmi MGLRU (Multi-Generational LRU), i cili zëvendësoi implementimin e vjetër LRU (Least Recently Used) mbi dy radhë me një strukturë me shumë nivele, e cila përcakton më mirë se cilat faqe të memories përdoren aktualisht dhe cilat mund të zëvendësohen në sektorin e ndërprerjes.
- Shtuar mbështetje për strukturën e të dhënave «maple tree», e sugjeruar nga inxhinierët e Oracle, e cila pozicionohet si një zëvendësim më efikas për strukturën «red-black tree». Maple tree përfaqëson një variant B-tree, që mbështet indeksimin mbi intervalet e vlerave dhe është projektuar për përdorim efikas të caches. procesorëve modernë. Në maple tree janë transferuar disa nën-sisteme të menaxhimit të memories, gjë që ka reflektuar pozitivisht në performancën e tyre. Në të ardhmen, maple tree mund të përdoret për të realizuar bllokime mbi intervale (range locking).
- Në nëndegën BPF është shtuar mundësia për krijimin e programeve "shkatërruese" BPF, të dizajnuara posaçërisht për të iniciuar një mbyllje emergjente përmes thirrjes crash_kexec(). Programet e tilla BPF mund të kërkohen për qëllime debugimi për të iniciuar krijimin e një dump-i crash në një moment të caktuar. Për të aksesuar operacionet shkatërruese gjatë ngarkimit të programit BPF, kërkohet specifikimi i flamurit BPF_F_DESTRUCTIVE, aktivizimi i sysctl kernel.destructive_bpf_enabled dhe posedimi i të drejtave CAP_SYS_BOOT.
- PĂ«r programet BPF Ă«shtĂ« ofruar mundĂ«sia pĂ«r tĂ« cikluar elementet e cgroup, si dhe pĂ«r tĂ« cikluar burimet (skedaret, vma, proceset, etj.) e njĂ« pĂ«rmirĂ«suesi ose detyre tĂ« caktuar. ĂshtĂ« realizuar njĂ« lloj hartĂ« e re pĂ«r krijimin e tamponĂ«ve tĂ« unazave (user ring buffers) nga pĂ«rdoruesi.
- ĂshtĂ« shtuar njĂ« thirrje e veçantĂ« pĂ«r alokimin e memories nĂ« programet BPF (memory allocator), e cila siguron njĂ« shpĂ«rndarje mĂ« tĂ« sigurt tĂ« memories nĂ« kontekstin e BPF, sesa kmalloc() standard.
- ĂshtĂ« integruar pjesa e parĂ« e ndryshimeve qĂ« sigurojnĂ« mundĂ«sinĂ« e krijimit tĂ« drejtorive pĂ«r pajisjet e hyrjes me ndĂ«rfaqe HID (Pajisje pĂ«r NdĂ«rveprimin NjerĂ«zor), tĂ« realizuara nĂ« formĂ«n e programeve BPF.
- Nga bërthama është hequr plotësisht kodi për mbështetje të formatit të skedarëve ekzekutiv a.out, i cili u klasifikua si i vjetër në lëshimin 5.1, dhe duke filluar nga versionet 5.18 dhe 5.19 u dëgjua për arkitekturën kryesore. Formati a.out prej kohësh nuk përdoret në sistemet Linux, dhe gjenerimi i skedarëve a.out nuk mbështetet nga mjetet moderne në konfigurimet standarde për Linux. Ngarkuesi për skedarët a.out mund të realizohet plotësisht në hapësirën e përdoruesit.
- Për sistemet e bazuara në arkitekturën e setit të komandave LoongArch, e cila përdoret në procesorët Loongson 3 5000 dhe implementon një ISA të ri 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 hyrjes/daljes asinkrone io_uring është propozuar një mod i ri IORING_SETUP_DEFER_TASKRUN, i cili lejon të shtyhet përkohësisht ekzekutimi i punëve të lidhura me tamponin e unazës deri në momentin kur do të vijë kërkesa nga aplikacioni, gjë që mund të përdoret për organizimin e ekzekutimit të punimeve në mënyrë grupore dhe parandalimin e problemeve me vonesat për shkak të zëvendësimit të aplikacionit në një moment të papërshtatshëm.
- Proceseve në hapësirën përdoruese iu jep mundësia të nisin transformimin e një varg faqesh standard memorjeje në një grup faqesh të mëdha memorje (Transparent Huge-Pages).
- U shtua implementimi i pajisjes /dev/userfaultfd, e cila lejon organizimin e aksesit në funksionalitetin e thirrjes në sistem userfaultfd() duke përdorur të drejtat e qasjes në FS. Funksionaliteti userfaultfd lejon krijimin e menaxherëve për ftesat e faqeve të pamenduara (page faults) në hapësirën përdoruese.
- 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 diskut, hyrja/ dalje dhe sistemet e skedarëve
- NĂ« sistemin e skedave Btrfs janĂ« bĂ«rĂ« optimizime tĂ« rĂ«ndĂ«sishme pĂ«r performancĂ«n, 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. Operacionit 'send' i Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r skedarĂ«t e mbrojtur me fs-verity.
- Në FS ext4 janë shtuar optimizime performance që lidhen me mirëmbajtjen e regjistrit dhe punën në modin vetëm për lexim.
- Në sistemin e skedarëve EROFS (Enhanced Read-Only File System), i cili është menduar për t'u përdorur në partitë që janë të qasshme në modalitetin vetëm për lexim, është zbatuar mundësia e ruajtjes së përbashkët të të dhënave që kopjohen në sisteme të ndryshme të skedarëve.
- Në thirrjen sistemike statx() është shtuar mundësia për të siguruar informacion mbi mundësinë e aplikimit të hyrjes/daljes direkte për një skedare.
- Në nën-sistemin FUSE (Filesystems in User Space) është shtuar mbështetje për krijimin e skedarëve të përkohshëm me flagun O_TMPFILE.
- Virtualizimi dhe siguria
- Implementimi i mekanizmit të mbrojtjes CFI (Control Flow Integrity) është zëvendësuar, duke shtuar para çdo thirrjeje indirekte të funksionit një kontrollek për identifikimin e disa formave të sjelljes së pakufizuar që potencialisht mund të çojnë në shkeljen e rendit normal të ekzekutimit (control flow) si rezultat i shfrytëzimeve që ndryshojnë treguesit e funksioneve të ruajtur në memorje. Implementimi standard CFI nga projekti LLVM është zëvendësuar me një variant, gjithashtu të bazuar në përdorimin e Clang, por e adaptuar posaçërisht për të mbrojtur sistemet e ulëta dhe bërthamat e sistemeve operative. Në LLVM, implementimi i ri do të propozohët në lëshimin 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 modulët LSM (Linux Security Module) është ofruar mundësia për të krijuar trajtesa që do të përfshijnë operacionet për krijimin e hapësirave të emrave.
- Janë ofruar mjete për verifikimin e nënshkrimeve dixhitale PKCS#7 në programet BPF.
- Në /dev/random është rikthyer mundësia e hapjes në modalitetin jo bllokues (O_NONBLOCK), e cila është eliminuar për pakujdesi në bërthamën 5.6.
- Në sistemet me arkitekturë x86 është shtuar një paralajmërim në rastin e mapimit të faqeve të memories nga nënësitë e bërthamës, të cilat lejojnë njëkohësisht ekzekutimin dhe shkruan. Në të ardhmen po shqyrtohet mundësia për të ndaluar plotësisht një mapim të tillë të memories.
- ĂshtĂ« shtuar njĂ« mekanizĂ«m debugimi KMSAN (Kernel Memory Sanitizer) pĂ«r tĂ« identifikuar pĂ«rdorimin e memories sĂ« pa inicializuar nĂ« bĂ«rthamĂ«, si dhe rrjedhjet e memories sĂ« pa inicializuar midis hapĂ«sirĂ«s sĂ« pĂ«rdoruesit dhe pajisjeve.
- Janë bërë përmirësime në gjeneratorin e pseudoprasëjëve CRNG, i cili përdoret në thirrjen getrandom. Ndryshimet janë përgatitur nga Jason Donenfeld, autor i WireGuard, dhe janë të fokusuar për të rritur sigurinë e nxjerrjes së numrave të rastësishëm të plotë. VPN Në stek TCP është implementuar mundësia (e çaktivizuar siç është normale) e përdorimit të veçantë të tabelave të heshit të soketëve për çdo hapësirë emri, çka lejon përmirësimin e performancës së sistemeve me numër të madh hapësirash emri.
- Sistemi i rrjetit
- Janë bërë përmirësime në gjeneratorin e pseudoprasëjëve CRNG, i cili përdoret në thirrjen getrandom. Ndryshimet janë përgatitur nga Jason Donenfeld, autori i WireGuard dhe janë të fokusuar për të rritur sigurinë e nxjerrjes së numrave të rastësishëm të plotë.
- Kodi për mbështetje të protokollit të vjetër DECnet është hequr. Për hapësirën e përdoruesit, janë lënë API të dhëna që lejojnë kompilimin e aplikacioneve që përdorin DECnet, por këto aplikacione nuk do të mund të lidheshin me rrjetin.
- Dokumentimi i protokollit netlink.
- Pajisjet
- NĂ« drejtuesin amdgpu Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r kalimin e DSC (Display Stream Compression) pĂ«r kompresimin pa humbje tĂ« tĂ« dhĂ«nave gjatĂ« shkĂ«mbimit tĂ« informacionit me ekrane qĂ« mbĂ«shtesin njĂ« rezolutĂ« shumĂ« tĂ« madhe. 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Ă« drejtuesin amdkfd (pĂ«r GPU-nĂ« e dedikuar AMD, si Polaris) Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r GFX 11.0.3.
- Në drejtuesin i915 (Intel) është përfshirë mbështetje për GPU-në Meteor Lake. Për Meteor Lake dhe GPU-të 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.
- Shtuar mbështetje për sistemet e zërit të implementuara në procesorët Apple Silicon, Intel SkyLake dhe Intel KabyLake. Në drejtuesin e zërit CS35L41 HDA është siguruar mbështetje për kalimin në gjendjen e flejtjes. Shtuar mbështetje për ASoC (ALSA System on Chip) për çipat e zërit të integruar Apple Silicon, AMD Rembrant 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.
- 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.
- Shtuar mbështetje për kontrollerët AHCI SATA të përdorur në SoC Baikal-T1.
- Shtuar mbështetje për çipat Bluetooth MediaTek MT7921, Intel Magnetor (CNVi, Integrated Connectivity), Realtek RTL8852C, RTW8852AE dhe RTL8761BUV (Edimax BT-8500).
- Në drejtuesin ath11k për modulet e wireless Qualcomm është shtuar mbështetje për skanimin spektral në gamën 160 MHz, është realizuar NAPI me shumë thjeshtesi, është përmirësuar mbështetje për çipat Wi-Fi Qualcomm WCN6750.
- Shtuar drejtues për tastierën e PinePhone, për tastierat InterTouch (ThinkPad P1 G3), X-Box Adaptive Controller, PhoenixRC Flight Controller, VRC-2 Car Controller, DualSense Edge Controller, panele operimi IBM (IBM Operation Panel), kontrolluesit XBOX One Elite, tabletët XP-PEN Deco Pro S dhe Intuos Pro Small (PTH-460).
- Shtuar drejtues për akceleratorët kriptografikë Aspeed HACE (Hash and Crypto Engine).
- Shtuar suporti për kontrollorët e integruar Thunderbolt/USB4 Intel Meteor Lake.
- Shtuar suporti për smartfonët Sony Xperia 1 IV, Samsung Galaxy E5, E7 dhe Grand Max, Pine64 Pinephone Pro.
- Shtuar suporti për ARM SoC dhe tabela: 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. Drejtuesit për SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom dhe NXP janë përmirësuar.
NĂ« tĂ« njĂ«jtĂ«n kohĂ«, Fondi Latino-Amerikan i Softuerit tĂ« LirĂ« ka formuar njĂ« variant tĂ« plotĂ« tĂ« lirĂ« tĂ« bĂ«rthamĂ«s 6.1 â Linux-libre 6.1-gnu, i pastĂ«r nga elementet e firmware-it dhe drejtuesve qĂ« pĂ«rmbajnĂ« komponente ose kode tĂ« pavlefshme, pĂ«rdorimi i tĂ« cilave Ă«shtĂ« i kufizuar nga prodhuesi. NĂ« kĂ«tĂ« version Ă«shtĂ« kryer pastrimi i drejtuesit tĂ« ri rtw8852b dhe skedarĂ«ve DTS pĂ«r SoC tĂ« ndryshĂ«m Qualcomm dhe MediaTek me procesorĂ« bazuar nĂ« arkitekturĂ«n AArch64. Kodi i pastrimit tĂ« blob-eve nĂ« drejtuesit dhe nĂ«n-sistemet amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI Ă«shtĂ« pĂ«rmirĂ«suar. Pastrimi i drejtuesve tĂ« vjetĂ«r pĂ«r kartat televizive tm6000, cpia2 v4l, sp8870, av7110 Ă«shtĂ« rregulluar.
Burimi: opennet.ru
