Linux 5.2 kernel-release

Na twee maanden ontwikkeling, Linus Torvalds ingediend kernel-release Linux 5.2. Een van de meest opvallende veranderingen: de Ext4-bedieningsmodus is hoofdletterongevoelig, afzonderlijke systeemoproepen voor het koppelen van het bestandssysteem, stuurprogramma's voor GPU Mali 4xx/6xx/7xx, de mogelijkheid om wijzigingen in sysctl-waarden in BPF-programma's af te handelen, device-mapper module dm-dust, bescherming tegen aanvallen MDS, ondersteuning voor Sound Open Firmware voor DSP, optimalisatie van BFQ-prestaties, waardoor het PSI-subsysteem (Pressure Stall Information) mogelijk wordt gebruikt in Android.

De nieuwe versie bevat 15100 oplossingen van 1882 ontwikkelaars,
patchgrootte - 62 MB (de wijzigingen hadden betrekking op 30889 bestanden, 625094 regels code zijn toegevoegd, 531864 regels zijn verwijderd). Ongeveer 45% van alle gepresenteerd in 5.2
wijzigingen hebben betrekking op apparaatstuurprogramma's; bij ongeveer 21% van de wijzigingen is dit het geval
houding ten opzichte van het updaten van code die specifiek is voor hardware-architecturen, 12%
gerelateerd aan de netwerkstack, 3% aan bestandssystemen en 3% aan intern
kernel-subsystemen. 12.4% van alle wijzigingen werd voorbereid door Intel, 6.3% door Red Hat, 5.4% door Google, 4.0% door AMD, 3.1% door SUSE, 3% door IBM, 2.7% door Huawei, 2.7% door Linaro, 2.2% door ARM , 1.6% - Orakel.

De belangrijkste innovaties:

  • Schijfsubsysteem, I/O en bestandssystemen
    • Toegevoegd voor Ext4 ondersteunen werken zonder onderscheid te maken tussen hoofdletters en kleine letters in bestandsnamen, wat alleen wordt geactiveerd in relatie tot individuele lege mappen met behulp van het nieuwe attribuut “+F” (EXT4_CASEFOLD_FL). Wanneer dit attribuut is ingesteld op een map, worden alle bewerkingen met bestanden en submappen daarin uitgevoerd zonder rekening te houden met het hoofdlettergebruik van tekens, inclusief het hoofdlettergebruik dat wordt genegeerd bij het zoeken en openen van bestanden (bijvoorbeeld de bestanden Test.txt, test.txt en test.TXT in dergelijke mappen worden als hetzelfde beschouwd). Standaard blijft het bestandssysteem hoofdlettergevoelig, met uitzondering van mappen met het attribuut “chattr +F”;
    • Functies voor het verwerken van UTF-8-tekens in bestandsnamen, die worden gebruikt bij het uitvoeren van tekenreeksvergelijkings- en normalisatiebewerkingen, zijn verenigd;
    • XFS voegt infrastructuur toe voor het monitoren van de gezondheid van bestandssystemen en een nieuwe ioctl voor het opvragen van de gezondheidsstatus. Er is een experimentele functie geïmplementeerd om superbloktellers online te controleren.
    • Nieuwe module device-mapper toegevoegd "dm-stof“, waarmee u de verschijning van slechte blokken op de media of fouten bij het lezen vanaf schijf kunt simuleren. Met de module kunt u het debuggen en testen van applicaties en verschillende opslagsystemen vereenvoudigen bij mogelijke storingen;
    • Voerde uit Aanzienlijke prestatie-optimalisaties voor de BFQ I/O-planner. In omstandigheden met hoge I/O-belasting zijn optimalisaties doorgevoerd toestaan Verkort de tijd van handelingen zoals het starten van applicaties met maximaal 80%.
    • Een reeks systeemoproepen toegevoegd voor het mounten van bestandssystemen: fsopen(), open_boom(), fspick(), fsmount(), fsconfig() и verplaats_mount(). Met deze systeemaanroepen kunt u verschillende fasen van het aankoppelen afzonderlijk verwerken (het superblok verwerken, informatie verkrijgen over het bestandssysteem, aankoppelen, koppelen aan het aankoppelpunt), die eerder werden uitgevoerd met behulp van de algemene systeemaanroep mount(). Afzonderlijke oproepen bieden de mogelijkheid om complexere koppelscenario's uit te voeren en afzonderlijke bewerkingen uit te voeren, zoals het opnieuw configureren van het superblok, het inschakelen van opties, het wijzigen van het koppelpunt en het verplaatsen naar een andere naamruimte. Bovendien kunt u met afzonderlijke verwerking nauwkeurig de redenen voor de uitvoer van foutcodes bepalen en meerdere bronnen instellen voor meerlaagse bestandssystemen, zoals overlayfs;
    • Er is een nieuwe bewerking IORING_OP_SYNC_FILE_RANGE toegevoegd aan de interface voor asynchrone I/O io_uring, die acties uitvoert die gelijkwaardig zijn aan een systeemaanroep sync_file_range(), en implementeerde ook de mogelijkheid om eventfd te registreren bij io_uring en meldingen te ontvangen over de voltooiing van bewerkingen;
    • Voor het CIFS-bestandssysteem is de FIEMAP ioctl toegevoegd, die efficiënte omvangtoewijzing biedt, evenals ondersteuning voor de modi SEEK_DATA en SEEK_HOLE;
    • In het FUSE-subsysteem voorgesteld API voor het beheren van datacaching;
    • Btrfs heeft de qgroups-implementatie geoptimaliseerd en de fsync-uitvoeringssnelheid verbeterd voor bestanden met meerdere harde links. De controlecode voor de gegevensintegriteit is verbeterd, waarbij nu rekening wordt gehouden met mogelijke schade aan informatie in het RAM voordat gegevens naar de schijf worden gespoeld;
    • CEPH heeft ondersteuning toegevoegd voor het exporteren van snapshots via NFS;
    • De implementatie van NFSv4-mounting in de “zachte” modus is verbeterd (als er een fout optreedt bij het benaderen van de server in de “zachte” modus, retourneert een oproep om onmiddellijk een foutcode te retourneren, en in de “harde” modus wordt de controle pas gegeven als de FS beschikbaarheid of time-out wordt hersteld). De nieuwe release biedt een nauwkeurigere time-outafhandeling, sneller crashherstel en een nieuwe “zachtere” mount-optie waarmee je de foutcode (ETIMEDOUT) kunt wijzigen die wordt geretourneerd wanneer er een time-out optreedt;
    • De nfsdcld API, ontworpen om de status van NFS-clients te volgen, zorgt ervoor dat de NFS-server de status van de client correct kan volgen bij het opnieuw opstarten. De nfsdcld-daemon kan nu dus fungeren als een nfsdcltrack-handler;
    • Voor AFS toegevoegd emulatie van bytebereikvergrendelingen in bestanden (Bytebereikvergrendeling);
  • Virtualisatie en beveiliging
    • Er is gewerkt aan het elimineren van plaatsen in de kernel waar code kan worden uitgevoerd vanuit beschrijfbare gereflecteerde geheugengebieden, waardoor potentiële gaten kunnen worden geblokkeerd die tijdens een aanval kunnen worden uitgebuit;
    • Er is een nieuwe kernelopdrachtregelparameter "mitigations=" toegevoegd, die een vereenvoudigde manier biedt om de inschakeling van bepaalde technieken te controleren ter bescherming tegen kwetsbaarheden die verband houden met speculatieve uitvoering van instructies op de CPU. Als u "mitigations=off" doorgeeft, worden alle bestaande methoden uitgeschakeld, en de standaardmodus "mitigations=auto" schakelt bescherming in, maar heeft geen invloed op het gebruik van Hyper Threading. De modus “mitigations=auto,nosmt” schakelt bovendien Hyper Threading uit, indien vereist door de beveiligingsmethode.
    • Toegevoegd ondersteuning voor elektronische digitale handtekening volgens GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), ontwikkeld Vitaly Chikunov van Basalt SPO. Ondersteuning voor AES128-CCM toegevoegd aan de native TLS-implementatie. Ondersteuning voor AEAD-algoritmen toegevoegd aan de crypto_simd-module;
    • In Kconfig toegevoegd een aparte sectie “kernelverharding” met opties om de kernelbescherming te verbeteren. Momenteel bevat de nieuwe sectie alleen instellingen voor het inschakelen van GCC-controleverbeterende plug-ins;
    • De kernelcode is bijna afgeleverd van niet-afbrekende case-instructies in switch (zonder return of break na elk case-blok). Er moeten nog 32 van de 2311 gevallen van een dergelijk gebruik van de switch worden opgelost, waarna het mogelijk zal zijn om de “-Wimplicit-fallthrough” -modus te gebruiken bij het bouwen van de kernel;
    • Voor de PowerPC-architectuur is ondersteuning geïmplementeerd voor hardwaremechanismen voor het beperken van ongewenste kerneltoegangspaden tot gegevens in de gebruikersruimte;
    • Blokkeercode toegevoegd aanvallen MDS-klasse (Microarchitectural Data Sampling) in Intel-processors. Via de SysFS-variabele “/sys/devices/system/cpu/vulnerabilities/mds” kunt u controleren of een systeem kwetsbaar is voor kwetsbaarheden. Доступно twee beveiligingsmodi: volledig, waarvoor bijgewerkte microcode vereist is, en bypass, die het wissen van CPU-buffers niet volledig garandeert wanneer de controle wordt overgedragen naar de gebruikersruimte of het gastsysteem. Om de beveiligingsmodi te controleren, is de parameter “mds=” aan de kernel toegevoegd, die de waarden “full”, “full,nosmt” (+ Hyper-Threads uitschakelen) en “off” kan aannemen;
    • Op x86-64-systemen is ‘stack guard-page’-bescherming toegevoegd voor IRQ, debugging-mechanismen en uitzonderingshandlers, waarvan de essentie de vervanging is van geheugenpagina’s aan de grens met de stapel, waardoor de toegang leidt tot het genereren van een uitzondering (paginafout);
    • Sysctl-instelling vm.unprivileged_userfaultfd toegevoegd, die de mogelijkheid regelt van niet-geprivilegieerde processen om de userfaultfd() systeemaanroep te gebruiken;
  • Netwerksubsysteem
    • Toegevoegd IPv6-gatewayondersteuning voor IPv4-routes. U kunt nu bijvoorbeeld routeringsregels opgeven zoals “ipro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0”;
    • Voor ICMPv6 worden ioctl-aanroepen icmp_echo_ignore_anycast en icmp_echo_ignore_multicast geïmplementeerd om ICMP ECHO voor anycast te negeren en
      multicast-adressen. Toegevoegd de mogelijkheid om de intensiteit van ICMPv6-pakketverwerking te beperken;

    • Voor het BATMAN-mesh-protocol (Better Approach To Mobile Adhoc Networking), dat de creatie van gedecentraliseerde netwerken mogelijk maakt waarin elk knooppunt is verbonden via aangrenzende knooppunten, toegevoegd ondersteuning voor uitzending van multicast naar unicast, evenals de mogelijkheid om te besturen via sysfs;
    • In ethtool toegevoegd een nieuwe Fast Link Down-parameter, waarmee u de tijd kunt verkorten die nodig is om informatie te ontvangen over een link-down-gebeurtenis voor 1000BaseT (onder normale omstandigheden bedraagt ​​de vertraging maximaal 750 ms);
    • verschenen kans Foo-Over-UDP-tunnels binden aan een specifiek adres, netwerkinterface of socket (voorheen werd binding alleen gedaan door een gemeenschappelijk masker);
    • In de draadloze stapel beveiligd mogelijkheid om handlers te implementeren
      OWE (Opportunistic Wireless Encryption) in gebruikersruimte;

    • In Netfilter is ondersteuning voor de inet-adresfamilie toegevoegd aan nat-ketens (u kunt nu bijvoorbeeld één vertaalregel gebruiken om ipv4 en ipv6 te verwerken, zonder de regels voor ipv4 en ipv6 te scheiden);
    • In netlink toegevoegd het regime strikt voor strikte verificatie van de juistheid van alle berichten en attributen, waarbij de verwachte grootte van attributen niet mag worden overschreden en het toevoegen van aanvullende gegevens aan het einde van berichten verboden is;
  • Geheugen- en systeemservices
    • De CLONE_PIDFD-vlag is toegevoegd aan de clone()-systeemaanroep. Indien gespecificeerd, wordt de bestandsdescriptor “pidfd” geïdentificeerd met het gemaakte onderliggende proces teruggestuurd naar het bovenliggende proces. Deze bestandsdescriptor kan bijvoorbeeld worden gebruikt om signalen te verzenden zonder bang te hoeven zijn dat u in een race-conditie terechtkomt (onmiddellijk na het verzenden van het signaal kan de doel-PID worden vrijgegeven vanwege procesbeëindiging en bezet door een ander proces);
    • Voor de tweede versie van cgroups is de vriezercontrollerfunctionaliteit toegevoegd, waarmee je het werk in een cgroup kunt stoppen en tijdelijk wat bronnen (CPU, I/O en mogelijk zelfs geheugen) kunt vrijmaken om andere taken uit te voeren. Het beheer wordt uitgevoerd via de controlebestanden cgroup.freeze en cgroup.events in de cgroup-boom. Invoer 1 in cgroup.freeze bevriest processen in de huidige cgroup en alle onderliggende groepen. Omdat het bevriezen enige tijd in beslag neemt, is er een extra bestand cgroup.events beschikbaar waarmee u kunt zien of de bewerking is voltooid;
    • Beveiligd export van geheugenattributen die aan elk knooppunt in sysfs zijn gekoppeld, waardoor u vanuit de gebruikersruimte de aard van de verwerking van geheugenbanken in systemen met heterogeen geheugen kunt bepalen;
    • Het PSI-subsysteem (Pressure Stall Information) is verbeterd, waardoor u informatie kunt analyseren over de wachttijd voor het ontvangen van verschillende bronnen (CPU, geheugen, I/O) voor bepaalde taken of reeksen processen in een cgroup. Met behulp van PSI kunnen gebruikersruimtehandlers het niveau van systeembelasting en vertragingspatronen nauwkeuriger schatten in vergelijking met Load Average. De nieuwe versie biedt ondersteuning voor het instellen van gevoeligheidsdrempels en de mogelijkheid om de poll()-aanroep te gebruiken om een ​​melding te ontvangen dat de ingestelde drempels gedurende een bepaalde periode zijn geactiveerd. Met deze functie kan Android geheugentekorten in een vroeg stadium monitoren, de oorzaak van problemen identificeren en onbelangrijke applicaties beëindigen zonder problemen te veroorzaken die merkbaar zijn voor de gebruiker. Bij stresstests lieten op PSI gebaseerde tools voor het monitoren van het geheugenverbruik tien keer minder valse positieven zien vergeleken met vmpressie-statistieken;
    • De code voor het controleren van BPF-programma's is geoptimaliseerd, waardoor het controleren van grote programma's tot 20 keer sneller mogelijk is. Optimalisatie maakte het mogelijk om de limiet voor de omvang van BPF-programma's te verhogen van 4096 naar een miljoen instructies;
    • Voor BPF-programma's toegekend de mogelijkheid om toegang te krijgen tot globale gegevens, waardoor u globale variabelen en constanten in programma's kunt definiëren;
    • toegevoegd API, waarmee u wijzigingen in sysctl-parameters vanuit BPF-programma's kunt beheren;
    • Voor de MIPS32-architectuur is een JIT-compiler voor de virtuele eBPF-machine geïmplementeerd;
    • Voor de 32-bits PowerPC-architectuur is ondersteuning voor de KASan-foutopsporingstool (Kernel Address Sanitizer) toegevoegd, die helpt bij het identificeren van fouten bij het werken met geheugen;
    • Op x86-64-systemen is de beperking op het plaatsen van statusdumps tijdens een kernelcrash (crash-dump) in geheugengebieden boven 896 MB verwijderd;
    • Voor de s390-architectuur is ondersteuning voor kerneladresruimterandomisatie (KASLR) en de mogelijkheid om digitale handtekeningen te verifiëren bij het laden van de kernel via kexec_file_load() geïmplementeerd;
    • Voor de PA-RISC-architectuur is ondersteuning toegevoegd voor de kernel-debugger (KGDB), sprongmarkeringen en kprobes;
  • Uitrusting
    • Bestuurder inbegrepen Lima voor de Mali 400/450 GPU, gebruikt in veel oudere chips gebaseerd op de ARM-architectuur. Voor nieuwere Mali GPU's is de Panfrost-driver toegevoegd, die chips ondersteunt op basis van Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) en Bifrost (Mali G3x, G5x, G7x) microarchitecturen;
    • Ondersteuning toegevoegd voor audioapparaten die open firmware gebruiken Geluid Open Firmware (SOF). Ondanks de beschikbaarheid van open drivers bleef de firmwarecode voor geluidschips nog steeds gesloten en werd deze in binaire vorm aangeleverd. Het Sound Open Firmware-project is door Intel ontwikkeld om open firmware te creëren voor DSP-chips gerelateerd aan audioverwerking (Google sloot zich later ook aan bij de ontwikkeling). Momenteel heeft het project de ontdekking van firmware voor geluidschips van de Intel Baytrail-, CherryTrail-, Broadwell-, ApolloLake-, GeminiLake-, CannonLake- en IceLake-platforms al voorbereid;
    • Intel DRM-stuurprogramma (i915) voegt ondersteuning voor chips toe
      Elkhartlake (generatie 11). PCI-ID's toegevoegd voor Comet Lake (Gen9)-chips. Ondersteuning voor Icelake-chips is gestabiliseerd, waarvoor ook extra PCI-apparaat-ID's zijn toegevoegd.
      Inbegrepen
      modus van asynchroon schakelen tussen twee buffers in videogeheugen (async flip) bij het uitvoeren van schrijfbewerkingen via mmio, waardoor de prestaties van sommige 3D-applicaties aanzienlijk verbeterden (de prestaties in de 3DMark Ice Storm-test namen bijvoorbeeld toe met 300-400%). Technologieondersteuning toegevoegd HDCP2.2 (High-bandwidth Digital Content Protection) voor het coderen van videosignalen verzonden via HDMI;

    • Het amdgpu-stuurprogramma voor Vega20 GPU toegevoegd ondersteuning voor RAS (Reliability, Availability, Serviceability) en experimentele ondersteuning voor het SMU 11-subsysteem, dat de Powerplay-technologie verving. Voor GPU Vega12 toegevoegd ondersteuning voor BACO-modus (Bus Actief, Chip Uit). Initiële ondersteuning toegevoegd voor XGMI, een hogesnelheidsbus (PCIe 4.0) voor GPU-interconnectie. Ontbrekende identificatiegegevens voor kaarten op basis van Polaris10 GPU toegevoegd aan het amdkfd-stuurprogramma;
    • De Nouveau-driver heeft ondersteuning toegevoegd voor kaarten gebaseerd op de NVIDIA Turing 117-chipset (TU117, gebruikt in de GeForce GTX 1650). IN
      kconfig toegevoegd instelling om verouderde functies uit te schakelen die niet langer worden gebruikt in de huidige releases van libdrm;

    • Ondersteuning voor “tijdlijn”-synchronisatieobjecten is toegevoegd aan de DRM API en het amdgpu-stuurprogramma, waardoor u het zonder klassieke blokkering kunt stellen.
    • Het vboxvideo-stuurprogramma voor de VirtualBox virtuele GPU is verplaatst van de staging-branch naar de hoofdstructuur;
    • Een speed-driver toegevoegd voor GFX SoC ASPEED-chip;
    • Ondersteuning toegevoegd voor ARM SoC en Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi ) borden 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).

Tegelijkertijd de Latin American Free Software Foundation gevormd
вариант volledig gratis kernel 5.2 - Linux-libre 5.2-gnu, ontdaan van firmware- en driverelementen die niet-vrije componenten of codesecties bevatten, waarvan de reikwijdte wordt beperkt door de fabrikant. Nieuwe release omvat het uploaden van bestanden
Geluid Open Firmware. Het laden van blobs in stuurprogramma's is uitgeschakeld
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp en ucsi_ccg. De blob-opschooncode in de stuurprogramma's en subsystemen ixp4xx, imx-sdma, amdgpu, nouveau en goya, evenals in de microcodedocumentatie, is bijgewerkt. Gestopt met het opruimen van blobs in het r8822be-stuurprogramma vanwege de verwijdering ervan.

Bron: opennet.ru

Voeg een reactie