Udgivelsen af Linux-kernen 5.2

Efter to måneders udvikling præsenterede Linus Torvalds den kerneudgivelse Linux 5.2. Nogle af de mest markante ændringer inkluderer: Ext4-arbejdsmode uden hensyntagen til store og små bogstaver, separate systemopkald til montering af FS, drivere til GPU Mali 4xx/6xx/7xx, muligheden for at håndtere ændringer i sysctl-værdier i BPF-programmer, device-mapper-modulet dm-dust, beskyttelse mod MDS-angreb, støtte til Sound Open Firmware for DSP, optimering af BFQ-ydeevne, og forbedring af PSI (Pressure Stall Information)-subsystemet til brug i Android.

Den nye version indeholder 15100 rettelser fra 1882 udviklere,
patchstørrelsen er 62 MB (ændringerne berørte 30889 filer, 625094 linjer kode blev tilføjet, 531864 linjer blev fjernet). Omkring 45% af alle ændringerne i 5.2
vedrører enhedsdrivere, cirka 21% af ændringerne har
relation til opdatering af hardware-specifik kode, 12%
er relateret til netværksstakken, 3% til filsystemer og 3% til interne
kerneunderystemer. 12,4% af alle ændringerne er forberedt af Intel, 6,3% af Red Hat, 5,4% af Google, 4,0% af AMD, 3,1% af SUSE, 3% af IBM, 2,7% af Huawei, 2,7% af Linaro, 2,2% af ARM, 1,6% af Oracle.

Vigtige nyheder:

  • DiskSubsystem, input/output og filsystemer
    • For Ext4 er der tilføjet understøttelse af muligheden for at arbejde uden hensyntagen til store og små bogstaver i filnavne, som kun aktiveres i forbindelse med specifikke tomme mapper ved hjælp af den nye attribut "+F" (EXT4_CASEFOLD_FL). Når denne attribut er indstillet på en mappe, vil alle operationer med filer og undermapper inden i blive udført uden hensyntagen til store og små bogstaver, herunder vil bogstavsreglerne blive ignoreret ved søgning og åbning af filer (for eksempel vil filerne Test.txt, test.txt og test.TXT i sådanne mapper blive betragtet som identiske). Som standard forbliver FS case-sensitive, bortset fra mapper med attributten "chattr +F";
    • Funktionerne til behandling af UTF-8-tegn i filnavne er blevet ensartede, og de anvendes ved udførelse af sammenlignings- og normaliseringsoperationer;
    • I XFS er der tilføjet en infrastruktur til overvågning af filsystemets tilstand og en ny ioctl til anmodning om status for driftsikkerhed. Der er implementeret en eksperimentel mulighed for online kontrol (online scrub) af superblokstællere.
    • Der er tilføjet en ny device-mapper-modul “dm-dust”, som simulerer forekomsten af bad blocks på lagringsmediet eller fejl ved læsning fra disken. Modulet gør det lettere at debugge og teste applikationer og forskellige lagringssystemer under potentielle fejlsituationer;
    • Der er foretaget betydelig optimering af BFQ I/O-planlæggerens ydeevne. Optimeringerne er blevet implementeret under høj I/O-belastning. at teste Reducerer tiden for operationer som opstart af applikationer med op til 80%;
    • En række systemopkald til montering af filsystemer er blevet tilføjet: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() og move_mount(). Disse systemopkald gør det muligt at håndtere forskellige faser af montering separat (behandle superblok, få information om FS, montere, tilknytte til monteringspunkt), hvilket tidligere blev udført via det generelle systemopkald mount(). Separate opkald muliggør mere komplekse monteringsscenarier og udførelse af operationer som omkonfiguration af superblokken, aktivering af indstillinger, ændring af monteringspunkt og flytning til et andet navnerum. Desuden giver separat behandling mulighed for nøjagtigt at identificere årsagerne til fejl-udgange og angive flere kilder for lagdelte FS'er som overlayfs;
    • En ny operation IORING_OP_SYNC_FILE_RANGE, der udfører handlinger svarende til systemopkaldet sync_file_range(), er blevet tilføjet til grænsefladen til asynkron I/O io_uring samt muligheden for at registrere eventfd med io_uring og modtage notifikationer om afslutning af operationer;
    • For CIFS-filsystemet er ioctl FIEMAP tilføjet, som muliggør effektiv kortlægning af extent samt understøttelse af SEEK_DATA og SEEK_HOLE-tilstande;
    • I FUSE-subsystemet er blevet foreslået API til håndtering af datacaching;
    • I Btrfs er der gennemført optimering af implementeringen af qgroups og forbedret hastigheden af udførelsen af fsync for filer med flere hårde links. Koden til integritetskontrol er forbedret, hvilket nu tager højde for mulig beskadigelse af oplysninger i RAM før data skrives til disk;
    • I CEPH er der tilføjet support til eksport af snapshots via NFS;
    • Implementeringen af NFSv4-montering i 'soft'-tilstand er forbedret (ved adgangsfejl til serveren returnerer anvendelsen straks en fejlkode i 'soft'-tilstand, mens den i 'hard'-tilstand ikke returnerer kontrol før filsystemets tilgængelighed genoptages eller der opstår timeout). I denne nye udgave er den præcise behandling af timeout forbedret, genopretningen efter fejl er accelereret, og en ny monteringsmulighed 'softerr' er blevet tilføjet, som tilsidesætter fejlkoden (ETIMEDOUT), der returneres ved timeout.
    • I API nfsdcld, der er beregnet til at overvåge tilstanden af NFS-klienter, er der sikret korrekt overvågning af klientens tilstand af NFS-serveren ved genstart. Således kan nfsdcld-demon nu fungere som behandler af nfsdcltrack;
    • For AFS tilføjet emulering af byte-range låsning i filer (Byte Range Locking);
  • Virtualisering og sikkerhed
    • Der er blevet arbejdet på at eliminere steder i kernen, hvor kodning kan udføres fra skrivbare, reflekterede hukommelsesområder, hvilket forhindrer potentielle sårbarheder, der kan udnyttes under angreb;
    • En ny kernel-kommandolinjeparameter "mitigations=", der giver en enklere måde at styre aktiveringen af forskellige beskyttelsesteknikker mod sårbarheder relateret til spekulativ udførelse af instruktioner i CPU. Ved at angive "mitigations=off" deaktiveres alle tilgængelige metoder, mens standardindstillingen "mitigations=auto" aktiverer beskyttelse, men påvirker ikke brugen af Hyper-Threading. Indstillingen "mitigations=auto,nosmt" deaktiverer desuden Hyper-Threading, hvis beskyttelsesmetoden kræver det.
    • Tilføjet understøttelse af elektronisk digital signatur i henhold til GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), udviklet af Vitaly Chikunov fra "Bazalt SPO". Den indbyggede implementering af TLS har fået tilføjet støtte til AES128-CCM. I crypto_simd-modulet er der tilføjet støtte til AEAD-algoritmer;
    • I Kconfig tilføjet er der en separat sektion "kernel hardening" med muligheder for at styrke beskyttelsen af kernen. I øjeblikket er der kun indsamlet indstillinger til aktivering af forstærkende GCC-plugin-kontroller i den nye sektion;
    • Kernelkoden er næsten befriet for uendelige case-udtryk i switch (uden return eller break efter hver case-blok). Der er stadig 32 af 2311 tilfælde af denne brug af switch, der skal rettes, hvorefter man kan bruge indstillingen "-Wimplicit-fallthrough" ved kompilering af kernen;
    • For PowerPC-arkitekturen er der implementeret støtte til hardwaremekanismer, der begrænser uønskede adgangsveje fra kernen til data i brugerrummet;
    • Kode til at blokere angreb MDS (Microarchitectural Data Sampling) klassen i Intel processorer er tilføjet. Systemets sårbarhed kan kontrolleres gennem SysFS-variablen "/sys/devices/system/cpu/vulnerabilities/mds". Tilgængelig To beskyttelsesmetoder: en fuld, der kræver opdateret mikrocode, og en omgåelse, der ikke helt garanterer rensning af CPU-bufferne ved overdragelse af kontrol til brugerrummet eller gæstesystemet. For at styre beskyttelsesmetoderne er der tilføjet en parameter "mds=", som kan tage værdierne "full", "full,nosmt" (plus deaktivering af Hyper-Threads) og "off";
    • På x86-64-systemer er der tilføjet beskyttelse "stack guard-page" for IRQ, debug-mekanismer og undtagelseshåndterere, som består i at indsætte en sidegrænse med hukommelsessider, hvis adgang genererer en undtagelse (page-fault);
    • Tilføjet sysctl-indstillingen vm.unprivileged_userfaultfd, der styrer muligheden for, at ikke-privilegerede processer kan bruge systemopkaldet userfaultfd();
  • Netværkssubsystem
    • Tilføjet støtte for IPv6-gateways til IPv4-ruter. For eksempel kan man nu angive routingregler som "ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0";
    • For ICMPv6 er der implementeret ioctl-opkald icmp_echo_ignore_anycast og icmp_echo_ignore_multicast for at ignorere ICMP ECHO for anycast og
      multicast adresser. Tilføjet mulighed for at begrænse intensiteten af ICMPv6-pakkebehandling;
    • For B.A.T.M.A.N. mesh-protokol («Better Approach To Mobile Adhoc Networking»), der tillader oprettelse af decentraliserede netværk, der forbinder hver knude gennem naboknuder, tilføjet støtte for oversættelse fra multicast til unicast, samt mulighed for styring via sysfs;
    • I ethtool tilføjet ny parameter Fast Link Down, der reducerer tiden for meddelelse om frakobling af linket for 1000BaseT (under normale forhold er forsinkelsen op til 750 ms);
    • Der er nu mulighed binding af Foo-Over-UDP-tunneler til en bestemt adresse, netværksinterface eller socket (tidligere blev binding kun udført efter en fælles maske);
    • I den trådløse stak sikret mulighed for implementering af håndteringsmetoder
      OWE (Opportunistic Wireless Encryption) i brugerrummet;
    • I Netfilter er der tilføjet støtte for inet adressen til nat kæder (for eksempel kan et enkelt oversættelsesregel nu anvendes til både ipv4 og ipv6, uden at adskille reglerne for ipv4 og ipv6);
    • I netlink tilføjet tilstand streng for streng kontrol af korrektheden af alle meddelelser og attributter, hvor overskridelse af den forventede attributstørrelse ikke er tilladt, og tilføjelse af supplerende data i slutningen af meddelelser er forbudt;
  • Hukommelse og systemtjenester
    • I systemopkaldet clone() er der tilføjet en flag CLONE_PIDFD, som ved angivelse returnerer en filbeskrivelse "pidfd" til forældreprocessen, der identificeres med den oprettede datterproces. Denne filbeskrivelse kan for eksempel bruges til at sende signaler uden at være bekymret for raceforhold (umiddelbart efter at signalet er sendt, kan den mål-PID blive frigivet på grund af procesafslutning og optaget af en anden proces);
    • Til den anden version af cgroups er der tilføjet funktionalitet til fryserens controller, som gør det muligt at stoppe arbejdet i cgroup og midlertidigt frigive nogle ressourcer (CPU, input/output og potentielt endda hukommelse) til udførelse af andre opgaver. Styring sker gennem kontrolfilerne cgroup.freeze og cgroup.events i cgroup-træet. At skrive 1 i cgroup.freeze fryser processer i den aktuelle cgroup og alle undergrupper. Da fryseprocessen kræver noget tid, er der desuden tilbudt en fil cgroup.events, hvorigennem man kan få at vide, når operationen er afsluttet;
    • Sikret eksport af hukommelsesattributter knyttet til hver node i sysfs, hvilket gør det muligt at bestemme, hvordan bankerne i hukommelsen behandles i systemer med heterogen hukommelse fra brugerens rum;
    • Undersystemet PSI (Pressure Stall Information) er forbedret, hvilket gør det muligt at analysere information om ventetid for at modtage forskellige ressourcer (CPU, hukommelse, input/output) for bestemte opgaver eller sæt af processer i cgroup. Ved hjælp af PSI kan brugerrumsgeneratorer mere præcist vurdere systemets belastningsniveau og karakteristikken for nedsat ydeevne sammenlignet med Load Average. I den nye version er der tilføjet support til justering af følsomhedstræk og muligheden for at bruge opkaldet poll() for at modtage meddelelser om aktivering af de indstillede tærskelværdier over en bestemt periode. Denne funktionalitet gør det muligt at organisere overvågningen af hukommelsesmangel tidligt i Android, bestemme kilden til problemerne og lukke uvæsentlige applikationer uden at forårsage mærkbare problemer for brugeren. Under stresstestning har overvågningsværktøjer baseret på PSI vist sig med 10 gange færre falske alarmer sammenlignet med statistikken fra vmpressure;
    • Kodeoptimering er udført for BPF-programkontrol, hvilket gør det muligt at gennemføre kontrol op til 20 gange hurtigere for store programmer. Optimeringen har hævet grænsen for størrelsen på BPF-programmer fra 4096 til en million instruktioner;
    • For BPF-programmer leveres muligheden for adgang til globale data, hvilket gør det muligt at definere globale variabler og konstanter i programmer;
    • Tilføjet API, som tillader kontrol af ændringer af sysctl-parametre fra BPF-programmer;
    • Der er implementeret en JIT-kompilator til eBPF-virtual maskinen for MIPS32-arkitekturen;
    • For 32-bit PowerPC-arkitekturen er der tilføjet support til KASan (Kernel address sanitizer), et værktøj til fejlfinding, der opdager hukommelsesfejl;
    • På x86-64-systemer er begrænsningen for placering af crash-dumps fjernet i hukommelsesområder over 896MB;
    • For s390-arkitekturen er der implementeret support til tilfældig adresseområde-omlægning (KASLR) og verifikation af digitale signaturer ved boot af kernen via kexec_file_load();
    • For PA-RISC-arkitekturen er der tilføjet support til kernel-debuggeren (KGDB), springmærker og kprobes;
  • Udstyr
    • Driveren er inkluderet Lima til GPU Mali 400/450, anvendt i mange ældre chip baseret på ARM-arkitekturen. For nyere GPU'er Mali er Panfrost-driveren tilføjet, som understøtter chips baseret på mikroarkitekturerne Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) og Bifrost (Mali G3x, G5x, G7x);
    • Support til lyd-enheder, der bruger åbne firmware er tilføjet Sound Open Firmware (SOF). På trods af de åbne drivere har koden til firmware til lydchips indtil nu været lukket og blevet leveret i binær form. Sound Open Firmware-projektet er udviklet af Intel for at skabe åbne firmware til DSP-chips relateret til lydbehandling (senere deltog Google også i udviklingen). I øjeblikket er der allerede forberedt åbne firmware til lydchips på Intel-platforme såsom Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake og IceLake;
    • I Intel DRM-driveren (i915) er der tilføjet support til chips
      Elkhartlake (Gen11). PCI-identifikatorer for Comet Lake-chips (Gen9) er blevet tilføjet. Support til Icelake-chips er stabiliseret, og der er også tilføjet ekstra PCI-enhedsidentifikatorer.
      Inkluderet
      asynkron tilstandsskift mellem to buffere i videohukommelse (async flip) under udførelsen af skrivninger via mmio, hvilket har forbedret ydeevnen betydeligt for nogle 3D-applikationer (for eksempel steg ydeevnen i 3DMark Ice Storm med 300-400%). Støtte til teknologien er blevet tilføjet HDCP2.2 (High-bandwidth Digital Content Protection) til kryptering af videosignal sendt via HDMI;
    • I amdgpu-driveren til GPU Vega20 tilføjet er der støtte til RAS (Reliability, Availability, Serviceability) og eksperimentel støtte til SMU 11-systemet, som erstatter Powerplay-teknologien. For GPU Vega12 tilføjet er der støtte til BACO-tilstand (Bus Active, Chip Off). Indledende støtte til XGMI, en højhastighedsbussystem (PCIe 4.0) til forbindelsen af GPU, er blevet tilføjet i amdkfd-driveren, som tilføjer manglende kortidentifikatorer til GPU Polaris10-baserede kort;
    • Nouveau-driveren har tilføjet støtte til kort baseret på NVIDIA Turing 117-chipsettet (TU117, anvendt i GeForce GTX 1650). I
      kconfig tilføjet indstillingen til at deaktivere forældede funktioner, der ikke længere anvendes i de aktuelle versioner af libdrm;
    • I DRM API'en og amdgpu-driveren er støtte til synkroniseringsobjekter 'timeline' blevet tilføjet, hvilket muliggør at undgå klassiske låse.
    • Fra staging-grenen er vboxvideo-driveren blevet overført til hovedkoden for den virtuelle GPU VirtualBox;
    • der er tilføjet en aspeed-driver til GFX-chippen SoC ASPEED;
    • støtte til ARM SoC og Intel Agilex-platforme (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
      ST Micro (stm32mp157a, stm32mp157c), NXP (
      Eckelmann ci4x10 (i.MX6DL),

      i.MX8MM EVK (i.MX8MM),

      ZII i.MX7 RPU2 (i.MX7),

      ZII SPB4 (VF610),

      Zii Ultra (i.MX8M),

      TQ TQMa7S (i.MX7Solo),

      TQ TQMa7D (i.MX7Dual),

      Kobo Aura (i.MX50),

      Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210).

Samtidig Latinamerikansk Fond for fri software skabte
variant fuldstændig fri kerne 5.2 — Linux-libre 5.2-gnu, renset for elementer af firmware og drivere, der indeholder ikke-frie komponenter eller kodeafsnit, hvis anvendelse er begrænset af producenten. I den nye version er der inkluderet indlæsning af filer
Sound Open Firmware. Indlæsning af blobs i drivere
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp og ucsi_ccg er blevet deaktiveret. Koden til oprydning af blobs i drivere og subsystemer ixp4xx, imx-sdma, amdgpu, nouveau og goya er blevet opdateret, ligesom dokumentationen til mikro-koden. Oprydningen af blobs i r8822be-driveren er stoppet på grund af dens fjernelse.

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