Linux 5.2 kernel udgivelse

Efter to måneders udvikling, Linus Torvalds indsendt kerneudgivelse Linux 5.2. Blandt de mest bemærkelsesværdige ændringer: Ext4-driftstilstand er ufølsom mellem store og små bogstaver, separate systemopkald til montering af filsystemet, drivere til GPU Mali 4xx/ 6xx/7xx, evnen til at håndtere ændringer i sysctl-værdier i BPF-programmer, enhedsmapper modul dm-dust, beskyttelse mod angreb MDS, understøttelse af Sound Open Firmware til DSP, optimering af BFQ ydeevne, hvilket bringer PSI (Pressure Stall Information) undersystemet til mulighed for brug i Android.

Den nye version indeholder 15100 rettelser fra 1882 udviklere,
patchstørrelse - 62 MB (ændringer påvirkede 30889 filer, 625094 linjer kode blev tilføjet, 531864 linjer blev slettet). Omkring 45 % af alle præsenteret i 5.2
ændringer er relateret til enhedsdrivere, ca. 21 % af ændringerne er
holdning til opdatering af kode specifik for hardwarearkitekturer, 12 %
relateret til netværksstakken, 3% til filsystemer og 3% til interne
kerne undersystemer. 12.4% af alle ændringer blev udarbejdet 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 % - Oracle.

The main innovationer:

  • Diskundersystem, I/O og filsystemer
    • Tilføjet til Ext4 støtte arbejde uden at skelne mellem tilfælde af tegn i filnavne, som kun aktiveres i forhold til individuelle 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 indeni blive udført uden at tage højde for store og små bogstaver, inklusive store og små bogstaver vil blive ignoreret ved søgning og åbning af filer (f.eks. filerne Test.txt, test.txt og test.TXT i sådanne mapper vil blive betragtet som de samme). Som standard fortsætter filsystemet med at skelne mellem store og små bogstaver, med undtagelse af mapper med "chattr +F"-attributten;
    • Funktioner til behandling af UTF-8-tegn i filnavne, som bruges ved udførelse af strengsammenligning og normaliseringsoperationer, er blevet forenet;
    • XFS tilføjer infrastruktur til filsystemsundhedsovervågning og en ny ioctl til forespørgsel om sundhedsstatus. En eksperimentel funktion er blevet implementeret til at kontrollere superbloktællere online.
    • Tilføjet ny modul enhed-mapper "dm-støv“, som giver dig mulighed for at simulere udseendet af dårlige blokke på mediet eller fejl ved læsning fra disk. Modulet giver dig mulighed for at forenkle debugging og test af applikationer og forskellige lagersystemer i lyset af mulige fejl;
    • Udført Betydelige ydelsesoptimeringer for BFQ I/O-planlæggeren. Under forhold med høj I/O-belastning er der foretaget optimeringer tillade Reducer varigheden af ​​operationer såsom lancering af applikationer med op til 80 %.
    • Tilføjet en række systemopkald til montering af filsystemer: fsopen(), åben_træ(), fspick(), fsmount(), fsconfig() и move_mount(). Disse systemkald giver dig mulighed for separat at behandle forskellige monteringsstadier (behandle superblokken, få information om filsystemet, montere, vedhæfte til monteringspunktet), som tidligere blev udført ved hjælp af det fælles mount() systemkald. Separate opkald giver mulighed for at udføre mere komplekse monteringsscenarier og udføre separate operationer, såsom at rekonfigurere superblokken, aktivere muligheder, ændre monteringspunktet og flytte til et andet navneområde. Derudover giver separat behandling dig mulighed for nøjagtigt at bestemme årsagerne til output af fejlkoder og indstille flere kilder til flerlags filsystemer, såsom overlejringer;
    • En ny operation IORING_OP_SYNC_FILE_RANGE er blevet tilføjet til grænsefladen for asynkron I/O io_uring, som udfører handlinger svarende til et systemkald sync_file_range(), og implementerede også muligheden for at registrere eventfd med io_uring og modtage meddelelser om afslutningen af ​​operationer;
    • Til CIFS-filsystemet er FIEMAP ioctl blevet tilføjet, hvilket giver effektiv udstrækningskortlægning samt understøttelse af tilstandene SEEK_DATA og SEEK_HOLE;
    • I FUSE-delsystemet foreslog API til styring af datacache;
    • Btrfs har optimeret qgroups-implementeringen og forbedret fsync-udførelseshastighed for filer med flere hårde links. Dataintegritetskontrolkoden er blevet forbedret, som nu tager højde for mulig beskadigelse af information i RAM, før data skylles til disken;
    • CEPH tilføjede understøttelse til eksport af snapshots via NFS;
    • Implementeringen af ​​NFSv4-montering i "blød" tilstand er blevet forbedret (hvis der opstår en fejl ved adgang til serveren i "blød" tilstand, returnerer et opkald til straks en fejlkode, og i "hård" tilstand gives der ikke kontrol før FS'en tilgængelighed eller timeout gendannes). Den nye udgivelse giver mere nøjagtig timeout-håndtering, hurtigere crash-gendannelse og en ny "blødere" monteringsmulighed, der giver dig mulighed for at ændre fejlkoden (ETIMEDOUT), der returneres, når en timeout opstår;
    • nfsdcld API, designet til at spore NFS-klienters tilstand, tillader NFS-serveren at spore klientens tilstand korrekt ved genstart. Således kan nfsdcld-dæmonen nu fungere som en nfsdcltrack-handler;
    • Til AFS tilføjet emulering af byte-områdelåse i filer (Byteområdelåsning);
  • Virtualisering og sikkerhed
    • Der er blevet arbejdet på at eliminere steder i kernen, der tillader kodeudførelse fra skrivbare reflekterede hukommelsesområder, hvilket tillader blokering af potentielle huller, der kunne udnyttes under et angreb;
    • En ny kerne-kommandolinjeparameter "mitigations=" er blevet tilføjet, hvilket giver en forenklet måde at kontrollere aktiveringen af ​​visse teknikker for at beskytte mod sårbarheder forbundet med spekulativ udførelse af instruktioner på CPU'en. Ved at sende "mitigations=off" deaktiveres alle eksisterende metoder, og standardtilstanden "mitigations=auto" aktiverer beskyttelse, men påvirker ikke brugen af ​​Hyper Threading. Tilstanden "mitigations=auto,nosmt" deaktiverer desuden Hyper Threading, hvis det kræves af beskyttelsesmetoden.
    • 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 Basalt SPO. Tilføjet understøttelse af AES128-CCM til den native TLS-implementering. Tilføjet understøttelse af AEAD-algoritmer til crypto_simd-modulet;
    • I Kconfig tilføjet en separat "kernehærdning" sektion med muligheder for at forbedre kernebeskyttelsen. I øjeblikket indeholder det nye afsnit kun indstillinger for aktivering af GCC-kontrolforbedrende plugins;
    • Kernekoden er næsten leveret fra ubrudte sagsopgørelser i switch (uden retur eller brud efter hver sagsblok). Det er tilbage at rette 32 ud af 2311 tilfælde af sådan brug af switch, hvorefter det vil være muligt at bruge "-Wimplicit-fallthrough"-tilstanden, når kernen bygges;
    • For PowerPC-arkitekturen er understøttelse af hardwaremekanismer til begrænsning af uønskede kerneadgangsstier til data i brugerrummet blevet implementeret;
    • Tilføjet blokeringskode angreb MDS (Microarchitectural Data Sampling) klasse i Intel-processorer. Du kan kontrollere, om et system er sårbart over for sårbarheder gennem SysFS-variablen "/sys/devices/system/cpu/vulnerabilities/mds". Ledig to beskyttelsestilstande: fuld, hvilket kræver opdateret mikrokode, og bypass, som ikke helt garanterer rydning af CPU-buffere, når kontrollen overføres til brugerrum eller gæstesystemet. For at styre beskyttelsestilstande er parameteren "mds=" blevet tilføjet til kernen, som kan tage værdierne "full", "full,nosmt" (+ deaktiver Hyper-Threads) og "off";
    • På x86-64-systemer er "stack guard-page"-beskyttelse blevet tilføjet til IRQ, fejlfindingsmekanismer og undtagelsesbehandlere, hvis essens er udskiftning af hukommelsessider ved grænsen til stakken, hvilket fører til generering af en undtagelse (sidefejl);
    • Tilføjet sysctl-indstilling vm.unprivileged_userfaultfd, som styrer muligheden for uprivilegerede processer til at bruge systemkaldet userfaultfd();
  • Netværks undersystem
    • Tilføjet IPv6-gateway-understøttelse til IPv4-ruter. For eksempel kan du nu angive routingregler som "ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0";
    • For ICMPv6 implementeres ioctl-kald icmp_echo_ignore_anycast og icmp_echo_ignore_multicast for at ignorere ICMP ECHO for anycast og
      multicast-adresser. Tilføjet evnen til at begrænse intensiteten af ​​ICMPv6-pakkebehandling;

    • For BATMAN (Better Approach To Mobile Adhoc Networking) mesh-protokollen, som tillader oprettelsen af ​​decentraliserede netværk, hvor hver node er forbundet gennem tilstødende noder, tilføjet understøttelse af udsendelse fra multicast til unicast, samt mulighed for at styre via sysfs;
    • I ethool tilføjet en ny Fast Link Down parameter, som giver dig mulighed for at reducere den tid, det tager at modtage information om en link down hændelse for 1000BaseT (under normale forhold er forsinkelsen op til 750ms);
    • Dukkede op lejlighed binding af Foo-Over-UDP-tunneler til en specifik adresse, netværksgrænseflade eller socket (tidligere blev binding kun udført af en fælles maske);
    • I den trådløse stak sikret mulighed for at implementere handlere
      OWE (Opportunistic Wireless Encryption) i brugerrummet;

    • I Netfilter er understøttelse af inet-adressefamilien blevet tilføjet til nat-kæder (f.eks. kan du nu bruge én oversættelsesregel til at behandle ipv4 og ipv6 uden at adskille reglerne for ipv4 og ipv6);
    • I netlink tilføjet regimet streng for streng kontrol af rigtigheden af ​​alle meddelelser og attributter, hvor den forventede størrelse af attributter ikke må overskrides, og tilføjelse af yderligere data i slutningen af ​​meddelelser er forbudt;
  • Hukommelse og systemtjenester
    • CLONE_PIDFD-flaget er blevet tilføjet til clone()-systemkaldet, når det er angivet, returneres filbeskrivelsen "pidfd", der er identificeret med den oprettede underordnede proces, til den overordnede proces. Denne filbeskrivelse kan for eksempel bruges til at sende signaler uden frygt for at løbe ind i en racetilstand (umiddelbart efter afsendelse af signalet kan mål-PID'et blive frigivet på grund af procesafslutning og besat af en anden proces);
    • For den anden version af cgroups er frysercontrollerens funktionalitet tilføjet, hvormed du kan stoppe arbejdet i en cgroup og midlertidigt frigøre nogle ressourcer (CPU, I/O og potentielt endda hukommelse) til at udføre andre opgaver. Administrationen sker gennem cgroup.freeze og cgroup.events kontrolfilerne i cgroup træet. Indgang 1 i cgroup.freeze fryser processer i den aktuelle cgroup og alle underordnede grupper. Da frysning tager noget tid, leveres en ekstra cgroup.events-fil, hvorigennem du kan finde ud af, om operationen er afsluttet;
    • Sikret eksport af hukommelsesattributter knyttet til hver node i sysfs, som giver dig mulighed for fra brugerplads at bestemme arten af ​​behandling af hukommelsesbanker i systemer med heterogen hukommelse;
    • PSI-undersystemet (Pressure Stall Information) er blevet forbedret, hvilket giver dig mulighed for at analysere information om ventetiden for modtagelse af forskellige ressourcer (CPU, hukommelse, I/O) til bestemte opgaver eller sæt af processer i en cgroup. Ved at bruge PSI kan brugere, der håndterer plads, mere præcist estimere niveauet af systembelastning og sænkningsmønstre sammenlignet med belastningsgennemsnit. Den nye version giver understøttelse af indstilling af følsomhedstærskler og mulighed for at bruge poll()-kaldet til at modtage besked om, at de indstillede tærskler er blevet udløst i en vis periode. Denne funktion giver Android mulighed for at overvåge hukommelsesmangel på et tidligt tidspunkt, identificere kilden til problemer og afslutte uvæsentlige applikationer uden at forårsage problemer, der er mærkbare for brugeren. Ved stresstest viste PSI-baserede værktøjer til overvågning af hukommelsesforbrug 10 gange færre falske positiver sammenlignet med vmpressure-statistikker;
    • Koden til kontrol af BPF-programmer er blevet optimeret, hvilket gør det muligt at tjekke op til 20 gange hurtigere for store programmer. Optimering gjorde det muligt at hæve grænsen for størrelsen af ​​BPF-programmer fra 4096 til en million instruktioner;
    • Til BPF-programmer givet evnen til at få adgang til globale data, som giver dig mulighed for at definere globale variabler og konstanter i programmer;
    • Tilføjet API, som giver dig mulighed for at kontrollere ændringer i sysctl-parametre fra BPF-programmer;
    • Til MIPS32-arkitekturen er en JIT-kompiler til den virtuelle eBPF-maskine blevet implementeret;
    • Til 32-bit PowerPC-arkitekturen er der tilføjet understøttelse af KASan (Kernel address Sanizer) debugging-værktøjet, som hjælper med at identificere fejl, når der arbejdes med hukommelse;
    • På x86-64-systemer er begrænsningen for at placere tilstandsdumps under et kernenedbrud (crash-dump) i hukommelsesområder over 896MB blevet fjernet;
    • For s390-arkitekturen er understøttelse af kerneadresserumsrandomisering (KASLR) og muligheden for at verificere digitale signaturer, når kernen indlæses via kexec_file_load() implementeret;
    • Til PA-RISC-arkitekturen, tilføjet understøttelse af kernel debugger (KGDB), jump-mærker og kprobes;
  • Оборудование
    • Driver inkluderet Lima til Mali 400/450 GPU, brugt i mange ældre chips baseret på ARM-arkitekturen. Til nyere Mali GPU'er er Panfrost-driveren blevet tilføjet, der understøtter chips baseret på Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) og Bifrost (Mali G3x, G5x, G7x) mikroarkitekturer;
    • Tilføjet understøttelse af lydenheder ved hjælp af åben firmware Lyd Åbn firmware (SOF). På trods af tilgængeligheden af ​​åbne drivere forblev firmwarekoden til lydchips stadig lukket og blev leveret i binær form. Sound Open Firmware-projektet blev udviklet af Intel for at skabe åben firmware til DSP-chips relateret til lydbehandling (Google kom senere også med i udviklingen). I øjeblikket har projektet allerede forberedt opdagelsen af ​​firmware til lydchips af Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake og IceLake platformene;
    • Intel DRM-driver (i915) tilføjer understøttelse af chips
      Elkhartlake (Gen11). Tilføjet PCI ID'er til Comet Lake (Gen9) chips. Understøttelse af Icelake-chips er blevet stabiliseret, hvortil der også er tilføjet yderligere PCI-enhedsidentifikatorer.
      Inkluderet
      tilstand for asynkron skift mellem to buffere i videohukommelsen (async flip) ved udførelse af skriveoperationer via mmio, hvilket øgede ydeevnen af ​​nogle 3D-applikationer markant (for eksempel steg ydeevnen i 3DMark Ice Storm-testen med 300-400%). Tilføjet teknologistøtte HDCP2.2 (High-bandwidth Digital Content Protection) til kryptering af videosignaler transmitteret via HDMI;

    • Amdgpu-driveren til Vega20 GPU tilføjet understøttelse af RAS (Reliability, Availability, Serviceability) og eksperimentel support til SMU 11-undersystemet, som erstattede Powerplay-teknologien. Til GPU Vega12 tilføjet understøttelse af BACO-tilstand (Bus Active, Chip Off). Tilføjet indledende understøttelse af XGMI, en højhastighedsbus (PCIe 4.0) til GPU-sammenkobling. Tilføjede manglende identifikatorer for kort baseret på Polaris10 GPU til amdkfd-driveren;
    • Nouveau-driveren har tilføjet understøttelse af boards baseret på NVIDIA Turing 117-chipsættet (TU117, brugt i GeForce GTX 1650). I
      kconfig tilføjet indstilling til at deaktivere forældede funktioner, der ikke længere bruges i aktuelle udgivelser af libdrm;

    • Understøttelse af "tidslinje"-synkroniseringsobjekter er blevet tilføjet til DRM API og amdgpu-driveren, så du kan undvære klassisk blokering.
    • Vboxvideo-driveren til VirtualBox virtuelle GPU er blevet flyttet fra iscenesættelsesgrenen til hovedstrukturen;
    • Tilføjet aspeed-driver til GFX SoC ASPEED-chip;
    • Tilføjet understøttelse af ARM SoC og Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, ,Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi) ) boards 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 Latin American Free Software Foundation dannet
вариант helt gratis kerne 5.2Linux-fri 5.2-gnu, renset for firmware- og driverelementer, der indeholder ikke-frie komponenter eller kodesektioner, hvis omfang er begrænset af producenten. Ny udgivelse inkluderer filupload
Lyd Åbn firmware. Indlæsning af blobs i drivere er deaktiveret
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp og ucsi_ccg. Blob-rensningskoden i ixp4xx, imx-sdma, amdgpu, nouveau og goya drivere og undersystemer samt i mikrokodedokumentationen er blevet opdateret. Stoppet med at rense klatter i r8822be-driveren på grund af dens fjernelse.

Kilde: opennet.ru

Tilføj en kommentar