Udgivelse af Linux-kernen 6.0

Efter to måneders udvikling præsenterede Linus Torvalds udgivelsen af Linux-kernen 6.0. Den markante ændring i versionsnummeret er foretaget af æstetiske grunde og repræsenterer et formelt skridt, der fjerner ubehaget ved det store antal udgivelser i serien (Linus spøgte med, at årsagen til ændringen af versionen mere skyldes, at han løber tør for fingre på hænder og fødder til at tælle versionsnumre). Nogle af de mest bemærkelsesværdige ændringer inkluderer: støtte til asynkron bufferet skrivning i XFS, blokdriveren ublk, optimering af opgavestyreren, en mekanisme til verifikation af kernelens korrekthed og støtte til blokcifferet ARIA.

De vigtigste nyheder i kernen 6.0:

  • DiskSubsystem, input/output og filsystemer
    • Filsystemet XFS har fået tilføjet støtte til asynkron bufferet skrivning ved hjælp af io_uring mekanismen. Ydelsestests udført med værktøjet fio (1 tråd, blokstørrelse 4kb, 600 sekunder, sekventiel skrivning) viser en stigning i antal I/O-operationer pr. sekund (IOPS) fra 77k til 209k, dataoverførsels hastigheder fra 314MB/s til 854MB/s, og et fald i latens fra 9600ns til 120ns (80 gange).
    • I Btrfs-filsystemet er den anden version af protokollen for kommandoen "send" implementeret, som understøtter yderligere metadata, sending af data i større blokke (over 64K) og overførsel af extent i komprimeret form. Ydeevnen for direkte læsninger (direct read) er blevet forøget betydeligt (op til 3 gange) ved samtidig læsning af op til 256 sektorer. Konflikter i låser er blevet reduceret, og metadata-check er blevet hurtigere ved at forkorte de reserverede metadata for forsinkede elementer.
    • I ext4-filsystemet er der blevet tilføjet nye ioctl-operationer EXT4_IOC_GETFSUUID og EXT4_IC_SETFSUUID til at udtrække eller indstille UUID-identifikatoren, der opbevares i superblokken.
    • Filsystemet F2FS har introduceret en lavt forbrugende tilstand, der optimerer arbejdet på enheder med begrænset RAM og gør det muligt at reducere hukommelsesforbruget på bekostning af ydelsen.
    • Understøttelse af NVMe-diskautorisering er blevet tilføjet.
    • I serveren I NFSv4 er grænsen for antallet af aktive klienter blevet implementeret, hvilket fastsættes til 1024 tilladte klienter pr. gigabyte RAM i systemet.
    • I implementeringen af CIFS-klienten er ydeevnen blevet forbedret i tilstand for multi-kanal overførsel.
    • Der nye FAN_MARK_IGNORE-flags er tilføjet til fanotify-hændelsessporingssystemet for at ignorere specifikke hændelser.
    • I Overlayfs-filsystemet, når der monteres oven på et filsystem med bruger-id-mapping, sikres korrekt support for POSIX-kompatible adgangskontrollister.
    • Den blokdrevne ublk er tilføjet, hvilket flytter specifik logik til en baggrundsproces i brugerrummet og bruger io_uring-systemet.
  • Hukommelse og systemtjenester
    • Der er tilføjet nye funktioner til DAMON (Data Access MONitor), som ikke kun muliggør overvågning af processers adgang til hukommelse fra brugerrummet, men også påvirker hukommelsesstyringen. Specifikt er der foreslået en ny modul 'LRU_SORT', der sikrer omgruppering af LRU (Least Recently Used) lister for at prioritere bestemte hukommelsessider.
    • Muligheden for at oprette nye hukommelsesområder ved hjælp af CXL (Compute Express Link) er blevet implementeret, hvilket bruges til at organisere højhastighedskommunikation mellem CPU og hukommelsesenheder. CXL gør det muligt at tilslutte nye hukommelsesområder, der tilbydes af eksterne hukommelsesenheder, og bruge dem som ekstra ressourcer i det fysiske adresseområde til udvidelse af systemets arbejdeshukommelse (DDR) eller vedvarende hukommelse (PMEM).
    • Ydelsesproblemer på systemer med AMD Zen-processorer, forårsaget af kode tilføjet for 20 år siden for at omgå hardwareproblemer i visse chip-sæt, er løst (en ekstra WAIT-instruktion blev tilføjet for at bremse processoren, så chip-sættet kunne gå i dvale). Ændringen medførte et fald i ydeevnen under belastninger, hvor der ofte veksles mellem dvaletilstand (idle) og aktivitet (busy). For eksempel steg de gennemsnitlige resultater fra tbench-testen fra 32191 MB/s til 33805 MB/s efter fjernelse af omgåelsen.
    • Koden med heuristik, der sikrede migration af processer til de mindst belastede CPU'er med henblik på det forventede energiforbrug, er fjernet fra opgaveplanlæggeren. Udviklerne har konkluderet, at heuristikken ikke giver den ønskede nytte, og det er lettere at flytte processer uden yderligere vurderinger hver gang, en sådan flytning potentielt kan føre til lavere energiforbrug (for eksempel når den målrettede CPU er på et niveau med lavere energiforbrug). Deaktiveringen af heuristikken har resulteret i et fald i energiforbruget under intensive opgaver; for eksempel faldt energiforbruget med 5,6 % i en videoafkodningstest.
    • Der er foretaget optimering af fordelingen af opgaver på CPU-kernerne på store systemer, hvilket har øget ydeevnen under visse typer belastninger.
    • Der er foreslået et nyt flag IORING_RECV_MULTISHOT i grænsefladen for asynkron ind-/udgang io_uring, som muliggør brug af 'multi-shot'-tilstand med systemopkaldet recv() til at udføre flere læseoperationer fra en netværkssocket på én gang. I io_uring er der også implementeret support for netværksoverføring uden mellemliggende buffring (zero-copy).
    • Muligheden for at sætte BPF-programmer, der er knyttet til uprobe, i hviletilstand er blevet implementeret. Der er også tilføjet en ny iterator ksym i BPF til arbejde med kerntabeller.
    • Den forældede grænseflade 'efivars' i sysfs, der var beregnet til adgang til UEFI-opstartsvariabler (for adgang til EFI-data anvendes den virtuelle FS efivarfs nu generelt), er blevet fjernet.
    • Der er implementeret nye rapporter i perf-værktøjet til analyse af låse-konflikter og den tid, процесор bruger på at udføre kernekomponenter.
    • Indstillingen CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3, som gjorde det muligt at bygge kernen i '–O3'-optimeringsmode, er blevet fjernet. Det bemærkes, at eksperimenter med optimeringsmetoder kan udføres ved at overføre flag under opbygning ('make KCFLAGS=-O3'), og for at tilføje indstillingen i Kconfig kræves der en gentagelig profilering af ydeevnen, som viser, at deployment af loops i '–O3'-mode giver gevinster sammenlignet med '–O2'-optimeringsniveauet.
    • Debugfs-grænseflade til at få information om driften af ​​enkeltstående «memory shrinkers» (håndterere, der kaldes ved hukommelsesmangel og som komprimerer kerne datastrukturer for at reducere hukommelsesforbruget) er tilføjet.
    • PCI-bus understøttelse er implementeret for OpenRISC og LoongArch arkitekturer.
    • For RISC-V arkitekturen er der implementeret en «Zicbom» for at styre enheder med DMA, som ikke er synkroniseret med cachen (non-cache-coherent).
  • Virtualisering og sikkerhed
    • Der er tilføjet en mekanisme til Runtime Verification (RV) til at verificere korrekt drift på høj-pålidelige systemer, der garanterer fejlfri drift. Verifikationen udføres under kørsel ved at tilknytte håndterere til sporingspunkter, der sammenligner den faktiske udførelse med en forhåndsdefineret, deterministisk model af automaten, der bestemmer systemets forventede adfærd. Sammenligningen med modellen i runtime positioneres som en mere letvægts og praktisk implementerbar metode til at bekræfte korrektheden af ​​driften på kritiske systemer, der supplerer klassiske metoder til pålidelighed. En af fordelene ved RV er muligheden for at sikre streng verificering uden en separat implementering af hele systemet i et modelleringsprog samt en fleksibel reaktion på uventede hændelser.
    • Kernekomponenter til styring af enclaves baseret på Intel SGX2 (Software Guard eXtensions) teknologi, som gør det muligt for applikationer at køre kode i isolerede og krypterede hukommelsesområder, hvor resten af ​​systemet har begrænset adgang, er integreret. Intel SGX2-teknologi understøttes i Intel Ice Lake og Gemini Lake-chips og adskiller sig fra Intel SGX1 ved hjælp af yderligere instruktioner til dynamisk hukommelsesstyring af enclaves.
    • Muligheden for at overføre frø til generatoren af pseudo-tilfældige tal via bootloader-indstillinger er implementeret for x86-arkitekturen.
    • I LSM-modulet SafeSetID er muligheden for at styre ændringer foretaget via kaldet setgroups() tilføjet. SafeSetID gør det muligt for systemtjenester at styre brugere sikkert uden at hæve privilegier (CAP_SETUID) og uden at få root-brugerrettigheder.
    • Der er tilføjet støtte til den blokbaserede krypteringsalgoritme ARIA.
    • I sikkerhedsstyringsmodulet baseret på BPF er det muligt at tilknytte håndterere til enkeltprocesser og procesgrupper (cgroup).
    • En mekanisme med implementering af watchdog er tilføjet for at identificere hængninger i gæstesystemerne baseret på overvågning af vCPU-aktivitet.
  • Netværkssubsystem
    • Der er tilføjet behandlere i BPF-subsystemet til at generere og kontrollere SYN-cookies. En række funktioner (kfunc) til adgang til og ændring af forbindelse tilstande er også tilføjet.
    • Der er tilføjet support for MLO (Multi-Link Operation) mekanismen i det trådløse stack, som defineret i WiFi 7 specifikationen, der gør det muligt for enheder at modtage og sende data samtidig ved at bruge forskellige frekvensbånd og kanaler, for eksempel til at etablere flere kommunikationskanaler mellem et access point og en klientenhed.
    • Ydelsen af den indbyggede TLS-protokolimplementering i kernen er forbedret.
    • Der er tilføjet en kernens kommandolinjeparameter «hostname=», som giver mulighed for at sætte værtens navn tidligt i opstartsprocessen, før brugerpladsens komponenter er startet.
  • Udstyr
    • I i915-drivern (Intel) er supporten for de diskrete Intel Arc (DG2/Alchemist) A750 og A770 grafikkort blevet tilføjet. En indledende implementering til støtte for Intel Ponte Vecchio (Xe-HPC) GPU og Meteor Lake er blevet foreslået. Arbejdet med at støtte Intel Raptor Lake-platformen er fortsat.
    • I amdgpu-driveren er der fortsat arbejde på at sikre support for AMD RDNA3 (RX 7000) og CDNA (Instinct) platforme.
    • I Nouveau-driveren er koden til support af displaymotorerne i NVIDIA nv50 GPU blevet omskrevet.
    • En ny DRM-driver logicvc til LogiCVC-skærme er blevet tilføjet.
    • I v3d-driveren (til Broadcom Video Core GPU) er supporten til Raspberry Pi 4 blevet implementeret.
    • Der er tilføjet support for Qualcomm Adreno 619 GPU i msm-driveren.
    • Der er tilføjet support for ARM Mali Valhall GPU i Panfrost-driveren.
    • Initial support for Qualcomm Snapdragon 8cx Gen3 processorer, der anvendes i Lenovo ThinkPad X13s bærbare computere, er blevet tilføjet.
    • Lyddrivere for AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake og Mediatek MT8186 platforme er blevet tilføjet.
    • Support for Intel Habana Gaudi 2 maskinlæringsacceleratorer er blevet tilføjet.
    • Support for ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530 og Google Chameleon v3 er blevet tilføjet.

Samtidig har den latinamerikanske Fond for Fri Software udformet en version af den helt frie kerne 6.0 — Linux-libre 6.0-gnu, renset for elementer fra firmware og drivere, der indeholder ikke-frie komponenter eller kodepartier, hvor anvendelsen er begrænset af producenten. I den nye udgave er brugen af blobs i CS35L41 HD-audio driveren og UCSI driveren til STM32G0 mikrokontrollere deaktiveret. DTS-filerne for Qualcomm og MediaTek chips er blevet renset. Blob-afslutningen i MediaTek MT76 driveren er blevet omarbejdet. Koden til rensning af blobs i AMDGPU, Adreno, Tegra VIC, Netronome NFP og Habanalabs Gaudi2 drivere og subsystemer er blevet opdateret. Rensningen af VXGE driveren, der er fjernet fra kernen, er blevet stoppet.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster