Linux 5.17 kernel-release

Na twee maanden ontwikkeling presenteerde Linus Torvalds de release van de Linux-kernel 5.17. Een van de meest opvallende veranderingen: een nieuw prestatiebeheersysteem voor AMD-processors, de mogelijkheid om gebruikers-ID's recursief in bestandssystemen toe te wijzen, ondersteuning voor draagbare gecompileerde BPF-programma's, een overgang van de pseudo-willekeurige getalgenerator naar het BLAKE2s-algoritme, een RTLA-hulpprogramma voor real-time uitvoeringsanalyse, een nieuwe fscache-backend voor het cachen van netwerkbestandssystemen, de mogelijkheid om namen te koppelen aan anonieme mmap-bewerkingen.

De nieuwe versie bevat 14203 reparaties van 1995 ontwikkelaars, de patchgrootte is 37 MB (de wijzigingen betreffen 11366 bestanden, 506043 regels code zijn toegevoegd en 250954 regels zijn verwijderd). Ongeveer 44% van alle wijzigingen die in 5.17 zijn geïntroduceerd, hebben betrekking op apparaatstuurprogramma's, ongeveer 16% van de wijzigingen heeft betrekking op het updaten van code die specifiek is voor hardware-architecturen, 15% heeft betrekking op de netwerkstack, 4% heeft betrekking op bestandssystemen en 4% zijn gerelateerd aan interne kernelsubsystemen.

Belangrijkste innovaties in kernel 5.17:

  • Schijfsubsysteem, I/O en bestandssystemen
    • Implementeerde de mogelijkheid van geneste toewijzing van gebruikers-ID's van aangekoppelde bestandssystemen, gebruikt om bestanden van een specifieke gebruiker op een aangekoppelde buitenlandse partitie te vergelijken met een andere gebruiker op het huidige systeem. Met de toegevoegde functie kunt u mapping recursief gebruiken bovenop bestandssystemen waarop mapping al is toegepast.
    • Het fscache-subsysteem, dat wordt gebruikt om caching in het lokale bestandssysteem te organiseren van gegevens die via netwerkbestandssystemen worden overgedragen, is volledig herschreven. De nieuwe implementatie onderscheidt zich door een aanzienlijke vereenvoudiging van de code en de vervanging van complexe operaties voor het plannen en volgen van objecttoestanden door eenvoudigere mechanismen. Ondersteuning voor de nieuwe fscache is geïmplementeerd in het CIFS-bestandssysteem.
    • Het subsysteem voor het volgen van gebeurtenissen in fanotify FS implementeert een nieuw gebeurtenistype, FAN_RENAME, waarmee u onmiddellijk de bewerking van het hernoemen van bestanden of mappen kunt onderscheppen (voorheen werden twee afzonderlijke gebeurtenissen FAN_MOVED_FROM en FAN_MOVED_TO gebruikt om hernoemingen te verwerken).
    • Het Btrfs-bestandssysteem heeft de log- en fsync-bewerkingen voor grote mappen geoptimaliseerd, geïmplementeerd door alleen indexsleutels te kopiëren en de hoeveelheid gelogde metagegevens te verminderen. Er is ondersteuning geboden voor het indexeren en zoeken op grootte van records in de vrije ruimte, waardoor de latentie met ongeveer 30% is verminderd en de zoektijd is verkort. Toegestaan ​​om defragmentatiebewerkingen te onderbreken. De mogelijkheid om apparaten toe te voegen bij het balanceren tussen schijven is uitgeschakeld, d.w.z. bij het mounten van een bestandssysteem met de skip_balance optie.
    • Er is een nieuwe syntaxis voorgesteld voor het aankoppelen van het Ceph-bestandssysteem, waarmee bestaande problemen in verband met het binden aan IP-adressen worden opgelost. Naast IP-adressen kunt u nu de clusteridentifier (FSID) gebruiken om de server te identificeren: mount -t ceph [e-mail beveiligd]_name=/[submap] mnt -o mon_addr=monip1[:poort][/monip2[:poort]]
    • Het Ext4-bestandssysteem is verhuisd naar een nieuwe montage-API die de stappen voor het parseren van de koppelingsopties en de configuratiestappen voor superblokken scheidt. We hebben de ondersteuning voor de mount-opties lazytime en nolazytime stopgezet, die als tijdelijke wijziging zijn toegevoegd om de overgang van util-linux naar het gebruik van de vlag MS_LAZYTIME te vergemakkelijken. Ondersteuning toegevoegd voor het instellen en lezen van labels in de FS (ioctl FS_IOC_GETFSLABEL en FS_IOC_SETFSLABEL).
    • NFSv4 heeft ondersteuning toegevoegd voor het werken in hoofdletterongevoelige bestandssystemen in bestands- en mapnamen. NFSv4.1+ voegt ondersteuning toe voor het definiëren van geaggregeerde sessies (trunking).
  • Geheugen- en systeemservices
    • Toegevoegd amd-pstate-stuurprogramma voor dynamische frequentieregeling voor optimale prestaties. De driver ondersteunt AMD CPU's en APU's vanaf de Zen 2-generatie, ontwikkeld in samenwerking met Valve en is gericht op het verbeteren van de energiebeheerefficiëntie. Voor adaptieve frequentieveranderingen wordt het CPPC-mechanisme (Collaborative Processor Performance Control) gebruikt, waarmee u indicatoren nauwkeuriger kunt wijzigen (niet beperkt tot drie prestatieniveaus) en sneller kunt reageren op statusveranderingen dan de eerder gebruikte ACPI-gebaseerde P-state stuurprogramma's (CPUFreq).
    • Het eBPF-subsysteem biedt een bpf_loop()-handler, die een alternatieve manier biedt om lussen in eBPF-programma's sneller en gemakkelijker te organiseren voor verificatie door een verificateur.
    • Op kernelniveau is het CO-RE-mechanisme (Compile Once - Run Everywhere) geïmplementeerd, waarmee u de code van eBPF-programma's slechts één keer kunt compileren en een speciale universele lader kunt gebruiken die het geladen programma aanpast aan de huidige kernel- en BTF-typen (BPF-typeformaat).
    • Het is mogelijk om namen toe te wijzen aan gebieden met privé-anoniem (toegewezen via malloc) geheugen, wat het opsporen van fouten en het optimaliseren van het geheugengebruik in applicaties kan vereenvoudigen. Namen worden toegewezen via prctl met de vlag PR_SET_VMA_ANON_NAME en worden weergegeven in /proc/pid/maps en /proc/pid/smaps in de vorm "[anon: ]".
    • De taakplanner zorgt voor het volgen en weergeven in /proc/PID/sched van de tijd die wordt doorgebracht door processen in de geforceerde inactiviteitsstatus, die bijvoorbeeld wordt gebruikt om de belasting te verminderen wanneer de processor oververhit raakt.
    • GPio-sim-module toegevoegd, ontworpen om GPIO-chips te simuleren voor testen.
    • Er is een subcommando "latency" toegevoegd aan het commando "perf ftrace" om histogrammen met latentie-informatie te genereren.
    • Een reeks “RTLA”-hulpprogramma's toegevoegd voor het in realtime analyseren van werk. Het bevat hulpprogramma's zoals osnoise (bepaalt de invloed van het besturingssysteem op de uitvoering van een taak) en timerlat (verandert de vertragingen die aan de timer zijn gekoppeld).
    • Een tweede reeks patches is geïntegreerd met de implementatie van het concept van paginafolio's, die lijken op samengestelde pagina's, maar een verbeterde semantiek en een duidelijkere organisatie van het werk hebben. Door tomes te gebruiken, kunt u het geheugenbeheer in sommige kernelsubsystemen versnellen. De voorgestelde patches voltooiden de conversie van de paginacache naar het gebruik van boekdelen en voegden initiële ondersteuning toe voor boekdelen in het XFS-bestandssysteem.
    • Bouwmodus “make mod2noconfig” toegevoegd, die een configuratie genereert die alle uitgeschakelde subsystemen verzamelt in de vorm van kernelmodules.
    • De vereisten voor de versie van LLVM/Clang die kan worden gebruikt om de kernel te bouwen zijn verhoogd. Voor Build Now is ten minste LLVM 11-release vereist.
  • Virtualisatie en beveiliging
    • Er wordt een bijgewerkte implementatie voorgesteld van de pseudo-willekeurige getalgenerator RDRAND, verantwoordelijk voor de werking van de /dev/random en /dev/urandom apparaten, opmerkelijk vanwege de overgang naar het gebruik van de BLAKE2s hash-functie in plaats van SHA1 voor entropiemengoperaties. De wijziging verbeterde de veiligheid van de generator van pseudo-willekeurige getallen door het problematische SHA1-algoritme te elimineren en het overschrijven van de RNG-initialisatievector te elimineren. Omdat het BLAKE2s-algoritme qua prestaties superieur is aan SHA1, had het gebruik ervan ook een positief effect op de prestaties.
    • Bescherming toegevoegd tegen kwetsbaarheden in processors veroorzaakt door speculatieve uitvoering van instructies na onvoorwaardelijke voorwaartse sprongoperaties. Het probleem treedt op vanwege de preventieve verwerking van instructies die onmiddellijk volgen op de vertakkingsinstructie in het geheugen (SLS, Straight Line Speculation). Om bescherming in te schakelen, moet worden gebouwd met de momenteel geteste release van GCC 12.
    • Een mechanisme toegevoegd voor het volgen van het tellen van referenties (refcount, referentietelling), gericht op het verminderen van het aantal fouten bij het tellen van referenties die leiden tot toegang tot het geheugen nadat het is vrijgegeven. Het mechanisme is momenteel beperkt tot het netwerksubsysteem, maar kan in de toekomst worden aangepast aan andere delen van de kernel.
    • Er zijn uitgebreide controles van nieuwe vermeldingen in de procesgeheugenpaginatabel geïmplementeerd, waardoor bepaalde soorten schade kunnen worden gedetecteerd en het systeem kan worden gestopt, waardoor aanvallen in een vroeg stadium worden geblokkeerd.
    • De mogelijkheid toegevoegd om kernelmodules rechtstreeks door de kernel zelf uit te pakken, en niet door een handler in de gebruikersruimte, waardoor het gebruik van de LoadPin LSM-module mogelijk is om ervoor te zorgen dat kernelmodules vanaf een geverifieerd opslagapparaat in het geheugen worden geladen.
    • Voorzien van een assemblage met de vlag "-Wcast-function-type", die waarschuwingen mogelijk maakt over het casten van functieverwijzingen naar een incompatibel type.
    • Virtuele hostdriver pvUSB toegevoegd voor de Xen-hypervisor, die toegang biedt tot USB-apparaten die zijn doorgestuurd naar gastsystemen (waarmee gastsystemen toegang krijgen tot fysieke USB-apparaten die zijn toegewezen aan het gastsysteem).
    • Er is een module toegevoegd waarmee je via Wi-Fi kunt communiceren met het IME-subsysteem (Intel Management Engine), dat op de meeste moderne moederborden met Intel-processors wordt geleverd en is geïmplementeerd als een afzonderlijke microprocessor die onafhankelijk van de CPU werkt.
    • Voor de ARM64-architectuur is ondersteuning geïmplementeerd voor de KCSAN-foutopsporingstool (Kernel Concurrency Sanitizer), ontworpen om race-omstandigheden binnen de kernel dynamisch te detecteren.
    • Voor 32-bits ARM-systemen is de mogelijkheid toegevoegd om het KFENCE-mechanisme te gebruiken om fouten te detecteren bij het werken met geheugen.
    • De KVM-hypervisor voegt ondersteuning toe voor AMX-instructies (Advanced Matrix Extensions) die zijn geïmplementeerd in de komende Intel Xeon Scalable-serverprocessors.
  • Netwerksubsysteem
    • Ondersteuning toegevoegd voor het overbrengen van bewerkingen met betrekking tot verkeersbeheer naar de zijkant van netwerkapparaten.
    • De mogelijkheid toegevoegd om MCTP (Management Component Transport Protocol) te gebruiken via seriële apparaten. MCTP kan worden gebruikt om te communiceren tussen beheercontrollers en de bijbehorende apparaten (hostprocessors, randapparatuur, enz.).
    • De TCP-stack is bijvoorbeeld geoptimaliseerd om de prestaties van recvmsg-aanroepen te verbeteren en er is een vertraagde release van socketbuffers geïmplementeerd.
    • Op het CAP_NET_RAW-autoriteitsniveau is het instellen van de SO_PRIORITY- en SO_MARK-modi via de setsockopt-functie toegestaan.
    • Voor IPv4 mogen onbewerkte sockets worden gebonden aan niet-lokale IP-adressen met behulp van de opties IP_FREEBIND en IP_TRANSPARENT.
    • Sysctl arp_missed_max toegevoegd om het drempelaantal fouten tijdens de ARP-monitorcontrole te configureren, waarna de netwerkinterface in een uitgeschakelde status wordt geplaatst.
    • Biedt de mogelijkheid om afzonderlijke sysctl min_pmtu- en mtu_expires-waarden voor netwerknaamruimten te configureren.
    • De mogelijkheid toegevoegd om de grootte van buffers voor inkomende en uitgaande pakketten in te stellen en te bepalen aan de ethtool API.
    • Netfilter heeft ondersteuning toegevoegd voor het filteren van transit pppoe-verkeer in een netwerkbrug.
    • De ksmbd-module, die een bestandsserver implementeert die gebruikmaakt van het SMB3-protocol, heeft ondersteuning toegevoegd voor sleuteluitwisseling, netwerkpoort 445 ingeschakeld voor smbdirect en ondersteuning toegevoegd voor de parameter “smb2 max credit”.
  • Uitrusting
    • Ondersteuning voor schermen voor het weergeven van vertrouwelijke informatie is toegevoegd aan het drm-subsysteem (Direct Renderering Manager) en de i915-driver. Zo zijn sommige laptops uitgerust met schermen met een ingebouwde vertrouwelijke kijkmodus, waardoor het moeilijk is om van buitenaf te kijken . Dankzij de toegevoegde wijzigingen kunt u gespecialiseerde stuurprogramma's voor dergelijke schermen aansluiten en de vertrouwelijke bladermodi beheren door eigenschappen in gewone KMS-stuurprogramma's in te stellen.
    • Het amdgpu-stuurprogramma biedt ondersteuning voor STB-foutopsporingstechnologie (Smart Trace Buffer) voor alle AMD GPU's die dit ondersteunen. STB maakt het gemakkelijker om storingen te analyseren en de bron van problemen te identificeren door in een speciale buffer informatie op te slaan over de functies die vóór de laatste storing zijn uitgevoerd.
    • Het i915-stuurprogramma voegt ondersteuning toe voor Intel Raptor Lake S-chips en maakt standaard ondersteuning mogelijk voor het grafische subsysteem van Intel Alder Lake P-chips. Het is mogelijk om de schermverlichting te regelen via de VESA DPCD-interface.
    • Ondersteuning voor hardware-scrollversnelling in de console is teruggekeerd in de fbcon/fbdev-stuurprogramma's.
    • Voortdurende integratie van wijzigingen ter ondersteuning van Apple M1-chips. De mogelijkheid geïmplementeerd om het simpledrm-stuurprogramma te gebruiken op systemen met een Apple M1-chip voor uitvoer via een framebuffer die door de firmware wordt geleverd.
    • Ondersteuning toegevoegd voor ARM SoС, apparaten en boards Snapdragon 7c, 845 en 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 (gebruikt in Wi-Fi-routers), 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.
    • Ondersteuning toegevoegd voor ARM Cortex-M55- en Cortex-M33-processors.
    • Ondersteuning toegevoegd voor apparaten op basis van CPU MIPS: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Ondersteuning toegevoegd voor StarFive JH7100 SoC op basis van RISC-V-architectuur.
    • Lenovo-yogabook-wmi-stuurprogramma toegevoegd om de toetsenbordverlichting te regelen en toegang te krijgen tot verschillende sensoren in het Lenovo Yoga Book.
    • Asus_wmi_sensors-stuurprogramma toegevoegd voor toegang tot sensoren die worden gebruikt op Asus X370-, X470-, B450-, B550- en X399-moederborden op basis van AMD Ryzen-processors.
    • Stuurprogramma voor x86-Android-tablets toegevoegd voor x86-gebaseerde tablet-pc's die bij het Android-platform worden geleverd.
    • Ondersteuning toegevoegd voor TrekStor SurfTab duo W1-aanraakschermen en elektronische pen voor Chuwi Hi10 Plus- en Pro-tablets.
    • Drivers voor SoC Tegra 20/30 hebben ondersteuning toegevoegd voor stroom- en spanningsbeheer. Maakt opstarten mogelijk op oudere 32-bit Tegra SoC-apparaten zoals ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 en Pad TF300TG.
    • Stuurprogramma's toegevoegd voor industriële computers van Siemens.
    • Ondersteuning toegevoegd voor Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA en Team Source Display TST043015CMHX LCD-panelen.
    • Ondersteuning toegevoegd voor geluidssystemen en codecs AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel-systemen die NAU8825/MAX98390 gebruiken, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320ADC3xxx. Problemen met Tegra194 HD-audio zijn opgelost. HDA-ondersteuning toegevoegd voor CS35L41-codecs. Verbeterde ondersteuning voor geluidssystemen voor Lenovo- en HP-laptops, evenals Gigabyte-moederborden.

Bron: opennet.ru

Voeg een reactie