Linux-kärnan version 5.17

Efter två månaders utveckling presenterade Linus Torvalds releasen av Linux-kärnan 5.17. Bland de mest anmärkningsvärda förändringarna: ett nytt prestandahanteringssystem för AMD-processorer, möjligheten att rekursivt kartlägga användar-ID:n i filsystem, stöd för portabla kompilerade BPF-program, en övergång av pseudo-slumptalsgeneratorn till BLAKE2s algoritm, ett RTLA-verktyg för exekveringsanalys i realtid, en ny fscache-backend för cachelagring av nätverksfilsystem, möjligheten att bifoga namn till anonyma mmap-operationer.

Den nya versionen innehåller 14203 1995 korrigeringar från 37 11366 utvecklare, patchstorleken är 506043 MB (ändringarna påverkade 250954 44 filer, 5.17 16 rader kod lades till, 15 4 rader raderades). Cirka 4 % av alla ändringar som introduceras i XNUMX är relaterade till drivrutiner, ungefär XNUMX % av ändringarna är relaterade till uppdatering av kod som är specifik för hårdvaruarkitekturer, XNUMX % är relaterade till nätverksstacken, XNUMX % är relaterade till filsystem och XNUMX % är relaterade till interna kärndelsystem.

Huvudsakliga innovationer i kärnan 5.17:

  • Diskundersystem, I/O och filsystem
    • Implementerat möjligheten till kapslad mappning av användar-ID:n för monterade filsystem, som används för att jämföra filer för en specifik användare på en monterad främmande partition med en annan användare på det aktuella systemet. Den tillagda funktionen låter dig använda mappning rekursivt ovanpå filsystem för vilka mappning redan tillämpas.
    • fscache-undersystemet, som används för att organisera cachning i det lokala filsystemet av data som överförs via nätverksfilsystem, har skrivits om helt. Den nya implementeringen kännetecknas av en betydande förenkling av koden och ersättandet av komplexa operationer för planering och spårning av objekttillstånd med enklare mekanismer. Stöd för den nya fscachen är implementerad i CIFS-filsystemet.
    • Händelsespårningsundersystemet i fanotify FS implementerar en ny händelsetyp, FAN_RENAME, som gör att du omedelbart kan avlyssna operationen för att byta namn på filer eller kataloger (tidigare användes två separata händelser FAN_MOVED_FROM och FAN_MOVED_TO för att bearbeta namnbyten).
    • Btrfs-filsystemet har optimerad loggning och fsync-operationer för stora kataloger, implementerat genom att endast kopiera indexnycklar och minska mängden loggade metadata. Stöd för indexering och sökning efter storlek på lediga utrymmesposter har tillhandahållits, vilket har minskat latensen med cirka 30 % och minskat söktiden. Tillåtet att avbryta defragmenteringsoperationer. Möjligheten att lägga till enheter vid balansering mellan enheter är inaktiverad, d.v.s. när du monterar ett filsystem med alternativet skip_balance.
    • En ny syntax för montering av Ceph-filsystemet har föreslagits, som löser befintliga problem i samband med bindning till IP-adresser. Förutom IP-adresser kan du nu använda klusteridentifieraren (FSID) för att identifiera servern: mount -t ceph [e-postskyddad]_name=/[underkatalog] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Ext4-filsystemet har flyttats till ett nytt monterings-API som separerar stegen för parsning av monteringsalternativ och superblockkonfiguration. Vi har tagit bort stödet för lazytime- och nolazytime-monteringsalternativen, som lades till som en tillfällig förändring för att underlätta övergången av util-linux till att använda MS_LAZYTIME-flaggan. Tillagt stöd för att ställa in och läsa etiketter i FS (ioctl FS_IOC_GETFSLABEL och FS_IOC_SETFSLABEL).
    • NFSv4 lade till stöd för att arbeta i skiftlägeskänsliga filsystem i fil- och katalognamn. NFSv4.1+ lägger till stöd för att definiera aggregerade sessioner (trunking).
  • Minnes- och systemtjänster
    • Tillagd amd-pstate-drivrutin för att ge dynamisk frekvenskontroll för optimal prestanda. Drivrutinen stöder AMD-processorer och APU:er från Zen 2-generationen, utvecklad tillsammans med Valve och syftar till att förbättra energihanteringseffektiviteten. För adaptiva frekvensändringar används CPPC-mekanismen (Collaborative Processor Performance Control), som gör att du kan ändra indikatorer mer exakt (inte begränsat till tre prestandanivåer) och svara snabbare på tillståndsändringar än det tidigare använda ACPI-baserade P-tillståndet drivrutiner (CPUFreq).
    • eBPF-undersystemet erbjuder en bpf_loop()-hanterare, som ger ett alternativt sätt att organisera loopar i eBPF-program, snabbare och enklare för verifiering av en verifierare.
    • På kärnnivån är CO-RE (Compile Once - Run Everywhere) mekanismen implementerad, som låter dig kompilera koden för eBPF-program endast en gång och använda en speciell universell loader som anpassar det laddade programmet till de aktuella kärn- och BTF-typerna (BPF-typformat).
    • Det är möjligt att tilldela namn till områden av privat anonymt (tilldelat via malloc) minne, vilket kan förenkla felsökning och optimering av minnesförbrukning i applikationer. Namn tilldelas via prctl med flaggan PR_SET_VMA_ANON_NAME och visas i /proc/pid/maps och /proc/pid/smaps i formen "[anon: ]".
    • Uppgiftsschemaläggaren tillhandahåller spårning och visning i /proc/PID/sched den tid som processer spenderar i forcerat viloläge, används till exempel för att minska belastningen när processorn överhettas.
    • Lade till gpio-sim-modul, designad för att simulera GPIO-chips för testning.
    • Lade till ett "latency"-underkommando till kommandot "perf ftrace" för att generera histogram med latensinformation.
    • Lade till en uppsättning "RTLA"-verktyg för att analysera arbete i realtid. Det inkluderar verktyg som osnoise (bestämmer operativsystemets inflytande på utförandet av en uppgift) och timerlat (ändrar fördröjningarna associerade med timern).
    • En andra serie patchar har integrerats med implementeringen av konceptet sidfolios, som liknar sammansatta sidor, men har förbättrad semantik och en tydligare organisation av arbetet. Genom att använda tomes kan du snabba upp minneshanteringen i vissa kärndelsystem. De föreslagna patcharna slutförde konverteringen av sidcachen till användning av tomes och lade till initialt stöd för tomes i XFS-filsystemet.
    • Lade till byggläge "make mod2noconfig", som genererar en konfiguration som samlar alla inaktiverade delsystem i form av kärnmoduler.
    • Kraven för versionen av LLVM/Clang som kan användas för att bygga kärnan har höjts. Bygg nu kräver minst LLVM 11-version.
  • Virtualisering och säkerhet
    • En uppdaterad implementering av pseudoslumptalsgeneratorn RDRAND, ansvarig för driften av /dev/random- och /dev/urandom-enheterna, föreslås, noterbart för övergången till att använda BLAKE2s hashfunktion istället för SHA1 för entropiblandningsoperationer. Ändringen förbättrade säkerheten för pseudo-slumptalsgeneratorn genom att eliminera den problematiska SHA1-algoritmen och eliminera överskrivningen av RNG-initieringsvektorn. Eftersom BLAKE2s algoritm är överlägsen SHA1 i prestanda, hade dess användning också en positiv effekt på prestandan.
    • Tillagt skydd mot sårbarheter i processorer orsakade av spekulativ exekvering av instruktioner efter ovillkorliga framåthoppningsoperationer. Problemet uppstår på grund av förebyggande bearbetning av instruktioner omedelbart efter greninstruktionen i minnet (SLS, Straight Line Speculation). Aktivering av skydd kräver att man bygger med den testversion av GCC 12.
    • Lade till en mekanism för att spåra referensräkning (refcount, reference-count), som syftar till att minska antalet fel i referensräkningen som leder till åtkomst till minnet efter att det har frigjorts. Mekanismen är för närvarande begränsad till nätverksundersystemet, men i framtiden kan den anpassas till andra delar av kärnan.
    • Utökade kontroller av nya poster i processminnets sidtabell har implementerats, vilket gör det möjligt att upptäcka vissa typer av skador och stoppa systemet, vilket blockerar attacker i ett tidigt skede.
    • Lade till möjligheten att packa upp kärnmoduler direkt av själva kärnan, och inte av en hanterare i användarutrymmet, vilket gör det möjligt att använda LoadPin LSM-modulen för att säkerställa att kärnmoduler laddas in i minnet från en verifierad lagringsenhet.
    • Försedd montering med flaggan "-Wcast-function-type", som möjliggör varningar om gjutning av funktionspekare till en inkompatibel typ.
    • Lade till virtuell värddrivrutin pvUSB för Xen-hypervisorn, som ger åtkomst till USB-enheter som vidarebefordras till gästsystem (ger gästsystem åtkomst till fysiska USB-enheter som tilldelats gästsystemet).
    • En modul har lagts till som låter dig interagera via Wi-Fi med delsystemet IME (Intel Management Engine), som finns i de flesta moderna moderkort med Intel-processorer och är implementerat som en separat mikroprocessor som fungerar oberoende av CPU.
    • För ARM64-arkitekturen har stöd implementerats för felsökningsverktyget KCSAN (Kernel Concurrency Sanitizer), designat för att dynamiskt detektera rasförhållanden inom kärnan.
    • För 32-bitars ARM-system har möjligheten att använda KFENCE-mekanismen för att upptäcka fel vid arbete med minne lagts till.
    • KVM-hypervisorn lägger till stöd för AMX-instruktioner (Advanced Matrix Extensions) implementerade i de kommande Intel Xeon Scalable-serverprocessorerna.
  • Nätverksdelsystem
    • Tillagt stöd för avlastning av operationer relaterade till trafikhantering till sidan av nätverksenheter.
    • Lade till möjligheten att använda MCTP (Management Component Transport Protocol) över seriella enheter. MCTP kan användas för att kommunicera mellan hanteringskontroller och deras tillhörande enheter (värdprocessorer, kringutrustning, etc.).
    • TCP-stacken har optimerats, till exempel för att förbättra prestandan för recvmsg-anrop, fördröjd frisättning av socketbuffertar har implementerats.
    • På behörighetsnivån CAP_NET_RAW är det tillåtet att ställa in lägena SO_PRIORITY och SO_MARK via setsockopt-funktionen.
    • För IPv4 tillåts råa uttag att bindas till icke-lokala IP-adresser med alternativen IP_FREEBIND och IP_TRANSPARENT.
    • Lade till sysctl arp_missed_max för att konfigurera tröskeln för antalet fel under ARP-övervakningskontrollen, varefter nätverksgränssnittet placeras i ett avaktiverat tillstånd.
    • Förutsatt möjligheten att konfigurera separata sysctl min_pmtu- och mtu_expires-värden för nätverksnamnområden.
    • Lade till möjligheten att ställa in och bestämma storleken på buffertar för inkommande och utgående paket till ethtool API.
    • Netfilter har lagt till stöd för att filtrera transit pppoe-trafik i en nätverksbrygga.
    • Ksmbd-modulen, som implementerar en filserver som använder SMB3-protokollet, har lagt till stöd för nyckelutbyte, aktiverat nätverksport 445 för smbdirect och lagt till stöd för parametern "smb2 max credit".
  • Оборудование
    • Stöd för skärmar för visning av konfidentiell information har lagts till i delsystemet drm (Direct Renderering Manager) och i915-drivrutinen, till exempel är vissa bärbara datorer utrustade med skärmar med ett inbyggt konfidentiellt visningsläge, vilket gör det svårt att se från utsidan . De tillagda ändringarna gör att du kan ansluta specialiserade drivrutiner för sådana skärmar och kontrollera konfidentiella webbläsarlägen genom att ställa in egenskaper i vanliga KMS-drivrutiner.
    • Amdgpu-drivrutinen inkluderar stöd för STB (Smart Trace Buffer) felsökningsteknik för alla AMD GPU:er som stöder den. STB gör det enklare att analysera fel och identifiera källan till problem genom att i en speciell buffert lagra information om de funktioner som utfördes före det senaste felet.
    • Drivrutinen i915 lägger till stöd för Intel Raptor Lake S-chips och möjliggör stöd för grafikundersystemet för Intel Alder Lake P-chips som standard. Det är möjligt att styra skärmens bakgrundsbelysning via VESA DPCD-gränssnittet.
    • Stöd för acceleration av hårdvarurullning i konsolen har returnerats i fbcon/fbdev-drivrutinerna.
    • Fortsatt integration av ändringar för att stödja Apple M1-chips. Implementerade möjligheten att använda simpledrm-drivrutinen på system med ett Apple M1-chip för utmatning genom en rambuffert som tillhandahålls av firmware.
    • Tillagt stöd för ARM SoС, enheter och kort 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 SPEArX320s, N8P8TI UMX2500 i. , Aspeed AST2600/AST32, Engicam i.Core STM1MP6, Allwinner Tanix TX6000, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t6001/t14 MacBook Pro 16/XNUMX.
    • Tillagt stöd för ARM Cortex-M55 och Cortex-M33-processorer.
    • Tillagt stöd för enheter baserade på CPU MIPS: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Lade till stöd för StarFive JH7100 SoC baserat på RISC-V-arkitektur.
    • Lade till lenovo-yogabook-wmi-drivrutin för att styra tangentbordets bakgrundsbelysning och komma åt olika sensorer i Lenovo Yoga Book.
    • Lade till asus_wmi_sensors drivrutin för att komma åt sensorer som används på Asus X370, X470, B450, B550 och X399 moderkort baserade på AMD Ryzen-processorer.
    • Tillagd drivrutin för x86-android-surfplattor för x86-baserade surfplattor som levereras med Android-plattformen.
    • Tillagt stöd för TrekStor SurfTab duo W1 pekskärmar och elektronisk penna för Chuwi Hi10 Plus och Pro surfplattor.
    • Drivrutiner för SoC Tegra 20/30 har lagt till stöd för ström- och spänningshantering. Möjliggör uppstart på äldre 32-bitars Tegra SoC-enheter som ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 och Pad TF300TG.
    • Lade till drivrutiner för Siemens industridatorer.
    • Lagt till stöd för Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA och Team Source-skärm T043015CMHXNUMXXXNUMX LCD-skärm TXNUMXHXNUMXXXNUMX LCD.
    • Tillagt stöd för ljudsystem och codecs AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel-system som använder NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320xx3AD. Problem med Tegra194 HD-ljud har lösts. Tillagt HDA-stöd för CS35L41-codecs. Förbättrat stöd för ljudsystem för bärbara datorer från Lenovo och HP, samt Gigabyte-moderkort.

Källa: opennet.ru

Lägg en kommentar