Linux 5.17 kernel udgivelse

Efter to måneders udvikling præsenterede Linus Torvalds udgivelsen af ​​Linux-kernen 5.17. Blandt de mest bemærkelsesværdige ændringer: et nyt præstationsstyringssystem til AMD-processorer, muligheden for rekursivt at kortlægge bruger-id'er i filsystemer, understøttelse af bærbare kompilerede BPF-programmer, en overgang af pseudo-tilfældig talgeneratoren til BLAKE2s-algoritmen, et RTLA-værktøj til udførelsesanalyse i realtid, en ny fscache-backend til cachelagring af netværksfilsystemer, muligheden for at vedhæfte navne til anonyme mmap-operationer.

Den nye version indeholder 14203 rettelser fra 1995 udviklere, patchstørrelsen er 37 MB (ændringerne berørte 11366 filer, 506043 linjer kode blev tilføjet, 250954 linjer blev slettet). Omkring 44 % af alle ændringer introduceret i 5.17 er relateret til enhedsdrivere, cirka 16 % af ændringerne er relateret til opdatering af kode, der er specifik for hardwarearkitekturer, 15 % er relateret til netværksstakken, 4 % er relateret til filsystemer og 4 % er relateret til interne kerneundersystemer.

Vigtigste innovationer i kerne 5.17:

  • Diskundersystem, I/O og filsystemer
    • Implementeret muligheden for indlejret kortlægning af bruger-id'er af monterede filsystemer, brugt til at sammenligne filer fra en specifik bruger på en monteret fremmed partition med en anden bruger på det aktuelle system. Den tilføjede funktion giver dig mulighed for rekursivt at bruge kortlægning oven på filsystemer, for hvilke kortlægning allerede er anvendt.
    • fscache-undersystemet, der bruges til at organisere caching i det lokale filsystem af data, der overføres gennem netværksfilsystemer, er blevet fuldstændig omskrevet. Den nye implementering er kendetegnet ved en betydelig forenkling af koden og udskiftning af komplekse operationer af planlægning og sporing af objekttilstande med enklere mekanismer. Understøttelse af den nye fscache er implementeret i CIFS-filsystemet.
    • Hændelsessporingsundersystemet i fanotify FS implementerer en ny hændelsestype, FAN_RENAME, som giver dig mulighed for straks at opsnappe operationen af ​​omdøbning af filer eller mapper (tidligere blev to separate hændelser FAN_MOVED_FROM og FAN_MOVED_TO brugt til at behandle omdøbninger).
    • Btrfs-filsystemet har optimeret logning og fsync-operationer til store mapper, implementeret ved kun at kopiere indeksnøgler og reducere mængden af ​​loggede metadata. Understøttelse til indeksering og søgning efter størrelse af ledige pladsposter er blevet leveret, hvilket har reduceret latens med cirka 30 % og reduceret søgetid. Tilladt at afbryde defragmenteringsoperationer. Muligheden for at tilføje enheder ved balancering mellem drev er deaktiveret, dvs. når du monterer et filsystem med muligheden skip_balance.
    • En ny syntaks til montering af Ceph-filsystemet er blevet foreslået, der løser eksisterende problemer forbundet med binding til IP-adresser. Ud over IP-adresser kan du nu bruge klynge-id'et (FSID) til at identificere serveren: mount -t ceph [e-mail beskyttet]_name=/[underkatalog] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Ext4-filsystemet er flyttet til en ny monterings-API, der adskiller trinene til parsing af monteringsmuligheder og superblokkonfiguration. Vi har droppet understøttelse af lazytime og nolazytime mount muligheder, som blev tilføjet som en midlertidig ændring for at lette overgangen af ​​util-linux til at bruge MS_LAZYTIME flaget. Tilføjet understøttelse for indstilling og læsning af etiketter i FS (ioctl FS_IOC_GETFSLABEL og FS_IOC_SETFSLABEL).
    • NFSv4 tilføjede understøttelse til at arbejde i filsystemer, der ikke skelner mellem store og små bogstaver, i fil- og mappenavne. NFSv4.1+ tilføjer understøttelse til at definere aggregerede sessioner (trunking).
  • Hukommelse og systemtjenester
    • Tilføjet amd-pstate driver for at give dynamisk frekvenskontrol for optimal ydeevne. Driveren understøtter AMD CPU'er og APU'er fra Zen 2-generationen, udviklet sammen med Valve og har til formål at forbedre energistyringseffektiviteten. Til adaptive frekvensændringer bruges CPPC-mekanismen (Collaborative Processor Performance Control), som giver dig mulighed for at ændre indikatorer mere præcist (ikke begrænset til tre ydeevneniveauer) og reagere hurtigere på tilstandsændringer end den tidligere anvendte ACPI-baserede P-tilstand drivere (CPUFreq).
    • eBPF-undersystemet tilbyder en bpf_loop()-handler, som giver en alternativ måde at organisere loops i eBPF-programmer på, hurtigere og nemmere for verifikation af en verifikator.
    • På kerneniveau er CO-RE (Compile Once - Run Everywhere) mekanismen implementeret, som giver dig mulighed for kun at kompilere koden for eBPF-programmer én gang og bruge en speciel universel loader, der tilpasser det indlæste program til de aktuelle kerne- og BTF-typer (BPF Type Format).
    • Det er muligt at tildele navne til områder af privat anonym (tildelt via malloc) hukommelse, hvilket kan forenkle fejlfinding og optimering af hukommelsesforbrug i applikationer. Navne tildeles via prctl med PR_SET_VMA_ANON_NAME-flaget og vises i /proc/pid/maps og /proc/pid/smaps i formen "[anon: ]".
    • Opgaveplanlæggeren giver sporing og visning i /proc/PID/sched den tid, processer brugte i den tvungne tomgang, f.eks. brugt til at reducere belastningen, når processoren overophedes.
    • Tilføjet gpio-sim-modul, designet til at simulere GPIO-chips til test.
    • Tilføjet en "latency" underkommando til "perf ftrace" kommandoen for at generere histogrammer med latensinformation.
    • Tilføjet et sæt "RTLA"-værktøjer til at analysere arbejde i realtid. Det inkluderer hjælpeprogrammer såsom osnoise (bestemmer styresystemets indflydelse på udførelsen af ​​en opgave) og timerlat (ændrer forsinkelserne forbundet med timeren).
    • En anden serie af patches er blevet integreret med implementeringen af ​​konceptet sidefolioer, som ligner sammensatte sider, men har forbedret semantik og en klarere organisering af arbejdet. Brug af tomes giver dig mulighed for at fremskynde hukommelseshåndtering i nogle kerneundersystemer. De foreslåede patches fuldendte konverteringen af ​​sidecachen til brug af tomes og tilføjede indledende understøttelse af tomes i XFS-filsystemet.
    • Tilføjet "make mod2noconfig" byggetilstand, som genererer en konfiguration, der samler alle deaktiverede undersystemer i form af kernemoduler.
    • Kravene til den version af LLVM/Clang, der kan bruges til at bygge kernen, er blevet hævet. Byg nu kræver mindst LLVM 11-udgivelse.
  • Virtualisering og sikkerhed
    • En opdateret implementering af pseudo-tilfældige tal-generatoren RDRAND, ansvarlig for driften af ​​/dev/random og /dev/urandom-enhederne, foreslås, bemærkelsesværdig for overgangen til at bruge BLAKE2s hash-funktion i stedet for SHA1 til entropiblandingsoperationer. Ændringen forbedrede sikkerheden for pseudo-tilfældige talgeneratoren ved at eliminere den problematiske SHA1-algoritme og eliminere overskrivningen af ​​RNG-initialiseringsvektoren. Da BLAKE2s-algoritmen er overlegen i forhold til SHA1 i ydeevne, havde brugen også en positiv effekt på ydeevnen.
    • Tilføjet beskyttelse mod sårbarheder i processorer forårsaget af spekulativ udførelse af instruktioner efter ubetingede fremadspringsoperationer. Problemet opstår på grund af forebyggende behandling af instruktioner umiddelbart efter greninstruktionen i hukommelsen (SLS, Straight Line Speculation). Aktivering af beskyttelse kræver bygning med den aktuelle testversion af GCC 12.
    • Tilføjet en mekanisme til sporing af referencetælling (refcount, reference-count), med det formål at reducere antallet af fejl i referencetælling, der fører til adgang til hukommelse, efter at den er blevet frigivet. Mekanismen er i øjeblikket begrænset til netværksundersystemet, men i fremtiden kan den tilpasses til andre dele af kernen.
    • Udvidet kontrol af nye poster i proceshukommelsessidetabellen er blevet implementeret, hvilket gør det muligt at opdage visse typer skader og stoppe systemet, hvilket blokerer angreb på et tidligt tidspunkt.
    • Tilføjet muligheden for at udpakke kernemoduler direkte af kernen selv og ikke af en handler i brugerrummet, hvilket gør det muligt at bruge LoadPin LSM-modulet til at sikre, at kernemoduler indlæses i hukommelsen fra en verificeret lagerenhed.
    • Forsynet samling med "-Wcast-function-type" flaget, som muliggør advarsler om casting funktions pointere til en inkompatibel type.
    • Tilføjet virtuel værtsdriver pvUSB til Xen-hypervisoren, der giver adgang til USB-enheder videresendt til gæstesystemer (giver gæstesystemer adgang til fysiske USB-enheder, der er tildelt gæstesystemet).
    • Der er tilføjet et modul, der giver dig mulighed for at interagere via Wi-Fi med IME (Intel Management Engine) undersystemet, som kommer i de fleste moderne bundkort med Intel-processorer og er implementeret som en separat mikroprocessor, der fungerer uafhængigt af CPU'en.
    • Til ARM64-arkitekturen er der blevet implementeret understøttelse af KCSAN (Kernel Concurrency Sanitizer) debugging-værktøjet, designet til dynamisk at detektere race-forhold i kernen.
    • For 32-bit ARM-systemer er muligheden for at bruge KFENCE-mekanismen til at opdage fejl ved arbejde med hukommelse blevet tilføjet.
    • KVM-hypervisoren tilføjer understøttelse af AMX-instruktioner (Advanced Matrix Extensions) implementeret i de kommende Intel Xeon Scalable-serverprocessorer.
  • Netværks undersystem
    • Tilføjet understøttelse af overførsel af operationer relateret til trafikstyring til siden af ​​netværksenheder.
    • Tilføjet muligheden for at bruge MCTP (Management Component Transport Protocol) over serielle enheder. MCTP kan bruges til at kommunikere mellem administrationscontrollere og deres tilknyttede enheder (værtsprocessorer, perifere enheder osv.).
    • TCP-stakken er blevet optimeret, for eksempel for at forbedre ydeevnen af ​​recvmsg-opkald, forsinket frigivelse af socket-buffere er blevet implementeret.
    • På CAP_NET_RAW-autoritetsniveauet kan tilstandene SO_PRIORITY og SO_MARK indstilles gennem setsockopt-funktionen.
    • For IPv4 tillades rå sockets at være bundet til ikke-lokale IP-adresser ved hjælp af IP_FREEBIND og IP_TRANSPARENT mulighederne.
    • Tilføjet sysctl arp_missed_max for at konfigurere tærskelantallet af fejl under ARP-monitorkontrollen, hvorefter netværksinterfacet sættes i en deaktiveret tilstand.
    • Forudsat muligheden for at konfigurere separate sysctl min_pmtu og mtu_expires værdier for netværksnavneområder.
    • Tilføjet muligheden for at indstille og bestemme størrelsen af ​​buffere for indgående og udgående pakker til ethtool API.
    • Netfilter har tilføjet understøttelse til filtrering af transit pppoe-trafik i en netværksbro.
    • ksmbd-modulet, som implementerer en filserver ved hjælp af SMB3-protokollen, har tilføjet understøttelse af nøgleudveksling, aktiveret netværksport 445 for smbdirect og tilføjet understøttelse af parameteren "smb2 max credit".
  • Оборудование
    • Understøttelse af skærme til visning af fortrolige oplysninger er blevet tilføjet til drm (Direct Renderering Manager)-undersystemet og i915-driveren, for eksempel er nogle bærbare computere udstyret med skærme med en indbygget fortrolig visningstilstand, hvilket gør det svært at se udefra . De tilføjede ændringer giver dig mulighed for at forbinde specialiserede drivere til sådanne skærme og kontrollere fortrolige browsing-tilstande ved at indstille egenskaber i almindelige KMS-drivere.
    • Amdgpu-driveren inkluderer understøttelse af STB (Smart Trace Buffer) debugging-teknologi for alle AMD GPU'er, der understøtter det. STB gør det lettere at analysere fejl og identificere kilden til problemer ved at gemme oplysninger i en særlig buffer om de funktioner, der er udført før den sidste fejl.
    • i915-driveren tilføjer understøttelse af Intel Raptor Lake S-chips og muliggør understøttelse af det grafiske undersystem af Intel Alder Lake P-chips som standard. Det er muligt at styre skærmens baggrundsbelysning via VESA DPCD-grænsefladen.
    • Understøttelse af hardware-rulningsacceleration i konsollen er blevet returneret i fbcon/fbdev-driverne.
    • Fortsat integration af ændringer for at understøtte Apple M1-chips. Implementeret muligheden for at bruge simpledrm-driveren på systemer med en Apple M1-chip til output gennem en framebuffer leveret af firmwaren.
    • Tilføjet understøttelse af ARM SoС, enheder og kort Snapdragon 7c, 845 og 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 (bruges i Wi-fi-routere), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEArX320s, N8P8LPs, N2500P2600 i. , Aspeed AST32/AST1, Engicam i.Core STM6MP6000, Allwinner Tanix TX6001, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t14/t16 MacBook Pro XNUMX/XNUMX.
    • Tilføjet understøttelse af ARM Cortex-M55 og Cortex-M33 processorer.
    • Tilføjet understøttelse af enheder baseret på CPU MIPS: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Tilføjet understøttelse af StarFive JH7100 SoC baseret på RISC-V-arkitektur.
    • Tilføjet lenovo-yogabook-wmi-driver til at styre tastaturets baggrundsbelysning og få adgang til forskellige sensorer i Lenovo Yoga Book.
    • Tilføjet asus_wmi_sensors driver for at få adgang til sensorer brugt på Asus X370, X470, B450, B550 og X399 bundkort baseret på AMD Ryzen processorer.
    • Tilføjet x86-android-tablets-driver til x86-baserede tablet-pc'er, der leveres med Android-platformen.
    • Tilføjet understøttelse af TrekStor SurfTab duo W1 touchskærme og elektronisk pen til Chuwi Hi10 Plus og Pro tablets.
    • Drivere til SoC Tegra 20/30 har tilføjet understøttelse af strøm- og spændingsstyring. Aktiverer opstart på ældre 32-bit Tegra SoC-enheder såsom ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 og Pad TF300TG.
    • Tilføjede drivere til Siemens industrielle computere.
    • Tilføjet understøttelse af Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA og Team Source LCD Display T043015CMHXNUMXXXNUMX LCD-skærm TXNUMXCMHXNUMXXXNUMX.
    • Tilføjet understøttelse af lydsystemer og codecs AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel-systemer, der bruger NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320AD. Problemer med Tegra3 HD-audio er blevet løst. Tilføjet HDA-understøttelse for CS194L35-codecs. Forbedret understøttelse af lydsystemer til bærbare Lenovo- og HP-computere samt Gigabyte-bundkort.

Kilde: opennet.ru

Tilføj en kommentar