Efter tvÄ mÄnaders utveckling presenterade Linus Torvalds lanseringen av Linux-kÀrnan 5.17. Bland de mest anmÀrkningsvÀrda Àndringarna finns: ett nytt system för prestandahantering av AMD-processorer, möjlighet till rekursiv mappning av anvÀndaridentifierare i filsystem, stöd för portabla BPF-program som kompilerats, övergÄng av den pseudo-slumptalsgeneratorn till algoritmen BLAKE2s, RTLA-verktyget för analys av körning i realtid, en ny backend fscache för caching av nÀtverks-FS, samt möjlighet att knyta namn till anonyma mmap-operationer.
Den nya versionen innehÄller 14203 korrigeringar frÄn 1995 utvecklare, patchstorleken Àr 37 MB (Àndringarna berörde 11366 filer, 506043 kodrader lades till, 250954 kodrader togs bort). Omkring 44% av alla förÀndringar i 5.17 Àr relaterade till enhetsdrivrutiner, cirka 16% av förÀndringarna handlar om uppdatering av kod specifik för hÄrdvaruarkitekturer, 15% Àr relaterade till nÀtverksstacken, 4% till filsystem och 4% till interna delsystem i kÀrnan.
Huvudnyheterna i kÀrnan 5.17:
- Disksubsystem, in- och utmatning och filsystem
- Möjlighet till inbÀddad mappning av anvÀndaridentifierare för monterade filsystem har implementerats, vilket anvÀnds för att mappa filer frÄn en viss anvÀndare pÄ ett monterat frÀmmande partition till en annan anvÀndare i det aktuella systemet. Den tillagda funktionen möjliggör rekursiv anvÀndning av mappning över filsystem som redan har mappning tillÀmpad.
- Fscache-delssystemet har skrivits om helt, vilket anvÀnds för att organisera caching av data i lokala filsystem överförda genom nÀtverksfilsystem. Den nya implementeringen kÀnnetecknas av en betydande förenkling av koden och ersÀttning av komplicerade schemalÀggnings- och spÄrningsoperationer av objektens tillstÄnd med enklare mekanismer. Stödet för den nya fscache finns i CIFS-filsystemet.
- I hÀndelsespÄrningssystemet för filsystemet fanotify har en ny hÀndelsetyp FAN_RENAME implementerats, som gör det möjligt att fÄnga namngivningen av filer eller kataloger direkt (tidigare tillÀmpades tvÄ separata hÀndelser FAN_MOVED_FROM och FAN_MOVED_TO för att behandla omdöpningar).
- I filsystemet Btrfs har operationer för loggning och fsync optimerats för stora kataloger genom att endast kopiera indexnycklar och minska mÀngden loggade metadata. Stöd för indexering och sökning av storleken pÄ poster om ledigt utrymme har sÀkerstÀllts, vilket har resulterat i en minskning av fördröjningar med cirka 30 % och en kortare söktid. Det har blivit tillÄtet att avbryta defragmenteringsoperationer. Möjligheten att lÀgga till enheter vid avstÀngd lastbalansering, det vill sÀga vid montering av FS med alternativet skip_balance, har införts.
- En ny syntax för montering av filsystemet Ceph har föreslagits, vilket löser de problem som funnits med bindning till IP-adresser. För att bestÀmma servern kan nu cluster-ID (FSID) anvÀndas: mount -t ceph user@fsid.fs_name=\/[subdir] mnt -o mon_addr=monip1[:port][\/monip2[:port]] IP-adresser Filsystemet Ext4 har uppgraderats till ett nytt API för montering som separerar stegen för tolkning av monteringsalternativ och konfiguration av superblock. Stödet för monteringsalternativen lazytime och nolazytime, som lades till som en temporÀr ÄtgÀrd för att förenkla övergÄngen till att anvÀnda MS_LAZYTIME-flaggan, har upphört. Stöd för att stÀlla in och lÀsa etiketter i FS (ioctl FS_IOC_GETFSLABEL och FS_IOC_SETFSLABEL) har lagts till.
- I NFSv4 har stöd för anvÀndning i filsystem utan skiftning av stora och smÄ bokstÀver i fil- och katalognamn lagts till. I NFSv4.1+ har stöd för identifiering av aggregerade sessioner (trunking) lagts till.
- En driver för amd-pstate har lagts till, vilket möjliggör dynamisk frekvenshantering för optimal prestanda. Drivern stöder CPU och APU AMD frÄn generation Zen 2, utvecklades i samarbete med Valve och syftar till att förbÀttra energieffektiviteten. För adaptiv frekvensjustering anvÀnds mekanismen CPPC (Collaborative Processor Performance Control), som gör det möjligt att mer exakt justera prestandan (inte begrÀnsad till tre prestandanivÄer) och reagera snabbare pÄ förÀndringar Àn tidigare P-statsdrivrutiner baserade pÄ ACPI (CPUFreq).
- Minne och systemtjÀnster
- I eBPF-subsystemet har en bpf_loop()-hanterare föreslagits, vilket erbjuder ett alternativt sÀtt att organisera loopar i eBPF-program, vilket Àr snabbare och enklare att verifiera.
- I eBPF-subsystemet har en bpf_loop()-hanterare föreslagits, vilket erbjuder ett alternativt sÀtt att organisera loopar i eBPF-program, vilket Àr snabbare och enklare att verifiera.
- I kĂ€rnan har en mekanism för CO-RE (Compile Once â Run Everywhere) implementerats, vilket gör det möjligt att kompilera eBPF-programkod bara en gĂ„ng och anvĂ€nda en sĂ€rskild universell laddare som anpassar det laddade programmet till den aktuella kĂ€rnan och typerna av BTF (BPF Type Format).
- Det har blivit möjligt att tilldela namn till omrÄden av privat anonym (allokerad genom malloc) minne, vilket kan förenkla felavlusning och optimering av minnesanvÀndning i applikationer. Namnen tilldelas via prctl med flaggan PR_SET_VMA_ANON_NAME och visas i /proc/pid/maps och /proc/pid/smaps i formen «[anon:]».
- I schemalÀggaren har spÄrning och visning av tiden som processer tillbringar i tillstÄnd av tvingad vila (forced-idle) sÀkerstÀllts i /proc/PID/sched, vilket tillÀmpas exempelvis för att minska belastningen vid överhettning av processorn.
- En gpio-sim-modul har lagts till, avsedd för att simulera GPIO-chip för testning.
- I kommandot 'perf ftrace' har en underkommandon 'latency' lagts till för att generera histogram med information om latens.
- Ett set av verktyg, 'RTLA', har lagts till för analys av arbete i realtid. Detta inkluderar verktyg som osnoise (bestÀmmer pÄverkan av operativsystemet pÄ uppgiftens exekvering) och timerlat (Àndrar fördröjningar relaterade till timern).
- Den andra serien patchar som implementerar konceptet med minnessidor (page folios) har integrerats, vilka liknar sammanslagna minnessidor (compound pages) men har en förbÀttrad semantik och en mer begriplig arbetsorganisation. AnvÀndningen av folios möjliggör snabbare minneshantering i vissa delsystem av kÀrnan. I de föreslagna patcharna har översÀttningen av sidcache till anvÀndning av folios slutförts och inledande stöd för folios i FS XFS har lagts till.
- En 'make mod2noconfig'-uppsamlingslÀge har lagts till, dÀr en konfiguration genereras som sammanstÀller alla avstÀngda delsystem i form av kÀrnmoduler.
- Krav pÄ version av LLVM/Clang som kan anvÀndas för att bygga kÀrnan har höjts. För att bygga krÀvs nu minst dess version 11.
- Virtualisering och sÀkerhet
- En uppdaterad implementation av den pseudo-slumptalsgenerator som kallas RDRAND har föreslagits. Den ansvarar för hanteringen av enheterna /dev/random och /dev/urandom och Àr anmÀrkningsvÀrd för övergÄngen till anvÀndning av hash-funktionen BLAKE2s istÀllet för SHA1 för att blanda entropi. Denna förÀndring har ökat sÀkerheten hos den pseudo-slumptalsgeneratorn genom att eliminera problematiken med algoritmen SHA1 och utesluta skrivning av RNG:s initieringsvektor. Eftersom BLAKE2s-algoritmen övertrÀffar SHA1 vad gÀller prestanda, har dess tillÀmpning ocksÄ haft en positiv inverkan pÄ prestandan.
- Skydd mot sÄrbarheter i processorer orsakade av spekulativ exekvering av instruktioner efter oförÀndrad direkt övergÄng har lagts till. Problemet uppstÄr pÄ grund av förhandsbehandling av instruktioner som följer direkt i minnet efter övergÄngskommandot (SLS, Straight Line Speculation). För att aktivera skyddet krÀvs en kompilering med GCC 12-versionen som för nÀrvarande Àr under testning.
- En mekanism för spÄrning av referensrÀkning (refcount, reference-count) har lagts till, inriktad pÄ att minska antalet fel vid referensrÀkning som leder till minnesÄtkomst efter att minnet har frigjorts. Mekanismen Àr för nÀrvarande begrÀnsad till nÀtverksundersystemet, men kan i framtiden anpassas för andra delar av kÀrnan.
- Utökade kontroller för nya poster i programmets minnessidor har implementerats, vilket gör det möjligt att upptÀcka vissa typer av korruption och stoppa systemet för att blockera attacker i ett tidigt skede.
- Möjligheten att packa upp kÀrnmoduler direkt av kÀrnan sjÀlv, snarare Àn av en anvÀndarutrymmeshanterare, har lagts till. Detta gör det möjligt, med hjÀlp av LSM-modulen LoadPin, att sÀkerstÀlla att kÀrnmoduler laddas in i minnet frÄn en verifierad lagringsenhet.
- En kompilering med flaggan '-Wcast-function-type' har sÀkerstÀllts, vilket aktiverar utskrift av varningar om typkonvertering av funktionspekare till inkompatibla typer.
- En virtuell vÀrddrivrutin pvUSB har lagts till för hypervisorn Xen, vilket ger Ätkomst till USB-enheter som Àr genomslÀppta till gÀstsysten (det gör det möjligt för gÀstsysten att fÄ Ätkomst till fysiska USB-enheter som Àr kopplade till gÀstsysten).
- En modul har lagts till som möjliggör att interagera med IME-systemet (Intel Management Engine) via Wi-Fi, vilket finns i de flesta moderna moderkort med Intel-processorer och implementeras som en separat mikroprocessor som arbetar oberoende av CPU.
- Stöd för KCSAN (Kernel Concurrency Sanitizer), ett verktyg för att dynamiskt upptÀcka race conditions inom kÀrnan, har implementerats för ARM64-arkitektur.
- För 32-bitars ARM-system har möjligheten att anvÀnda KFENCE-mekanismen för att upptÀcka minnesfel lagts till.
- I KVM-hypervisorn har stöd för AMX (Advanced Matrix Extensions) instruktioner implementerats, som finns i de kommande Intel Xeon Scalable serverprocessorerna.
- NĂ€tverkssystemet
- Stöd för att avlasta (offloading) trafikhantering till nÀtverksenheter har lagts till.
- Möjligheten att anvÀnda MCTP (Management Component Transport Protocol) över enheter med seriellt grÀnssnitt har lagts till. MCTP kan anvÀndas för att kommunicera mellan styrkontroller och relaterade enheter (vÀrdprocessorer, perifera enheter osv.).
- TCP-stacken har optimerats, till exempel har fördröjd frigivning av socket-buffertar implementerats för att öka prestandan av recvmsg-anrop.
- PÄ nivÄn CAP_NET_RAW har det blivit möjligt att stÀlla in lÀgena SO_PRIORITY och SO_MARK via funktionen setsockopt.
- För IPv4 har det blivit möjligt att koppla raw-sockets inte till lokala IP-adresser genom att anvÀnda IP_FREEBIND och IP_TRANSPARENT alternativ.
- Ett sysctl arp_missed_max har lagts till för att konfigurera tröskelvÀrdet för misslyckanden vid kontroll av ARP-monitor som efter vilket nÀtverksgrÀnssnittet sÀtts i en avstÀngd status.
- Möjligheten att konfigurera separata sysctl-vÀrden min_pmtu och mtu_expires för nÀtverksnamnrymder har tillhandahÄllits.
- I API:et ethtool har möjligheten att stÀlla in och definiera storleken pÄ inkommande och utgÄende paketbuffertar lagts till.
- Stöd för filtrering av transit pppoe-trafik i nÀtverksbron har lagts till i Netfilter.
- I ksmbd-modulen som implementerar filsystemet servern, som anvÀnder protokollet SMB3, har suport för nyckelutbyte lagts till, nÀtverksport 445 anvÀnds för smbdirect och stöd för parametern "smb2 max credit" har lagts till.
- Utrustning
- I drm-systemet (Direct Rendering Manager) och drivrutinen i915 har stöd för skÀrmar för visning av konfidentiell information lagts till, till exempel Àr vissa bÀrbara datorer utrustade med skÀrmar som har ett inbyggt lÀge för konfidentiell visning, vilket gör det svÄrt att se frÄn sidan. De tillsatta Àndringarna möjliggör anslutning av specialiserade drivrutiner för sÄdana skÀrmar och hantering av lÀgen för konfidentiell visning genom att stÀlla in egenskaper i vanliga KMS-drivrutiner.
- I amdgpu-drivrutinen har stöd för den diagnostiska tekniken STB (Smart Trace Buffer) lagts till för alla AMD GPU:er som stöder den. STB förenklar analysen av krascher och identifiering av kÀllan till problem genom att spara information om funktionerna som körts före den senaste kraschen i en speciell buffert.
- I i915-drivrutinen har stöd för Intel Raptor Lake S-chip lagts till och stöd för grafiska subsystem av Intel Alder Lake P-chip Àr som standard aktiverad. Det har ocksÄ blivit möjligt att styra bakgrundsbelysningen pÄ skÀrmen via VESA DPCD-grÀnssnitt.
- I fbcon/fbdev-drivrutinerna har stödet för hÄrdvaruacceleration av rullning i konsolen ÄterstÀllts.
- Integrationen av Àndringar för stöd för Apple M1-chip har fortsatt. Det har nu blivit möjligt att anvÀnda simpledrm-drivrutinen pÄ system med Apple M1-chip för utdata via framebuffer som tillhandahÄlls av firmware.
- Stöd för ARM SoC, enheter och plattformar Snapdragon 7c, 845 och 888 (Sony Xperia XZ2/XZ2C/XZ3, Xperia 1 III/5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek MT8183 (Acer Chromebook 314), Mediatek MT7986a/b (anvÀnds i Wi-Fi-routrar), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEAr320s, NXP i.MX8 ULP8, Aspeed AST2500/AST2600, Engicam i.Core STM32MP1, Allwinner Tanix TX6, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t6000/t6001 MacBook Pro 14/16 har lagts till.
- Stöd för ARM Cortex-M55 och Cortex-M33-processorer har lagts till.
- Stöd för enheter baserade pÄ MIPS-CPU:er: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2 har lagts till.
- Stöd för SoC StarFive JH7100 baserat pÄ RISC-V-arkitekturen har lagts till.
- Drivrutinen lenovo-yogabook-wmi för att styra bakgrundsbelysningen pÄ tangentbordet och fÄ Ätkomst till olika sensorer i Lenovo Yoga Book har lagts till.
- Drivrutinen asus_wmi_sensors för att fÄ Ätkomst till sensorer som anvÀnds pÄ Asus moderkort X370, X470, B450, B550 och X399 baserade pÄ AMD Ryzen-processorer har lagts till.
- Drivrutinen x86-android-tablets för x86-baserade surfplattor som levereras med Android-plattformen har lagts till.
- Stöd för pekskÀrmar pÄ TrekStor SurfTab duo W1 och elektroniska pennor för Chuwi Hi10 Plus och Pro-tabeller har lagts till.
- Drivrutiner för SoC Tegra 20/30 har lagts till för att stödja strömhantering och spÀnning. Möjligheten att starta pÄ Àldre 32-bitars enheter baserade pÄ SoC Tegra, sÄsom ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 och Pad TF300TG, har sÀkerstÀllts.
- Drivrutiner för industriella datorer frÄn Siemens har lagts till.
- Stöd har lagts till för LCD-paneler Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA och Team Source Display TST043015CMHX.
- Stöd för ljudsystem och codecs AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel-system med NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320ADC3xxx har lagts till. Problem med Tegra194 HD-ljud har lösts. Stöd för HDA för codecs CS35L41 har lagts till. FörbÀttrat stöd för ljudsystem för bÀrbara datorer frÄn Lenovo och HP samt moderkort frÄn Gigabyte.
KĂ€lla: opennet.ru
