Linux 6.0 kernel udgivelse

Efter to måneders udvikling præsenterede Linus Torvalds udgivelsen af ​​Linux 6.0 kernen. Den betydelige ændring i versionsnummer er af æstetiske årsager og er et formelt skridt til at lindre ubehaget ved at samle et stort antal problemer i serien (Linus jokede med, at årsagen til at ændre filialnummeret var mere sandsynligt, at han var ved at løbe tør for fingre og tæer for at tælle versionsnumre). Blandt de mest bemærkelsesværdige ændringer: understøttelse af asynkron bufferskrivning i XFS, ublk-blokdriveren, optimering af opgaveplanlæggeren, en mekanisme til at verificere den korrekte drift af kernen, understøttelse af ARIA-blokchifferet.

Vigtigste innovationer i kerne 6.0:

  • Diskundersystem, I/O og filsystemer
    • XFS-filsystemet har tilføjet understøttelse af asynkron bufferskrivning ved hjælp af io_uring-mekanismen. Ydeevnetest udført ved hjælp af fio-værktøjer (1 tråd, 4 kB blokstørrelse, 600 sekunder, sekventiel skrivning) viser en stigning i input/output operationer per sekund (IOPS) fra 77k til 209k, dataoverførselshastighed fra 314MB/s til 854MB/s, og et fald i latens fra 9600 ns til 120 ns (80 gange).
    • Btrfs-filsystemet implementerer en anden version af protokollen for "send"-kommandoen, som implementerer understøttelse af yderligere metadata, afsendelse af data i større blokke (mere end 64K) og transmittering af omfang i komprimeret form. Ydeevnen af ​​direkte læseoperationer er blevet væsentligt øget (op til 3 gange) på grund af samtidig læsning af op til 256 sektorer. Reduceret låsestrid og fremskyndet metadatakontrol ved at reducere reserverede metadata for udskudte elementer.
    • Nye ioctl-operationer EXT4_IOC_GETFSUUID og EXT4_IC_SETFSUUID er blevet tilføjet til ext4-filsystemet for at hente eller indstille UUID, der er gemt i superblokken.
    • F2FS-filsystemet tilbyder en tilstand med lavt hukommelsesforbrug, som optimerer driften på enheder med en lille mængde RAM og giver dig mulighed for at reducere hukommelsesforbruget på bekostning af reduceret ydeevne.
    • Tilføjet understøttelse af NVMe-drevgodkendelse.
    • NFSv4-serveren implementerer en grænse for antallet af aktive klienter, som er sat som 1024 gyldige klienter for hver gigabyte RAM i systemet.
    • CIFS-klientimplementeringen har forbedret ydeevne i multi-kanal transmissionstilstand.
    • Et nyt flag FAN_MARK_IGNORE er blevet tilføjet til hændelsessporingsundersystemet i fanotify FS for at ignorere specifikke hændelser.
    • I Overlayfs FS, når den er monteret oven på en FS med bruger-ID-tilknytning, er korrekt understøttelse af POSIX-kompatible adgangskontrollister tilvejebragt.
    • Tilføjet ublk-blokdriveren, som flytter specifik logik til siden af ​​baggrundsprocessen i brugerrummet og bruger io_uring-undersystemet.
  • Hukommelse og systemtjenester
    • Nye funktioner er blevet tilføjet til DAMON (Data Access MONitor)-undersystemet, som ikke kun giver mulighed for at overvåge procesadgang til RAM fra brugerplads, men også at påvirke hukommelsesstyring. Især er et nyt modul "LRU_SORT" blevet foreslået, som giver omgruppering af LRU-lister (mindst nyligt brugt) for at øge prioriteten af ​​visse hukommelsessider.
    • Muligheden for at skabe nye hukommelsesregioner er blevet implementeret ved hjælp af funktionerne i CXL-bussen (Compute Express Link), der bruges til at organisere højhastighedsinteraktion mellem CPU'en og hukommelsesenhederne. CXL giver dig mulighed for at forbinde nye hukommelsesområder leveret af eksterne hukommelsesenheder og bruge dem som ekstra fysiske adresserumsressourcer til at udvide systemets DDR (Random Access Memory) eller permanent hukommelse (PMEM).
    • Løste problemer med ydeevnen med AMD Zen-processorer forårsaget af kode tilføjet for 20 år siden for at løse et hardwareproblem i nogle chipsæt (en ekstra WAIT-instruktion blev tilføjet for at bremse processoren, så chipsættet havde tid til at gå i en inaktiv tilstand). Ændringen resulterede i reduceret ydeevne under arbejdsbelastninger, der ofte veksler mellem inaktiv og travl tilstand. For eksempel, efter at have deaktiveret løsningen, steg de gennemsnitlige tbench-testresultater fra 32191 MB/s til 33805 MB/s.
    • Kode med heuristik er blevet fjernet fra opgaveplanlæggeren, hvilket sikrer migrering af processer til de mindst belastede CPU'er, under hensyntagen til den forudsagte gevinst i energiforbrug. Udviklerne konkluderede, at heuristikken ikke var nyttig nok, og at det var lettere at fjerne den og migrere processer uden yderligere evaluering, når en sådan migrering potentielt kunne resultere i lavere strømforbrug (for eksempel når mål-CPU'en er i et lavere strømniveau). Deaktivering af heuristik førte til en reduktion i strømforbruget ved udførelse af intensive opgaver, for eksempel i videoafkodningstesten faldt strømforbruget med 5.6 %.
    • Fordelingen af ​​opgaver på tværs af CPU-kerner på store systemer er blevet optimeret, hvilket har forbedret ydeevnen for visse typer arbejdsbelastning.
    • Den asynkrone I/O-grænseflade io_uring tilbyder et nyt flag, IORING_RECV_MULTISHOT, som giver dig mulighed for at bruge multi-shot-tilstand med recv()-systemkaldet til at udføre flere læseoperationer fra den samme netværkssocket på én gang. io_uring understøtter også netværksoverførsel uden mellemliggende buffering (nulkopi).
    • Implementeret evnen til at sætte BPF-programmer knyttet til uprobe i en søvntilstand. BPF tilføjer også en ny iterator ksym til at arbejde med kernesymboltabeller.
    • Den forældede "efivars"-grænseflade i sysfs, beregnet til adgang til UEFI boot-variabler, er blevet fjernet (efivarfs virtuelle FS bruges nu universelt til at få adgang til EFI-data).
    • Perf-værktøjet har nye rapporter til at analysere låsekonflikter og den tid, processoren bruger på at udføre kernekomponenter.
    • CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 indstillingen er blevet fjernet, hvilket gjorde det muligt for kernen at blive bygget i "-O3" optimeringstilstanden. Det bemærkes, at eksperimenter med optimeringstilstande kan udføres ved at sende flag under samling ("make KCFLAGS=-O3"), og tilføjelse af en indstilling til Kconfig kræver gentagelig præstationsprofilering, hvilket viser, at sløjfeafrulning brugt i "-O3"-tilstand giver en fordel i forhold til "-O2" optimeringsniveauet.
    • En debugfs-grænseflade er blevet tilføjet for at få information om driften af ​​individuelle "hukommelseskrympere" (behandlere kaldet, når der er utilstrækkelig hukommelse og pakkekernedatastrukturer til at reducere deres hukommelsesforbrug).
    • For OpenRISC- og LoongArch-arkitekturerne er understøttelse af PCI-bussen implementeret.
    • For RISC-V-arkitekturen er "Zicbom"-udvidelsen implementeret til at administrere enheder med DMA, der ikke er cache-kohærent.
  • Virtualisering og sikkerhed
    • En RV (Runtime Verification) verifikationsmekanisme er blevet tilføjet for at verificere korrekt drift på yderst pålidelige systemer, der garanterer ingen fejl. Verifikation udføres under kørsel ved at knytte handlere til sporingspunkter, der kontrollerer den faktiske fremskridt i udførelsen i forhold til en forudbestemt reference deterministisk model af maskinen, der definerer systemets forventede adfærd. Verifikation med modellen ved kørsel er placeret som en mere let og let-implementeret metode til at bekræfte rigtigheden af ​​eksekvering på kritiske systemer, som komplementerer klassiske pålidelighedsverifikationsmetoder. Blandt fordelene ved RV er muligheden for at levere streng verifikation uden en separat implementering af hele systemet i et modelleringssprog, samt fleksibel respons på uforudsete hændelser.
    • Integrerede kernekomponenter til styring af enklaver baseret på Intel SGX2 (Software Guard eXtensions) teknologi, som tillader applikationer at eksekvere kode i isolerede krypterede områder af hukommelsen, som resten af ​​systemet har begrænset adgang til. Intel SGX2-teknologien understøttes i Intel Ice Lake- og Gemini Lake-chips og adskiller sig fra Intel SGX1 i yderligere instruktioner til dynamisk hukommelsesstyring af enklaver.
    • For x86-arkitekturen er muligheden for at overføre frøet til pseudorandom-talgeneratoren gennem bootloader-indstillingerne blevet implementeret.
    • SafeSetID LSM-modulet har nu mulighed for at administrere ændringer foretaget gennem setgroups()-kaldet. SafeSetID tillader systemtjenester at administrere brugere sikkert uden at eskalere privilegier (CAP_SETUID) og uden at opnå root-privilegier.
    • Tilføjet understøttelse af ARIA-blokchiffer.
    • Det BPF-baserede sikkerhedsstyringsmodul giver mulighed for at knytte handlere til individuelle processer og procesgrupper (cgroups).
    • En mekanisme med en vagthund-implementering er blevet tilføjet til at detektere hængende gæstesystemer baseret på overvågning af vCPU-aktivitet.
  • Netværks undersystem
    • Handlere til generering og kontrol af SYN-cookies er blevet tilføjet til BPF-undersystemet. Der er også tilføjet et sæt funktioner (kfunc) til at få adgang til og ændre tilstanden af ​​forbindelser.
    • Den trådløse stak har tilføjet understøttelse af MLO (Multi-Link Operation) mekanismen, defineret i WiFi 7-specifikationen og tillader enheder samtidigt at modtage og sende data ved hjælp af forskellige frekvensbånd og kanaler, for eksempel samtidig at etablere flere kommunikationskanaler mellem en adgangspunkt til en klientenhed.
    • Ydeevnen af ​​TLS-protokollen indbygget i kernen er blevet forbedret.
    • Tilføjet en kerne-kommandolinjemulighed "hostname=" for at tillade, at værtsnavnet indstilles tidligt i opstartsprocessen, før brugerrumskomponenter startes.
  • Оборудование
    • i915 (Intel) driveren understøtter Intel Arc (DG2/Alchemist) A750 og A770 diskrete videokort. En indledende implementering af understøttelse af Intel Ponte Vecchio (Xe-HPC) og Meteor Lake GPU'er er blevet foreslået. Arbejdet fortsætter med at understøtte Intel Raptor Lake-platformen.
    • Amdgpu-driveren yder fortsat support til AMD RDNA3 (RX 7000) og CDNA (Instinct) platforme.
    • Nouveau-driveren har omarbejdet supportkoden til NVIDIA nv50 GPU-skærmmotorer.
    • Tilføjet ny logicvc DRM-driver til LogiCVC-skærme.
    • V3d-driveren (til Broadcom Video Core GPU) understøtter Raspberry Pi 4-kort.
    • Tilføjet understøttelse af Qualcomm Adreno 619 GPU til msm-driveren.
    • Tilføjet understøttelse af ARM Mali Valhall GPU til Panfrost-driveren.
    • Tilføjet indledende support til Qualcomm Snapdragon 8cx Gen3-processorer, der bruges i Lenovo ThinkPad X13s bærbare computere.
    • Tilføjet lyddrivere til AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake og Mediatek MT8186 platforme.
    • Tilføjet understøttelse af Intel Habana Gaudi 2 maskinlæringsacceleratorer.
    • Tilføjet understøttelse af ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3.

Samtidig dannede Latin American Free Software Foundation en version af den helt gratis kerne 6.0 - Linux-libre 6.0-gnu, renset for elementer af firmware og drivere indeholdende ikke-frie komponenter eller kodesektioner, hvis omfang er begrænset af producenten. Den nye udgivelse deaktiverer brugen af ​​blobs i CS35L41 HD-lyddriveren og UCSI-driveren til STM32G0 mikrocontrollere. DTS-filer til Qualcomm- og MediaTek-chips er blevet renset. Deaktiveringen af ​​blobs i MediaTek MT76-driveren er blevet omarbejdet. Opdateret blob-rensningskode i AMDGPU, Adreno, Tegra VIC, Netronome NFP og Habanalabs Gaudi2-drivere og undersystemer. Stoppet med at rense VXGE-driveren, som blev fjernet fra kernen.

Kilde: opennet.ru

Tilføj en kommentar