Utgivelse av Linux-kjernen 5.2

Etter to måneder med utvikling av Linus Torvalds har presentert utgjeving av kjernen Linux 5.2. Blant de mest bemerkelsesverdige endringene er: Ext4-modus uten hensyn til tegnsetting, separate systemanrop for montering av FS, drivere for GPU Mali 4xx/6xx/7xx, mulighet for behandling av endringer i sysctl-verdier i BPF-programmer, device-mapper-modulen dm-dust, beskyttelse mot MDS-angrep, støtte for Sound Open Firmware for DSP, ytelsesoptimalisering av BFQ, og videreutvikling av PSI (Pressure Stall Information)-undersystemet for bruk i Android.

I den nye versjonen er det mottatt 15100 feilrettinger fra 1882 utviklere.
Patch-størrelsen er 62 MB (endringene berørte 30889 filer, 625094 linjer med kode ble lagt til, og 531864 linjer ble fjernet). Rundt 45 % av alle endringene i 5.2
er relatert til enhetsdrivere, cirka 21 % av endringene har
forbindelse til oppdatering av kodene spesifik for maskinvarearkitekturer, 12 %
er knyttet til nettverksstakken, 3 % – filsystemene og 3 % til interne
kernesystemer. 12,4 % av alle endringer ble forberedt av Intel, 6,3 % – Red Hat, 5,4 % – Google, 4,0 % – AMD, 3,1 % – SUSE, 3 % – IBM, 2,7 % – Huawei, 2,7 % – Linaro, 2,2 % – ARM, 1,6 % – Oracle.

Viktige nyheter:

  • Disk subsystem, I/O og filsystemer
    • For Ext4 er det lagt til støtte funksjon for arbeid uten hensyn til tegnsetting i filnavn, som aktiveres kun i tilknytning til separate tomme kataloger ved hjelp av den nye attributten «+F» (EXT4_CASEFOLD_FL). Når denne attributten settes på en katalog, vil alle operasjoner med filer og underkataloger inne i den utføres uten hensyn til tegnsetting, inkludert at skilletegn vil bli ignorert under søke- og åpningsoperasjoner (for eksempel vil filene Test.txt, test.txt og test.TXT i slike kataloger bli ansett som identiske). Som standard forblir FS skille- sensitiv, unntatt kataloger med attributten «chattr +F»;
    • Funksjoner for behandling av UTF-8-tegn i filnavn er blitt standardisert, og disse brukes ved utførelse av sammenlignings- og normaliseringsoperasjoner;
    • I XFS er det lagt til infrastruktur for å overvåke tilstanden til filsystemet og en ny ioctl for å forespørre status for funksjonaliteten. En eksperimentell mulighet for kontroll av superblokk teller på farten (online scrub) er implementert.
    • En ny device-mapper-modul «dm-dust« er lagt til, som gjør det mulig å simulere forekomsten av dårlige blokker på lagringsenheten eller feil ved lesing fra disken. Modulen gjør det enklere å feilsøke og teste applikasjoner og ulike lagringssystemer under forhold med mulige feil.
    • Gjennomført betydelig ytelsesoptimalisering av BFQ I/O-scheduler. Optimeringene er innført under høy last på I/O. gjør det mulig redusere tiden for slike operasjoner, som å starte applikasjoner, med opptil 80%;
    • En serie systemanrop for montering av filsystemer er lagt til: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() og move_mount(). Disse systemanropene gjør det mulig å behandle forskjellige faser av montering enkeltvis (behandle superblokken, hente informasjon om FS, montere, feste ved monteringspunkt), som tidligere ble utført med det generelle systemanropet mount(). Separate anrop gir mulighet for å utføre mer komplekse monteringsscenarier og håndtere oppgaver som omkonfigurering av superblokken, aktivere alternativer, endre monteringspunkt og flytte til et annet navnerom. I tillegg tillater separat behandling å nøyaktig fastslå årsakene til feilkoder og definere flere kilder for lagdelte FS, som overlayfs;
    • En ny operasjon IORING_OP_SYNC_FILE_RANGE, som utfører handlinger tilsvarende systemanropet, er lagt til grensesnittet for asynkron I/O io_uring, sync_file_range()og muligheten for å registrere eventfd med io_uring og motta varsler om fullføring av operasjoner er også implementert;
    • For CIFS-filsystemet er ioctl FIEMAP lagt til, som muliggjør effektiv mapping av extensjoner, samt støtte for MODUSENE SEEK_DATA og SEEK_HOLE;
    • I FUSE-subsystemet foreslått API for data caching management;
    • Btrfs har fått optimalisert implementering av qgroups og forbedret hastigheten ved utførelsen av fsync for filer med flere harde lenker. Koden som sjekker dataintegritet er forbedret og tar nå hensyn til mulige skader av informasjon i RAM før data skrives til disk;
    • I CEPH er støtte for eksport av snapshots via NFS lagt til;
    • Implementeringen av NFSv4-montering i "soft"-modus er forbedret (i tilfelle av tilgangsfeil til serveren i "soft"-modus returneres feilkoden umiddelbart, mens i "hard"-modus returneres kontrollen ikke før FS gjenopprettes eller en tidsgrense oppnås). I den nye utgaven er det sikret mer presis håndtering av tidsgrense, akselerert gjenoppretting etter feil, og en ny monteringsalternativ "softerr" er lagt til, som tillater endring av feilkoden (ETIMEDOUT) som returneres ved tidsgrense.
    • I API nfsdcld, som er beregnet til å overvåke statusen til NFS-klienter, er det mulig å overvåke NFS-serverens status for klienten ved omstart. Dermed kan demon nfsdcld nå fungere som en behandler for nfsdcltrack;
    • For AFS er det lagt til emulering av blokkeringsmetoder for byte-intervaller i filer (Byte Range Locking);
  • Virtualisering og sikkerhet
    • Det er gjort arbeid for å fjerne steder i kjernen som tillater kjøring av kode fra skrivbare reflekterte minneområder, noe som blokkerer potensielle sårbarheter som kan utnyttes under angrep;
    • Et nytt kommandolinj alternativ for kjernen 'mitigations=', som gir en forenklet måte å administrere aktivering av spesifikke teknikker for beskyttelse mot sårbarheter knyttet til spekulativ instruksjonsutførelse i CPU. Å overføre 'mitigations=off' slår av alle tilgjengelige metoder, mens standardmodus 'mitigations=auto' aktiverer beskyttelsen uten å påvirke bruken av Hyper Threading. Modus 'mitigations=auto,nosmt' deaktiverer i tillegg Hyper Threading hvis beskyttelsesteknikken krever det.
    • Lagt til støtte for elektronisk signatur i henhold til GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), utviklet av Vitaly Chikunov fra 'Bazalt SPO'. I den innebygde implementeringen av TLS er støtte for AES128-CCM lagt til. I modulen crypto_simd er støtte for AEAD-algoritmer lagt til;
    • I Kconfig er det lagt til en egen seksjon 'kernel hardening' med alternativer for å styrke beskyttelsen av kjernen. For tiden inneholder den nye seksjonen bare innstillinger for aktivering av forbedrende kontroller av GCC-plugins;
    • Kjerne koden er nesten frigjort fra uavbrutte uttrykk i switch (uten return eller break etter hver case-blokk). Det gjenstår å fikse 32 av 2311 slike bruk av switch, etter hvilket kjernen kan kompilere med '-Wimplicit-fallthrough' modusen;
    • For PowerPC-arkitekturen er det implementert støtte for maskinvaremekanismer for å begrense uønskede tilganger fra kjernen til data i brukerrutinen;
    • Kode for blokkering er lagt til angrep klassen MDS (Microarchitectural Data Sampling) i Intel-prosessorer. For å sjekke systemets sårbarhet kan man bruke SysFS-variabelen '/sys/devices/system/cpu/vulnerabilities/mds'. Tilgjengelig To beskyttelsesmoduser: full, som krever oppdatert mikrokode, og en omgåelsesmodus som ikke garanterer fullstendig rensing av CPU-bufferne når kontrollen overføres til brukerrommet eller gjestesystemet. For å styre beskyttelsesmodiene er det lagt til en parameter «mds=» i kjernen, som kan ta verdiene «full», «full,nosmt» (samt deaktivering av Hyper-Threads) og «off»;
    • På x86-64-systemer er det lagt til beskyttelse «stack guard-page» for IRQ, feilsøkingsmekanismer og unntakshåndterere, hvor prinsippet er å sette inn en side i minnet ved grensen til stakken, som vil generere en unntak (page-fault) ved tilgang;
    • En ny sysctl-innstilling vm.unprivileged_userfaultfd er lagt til for å styre bruken av systemkallet userfaultfd() av ikke-privilegerte prosesser;
  • Nettverks subsystem
    • Lagt til støtte for IPv6-gatewayer for IPv4-ruter. For eksempel kan man nå spesifisere rutingregler som «ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0»;
    • For ICMPv6 er ioctl-kallene icmp_echo_ignore_anycast og icmp_echo_ignore_multicast implementert for å ignorere ICMP ECHO for anycast og
      multicast adresser. Lagt til mulighet for å begrense intensiteten av ICMPv6-pakkebehandling;
    • For mesh-protokollen B.A.T.M.A.N. («Better Approach To Mobile Adhoc Networking»), som muliggjør oppretting av desentraliserte nettverk der hver node er koblet gjennom nærliggende noder, er det lagt til støtte for oversettelse fra multicast til unicast, samt mulighet for styring gjennom sysfs;
    • I ethtool er lagt til er den nye parameteren Fast Link Down, som reduserer tiden det tar å få informasjon om linkdeaktiveringshendingen for 1000BaseT (under normale forhold kan forsinkelsen være opptil 750 ms);
    • overflow muligheten binding av Foo-Over-UDP-tunneler til en spesifikk adresse, nettverksgrensesnitt eller socket (tidligere ble bindingen utført kun med en generell maske);
    • I den trådløse stakken sikres mulighet for implementering av
      OWE (Opportunistic Wireless Encryption) i brukerrommet;
    • I Netfilter er det lagt til støtte for adressefamilien inet i nat-kjeder (for eksempel kan man nå bruke ett oversettelsesregel for å håndtere både ipv4 og ipv6, uten å skille reglene for ipv4 og ipv6);
    • I netlink er lagt til modus strict for streng sjekk av gyldigheten av alle meldinger og attributter, der overskridelse av forventet attributt størrelse ikke tillates, og det er forbudt å legge til ekstra data på slutten av meldingene;
  • Minne og systemtjenester
    • I systemkallet clone() er flagget CLONE_PIDFD lagt til, som gjør det mulig for forelderen å returnere filbeskrivelsen «pidfd» som er identifisert med den opprettede barnprosessen. Denne filbeskrivelsen kan for eksempel brukes til å sende signaler uten å bekymre seg for race conditions (umiddelbart etter at signalet sendes, kan mål-PID bli frigitt på grunn av prosessens avslutning og okkupert av en annen prosess);
    • Den andre versjonen av cgroups har fått funksjonalitet for fryserkontroller, som gjør det mulig å stoppe kjøringen av en cgroup og midlertidig frigjøre enkelte ressurser (CPU, I/O og potensielt til og med minne) for utføring av andre oppgaver. Kontroll skjer gjennom kontrollfiler cgroup.freeze og cgroup.events i cgroup-treet. Skriving 1 til cgroup.freeze fryser prosessene i den nåværende cgroup og alle undergrupper. Siden frysingen tar litt tid, er det i tillegg tilbudt en fil cgroup.events for å finne ut når operasjonen er fullført;
    • Sikret eksport av minnetilknyttede attributter til hver node i sysfs, som gjør at brukerrommet kan bestemme hvordan minnebanksbehandling foregår i systemer med heterogen minne;
    • Under-systemet PSI (Pressure Stall Information) er forbedret, noe som gjør det mulig å analysere ventetid på å få tilgang til ulike ressurser (CPU, minne, I/O) for bestemte oppgaver eller prosesssett i cgroup. Ved hjelp av PSI kan brukerrutiner mer nøyaktig vurdere systembelastningen og karakteren av ytelsessenkning sammenlignet med Load Average. Den nye versjonen sørger for støtte for justering av følsomhetsterskler og muligheten til å bruke poll()-kallet for å få varsler om at satte terskler har blitt utløst innen en viss tidsramme. Denne funksjonaliteten muliggjør tidlig sporing av minnemangel i Android, bestemme kilden til problemer og avslutte uviktige applikasjoner uten å forårsake merkbare problemer for brukeren. Under stresstesting har minneovervåkningsverktøy basert på PSI vist 10 ganger færre falske positiver sammenlignet med statistikken fra vmpressure;
    • Kode for verifisering av BPF-program er optimalisert, som har gjort det mulig å utføre kontrollen opptil 20 ganger raskere for større programmer. Optimaliseringen har hevet grensen for størrelsen på BPF-programmer fra 4096 til én million instruksjoner.
    • For BPF-programmer er blitt mulig å få tilgang til globale data, noe som tillater definisjon av globale variabler og konstanter i programmene.
    • Inkludert API, som gjør det mulig å kontrollere endringer av sysctl-parametre fra BPF-programmer.
    • For MIPS32-arkitekturen er det implementert en JIT-kompilator for eBPFs virtuelle maskin.
    • For 32-biters PowerPC-arkitektur er støtten for KASan (Kernel Address Sanitizer) blitt lagt til, noe som gjør det mulig å oppdage feil ved minnebruk.
    • På x86-64-systemer er begrensningen for plassering av krasjdump i minneområder over 896 MB fjernet.
    • For s390-arkitekturen er støtten for KASLR (Kernel Address Space Layout Randomization) og muligheten for verifisering av digitale signaturer under oppstart av kjernen via kexec_file_load() implementert.
    • For PA-RISC-arkitekturen er det lagt til støtte for kjernedebuggere (KGDB), overgangsmerker og kprobes.
  • Utstyr
    • Inkludert er driveren Lima for GPU Mali 400/450, som brukes i mange eldre brikker basert på ARM-arkitekturen. For nyere Mali-GPU-er er det lagt til en Panfrost-driver som støtter brikker basert på mikroarkitekturer Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) og Bifrost (Mali G3x, G5x, G7x).
    • Støtte for lydutstyr som bruker åpne fastvare Sound Open Firmware (SOF). Til tross for tilgjengeligheten av åpne drivere har fastvarekoden for lydbrikker fortsatt vært stengt og levert i binær form. Prosjektet Sound Open Firmware er utviklet av Intel for å lage åpne fastvare for DSP-brikker knyttet til lydbehandling (senere deltok også Google i utviklingen). I dag er det allerede utviklet åpne fastvare for lydbrikker på Intel-plattformer som Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake og IceLake.
    • I Intel DRM-driveren (i915) er det lagt til støtte for brikker
      Elkhartlake (Gen11). PCI-identifikatorer for brikker fra Comet Lake (Gen9) er lagt til. Støtten for brikker fra Icelake er stabilisert, og det er også lagt til ekstra PCI-enhetsidentifikatorer.
      Aktivert
      asynkront bytte mellom to buffere i videomini (async flip) under utføring av skriveoperasjoner via mmio, noe som betydelig økte ytelsen til enkelte 3D-applikasjoner (for eksempel økte ytelsen i 3DMark Ice Storm med 300-400%). Støtte for teknologien HDCP2.2 (High-bandwidth Digital Content Protection) for kryptering av videosignalet som sendes via HDMI;
    • I amdgpu-driveren for GPU Vega20 er det lagt til støtte for RAS (Reliability, Availability, Serviceability) og eksperimentell støtte for SMU 11-systemet, som erstatter Powerplay-teknologien. For GPU Vega12 er det lagt til støtte for BACO-modus (Bus Active, Chip Off). Innledende støtte for XGMI, en høyhastighets buss (PCIe 4.0) for tilkobling av GPU. I amdkfd-driveren ble det lagt til manglende identifikatorer for kort basert på GPU Polaris10;
    • I Nouveau-driveren er det lagt til støtte for kort basert på NVIDIA Turing 117 (TU117, brukt i GeForce GTX 1650). I
      kconfig er det lagt til innstillingen for å deaktivere utdaterte funksjoner som ikke lenger brukes i aktuelle utgaver av libdrm;
    • I DRM-API-en og amdgpu-driveren er det lagt til støtte for synkroniseringsobjekter av typen «timeline», som gjør det mulig å unngå klassiske låser.
    • Fra staging-grenen er vboxvideo-driveren flyttet til hovedkoden for virtuell GPU VirtualBox;
    • ASPEED-driveren for GFX-brikken i SoC ASPEED er lagt til;
    • Støtte for ARM SoC og Intel Agilex-plattformer (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).

At the same time, the Latin American Free Software Foundation dannet
variant fullstendig fri kjerne 5.2 — Linux-libre 5.2-gnu, renset for elementer i fastvare og drivere som inneholder ikke-frie komponenter eller kodebiter hvis bruksområde er begrenset av produsenten. I den nye utgaven er det inkludert lasting av filer
Sound Open Firmware. Lading av blobber i driverne
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp og ucsi_ccg. Koden for rensing av blobber i driverne og subsystemene ixp4xx, imx-sdma, amdgpu, nouveau og goya er oppdatert, samt dokumentasjonen for mikrokoden. Rensingen av blobber i driveren r8822be er stoppet på grunn av fjerning.

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster