Linux kernvrystelling 5.2

Na twee maande van ontwikkeling, Linus Torvalds voorgelê kern vrystelling Linux 5.2. Onder die opvallendste veranderinge: Ext4-bedryfsmodus is hoofletter-onsensitief, afsonderlike stelseloproepe om die lêerstelsel te monteer, drywers vir GPU Mali 4xx/ 6xx/7xx, die vermoë om veranderinge in sysctl-waardes in BPF-programme te hanteer, toestelkaarter module dm-stof, beskerming teen aanvalle MDS, ondersteuning vir Sound Open Firmware vir DSP, optimalisering van BFQ werkverrigting, wat die PSI (Pressure Stall Information) substelsel tot die moontlikheid van gebruik in Android bring.

Die nuwe weergawe bevat 15100 1882 regstellings van XNUMX XNUMX ontwikkelaars,
pleistergrootte - 62 MB (veranderinge het 30889 lêers geraak, 625094 reëls kode is bygevoeg, 531864 reëls is uitgevee). Ongeveer 45% van almal aangebied in 5.2
veranderinge hou verband met toestelbestuurders, ongeveer 21% van veranderinge is
houding teenoor die opdatering van kode spesifiek vir hardeware-argitekture, 12%
wat verband hou met die netwerkstapel, 3% met lêerstelsels en 3% met interne
kern substelsels. 12.4% van alle veranderinge is deur Intel voorberei, 6.3% deur Red Hat, 5.4% deur Google, 4.0% deur AMD, 3.1% deur SUSE, 3% deur IBM, 2.7% deur Huawei, 2.7% deur Linaro, 2.2% deur ARM , 1.6 % - Oracle.

Die belangrikste innovasies:

  • Skyfsubstelsel, I/O en lêerstelsels
    • Bygevoeg vir Ext4 ondersteun werk sonder om die geval van karakters in lêername te onderskei, wat slegs geaktiveer word in verhouding tot individuele leë dopgehou met behulp van die nuwe kenmerk "+F" (EXT4_CASEFOLD_FL). Wanneer hierdie kenmerk op 'n gids gestel is, sal alle bewerkings met lêers en subgidse binne uitgevoer word sonder om die hoofletters van karakters in ag te neem, insluitend die hoofletters sal geïgnoreer word wanneer lêers gesoek en oopgemaak word (byvoorbeeld die lêers Test.txt, test.txt en test.TXT in sulke gidse sal dieselfde beskou word). By verstek bly die lêerstelsel hooflettergevoelig, met die uitsondering van gidse met die "chattr +F"-kenmerk;
    • Funksies vir die verwerking van UTF-8 karakters in lêername, wat gebruik word wanneer string vergelyking en normalisering bewerkings uitgevoer word, is verenig;
    • XFS voeg infrastruktuur by vir lêerstelselgesondheidsmonitering en 'n nuwe ioctl vir navrae oor gesondheidstatus. 'n Eksperimentele kenmerk is geïmplementeer om superbloktellers aanlyn na te gaan.
    • Bygevoeg nuwe module toestel-kaarter "dm-stof“, wat jou toelaat om die voorkoms van slegte blokke op die media of foute te simuleer wanneer jy vanaf skyf lees. Die module laat jou toe om ontfouting en toetsing van toepassings en verskeie bergingstelsels te vereenvoudig in die lig van moontlike mislukkings;
    • Uitgevoer Beduidende prestasie-optimalisasies vir die BFQ I/O-skeduleerder. In toestande van hoë I/O-lading is optimerings gemaak toelaat Verminder die tyd van bedrywighede soos die bekendstelling van toepassings met tot 80%.
    • Het 'n reeks stelseloproepe bygevoeg om lêerstelsels te monteer: fsopen(), oop_boom(), fspick(), fsmount(), fsconfig() и move_mount(). Hierdie stelseloproepe laat jou toe om verskillende fases van montering afsonderlik te verwerk (verwerk die superblok, kry inligting oor die lêerstelsel, monteer, heg aan die monteerpunt), wat voorheen uitgevoer is met die algemene mount()-stelseloproep. Afsonderlike oproepe bied die vermoë om meer komplekse monteer-scenario's uit te voer en afsonderlike bewerkings uit te voer, soos om die superblok te herkonfigureer, opsies te aktiveer, die monteerpunt te verander en na 'n ander naamruimte te skuif. Daarbenewens laat aparte verwerking jou toe om die redes vir die uitvoer van foutkodes akkuraat te bepaal en verskeie bronne vir meerlaaglêerstelsels in te stel, soos oorlegsels;
    • 'n Nuwe bewerking IORING_OP_SYNC_FILE_RANGE is by die koppelvlak gevoeg vir asinchroniese I/O io_uring, wat aksies uitvoer wat gelykstaande is aan 'n stelseloproep sync_file_range(), en het ook die vermoë geïmplementeer om eventfd met io_uring te registreer en kennisgewings te ontvang oor die voltooiing van bedrywighede;
    • Vir die CIFS-lêerstelsel is die FIEMAP ioctl bygevoeg, wat doeltreffende omvangkartering verskaf, sowel as ondersteuning vir die SEEK_DATA- en SEEK_HOLE-modusse;
    • In die FUSE-substelsel voorgestelde API vir die bestuur van datakas;
    • Btrfs het die qgroups-implementering geoptimaliseer en fsync-uitvoerspoed verbeter vir lêers met veelvuldige harde skakels. Die data-integriteitkontrolekode is verbeter, wat nou moontlike skade aan inligting in RAM in ag neem voordat data na skyf gespoel word;
    • CEPH het ondersteuning bygevoeg vir die uitvoer van foto's via NFS;
    • Die implementering van NFSv4-montering in "sagte" modus is verbeter (as 'n fout voorkom met toegang tot die bediener in "sagte" modus, 'n oproep na onmiddellik 'n foutkode terugstuur, en in "harde" modus word beheer nie gegee totdat die FS beskikbaarheid of uitteltyd is herstel). Die nuwe vrystelling bied meer akkurate time-out hantering, vinniger ongeluk herstel, en 'n nuwe "sagterr" berg opsie wat jou toelaat om die fout kode (ETIMEDOUT) te verander wanneer 'n time-out plaasvind;
    • Die nfsdcld API, wat ontwerp is om die toestand van NFS-kliënte na te spoor, laat die NFS-bediener toe om die toestand van die kliënt korrek na te spoor wanneer dit herlaai word. Dus, die nfsdcld-demoon kan nou as 'n nfsdcl-spoorhanteerder optree;
    • Vir AFS bygevoeg emulasie van greepreeksslotte in lêers (Byte Range Locking);
  • Virtualisering en sekuriteit
    • Werk is gedoen om plekke in die kern uit te skakel wat kode-uitvoering vanaf skryfbare gereflekteerde geheue-areas moontlik maak, wat dit moontlik maak om potensiële gate te blokkeer wat tydens 'n aanval uitgebuit kan word;
    • 'n Nuwe kern-opdragreëlparameter "mitigations=" is bygevoeg, wat 'n vereenvoudigde manier bied om die aktivering van sekere tegnieke te beheer om te beskerm teen kwesbaarhede wat verband hou met spekulatiewe uitvoering van instruksies op die SVE. Deur "mitigations=off" deur te gee, deaktiveer alle bestaande metodes, en die verstekmodus "mitigations=outo" aktiveer beskerming, maar beïnvloed nie die gebruik van Hyper Threading nie. Die "mitigations=auto,nosmt"-modus deaktiveer ook Hyper Threading indien nodig deur die beskermingsmetode.
    • Bygevoeg ondersteuning vir elektroniese digitale handtekening volgens GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), ontwikkel Vitaly Chikunov van Basalt SPO. Bygevoeg ondersteuning vir AES128-CCM by die inheemse TLS implementering. Ondersteuning vir AEAD-algoritmes by die crypto_simd-module gevoeg;
    • In Kconfig bygevoeg 'n aparte "pitverharding"-afdeling met opsies om kernbeskerming te verbeter. Tans bevat die nuwe afdeling slegs instellings vir die aktivering van GCC-kontroleverbetering-inproppe;
    • Die kernkode is amper afgelewer van onbreekbare saakstellings in skakelaar (sonder terugkeer of breek na elke gevalblok). Dit bly om 32 uit 2311 gevalle van sulke gebruik van skakelaar reg te stel, waarna dit moontlik sal wees om die "-Wimplicit-fallthrough"-modus te gebruik wanneer die kern gebou word;
    • Vir die PowerPC-argitektuur is ondersteuning vir hardewaremeganismes vir die beperking van ongewenste kerntoegangspaaie na data in gebruikersruimte geïmplementeer;
    • Bygevoeg blokkeerkode aanvalle MDS (Microarchitectural Data Sampling) klas in Intel verwerkers. U kan kyk of 'n stelsel kwesbaar is vir kwesbaarhede deur die SysFS-veranderlike "/sys/devices/system/cpu/vulnerabilities/mds". Beskikbaar twee beskermingsmodusse: vol, wat opgedateerde mikrokode vereis, en omseil, wat nie heeltemal die skoonmaak van SVE-buffers waarborg wanneer beheer na gebruikersruimte of die gasstelsel oorgedra word nie. Om beskermingsmodusse te beheer, is die “mds=” parameter by die kern gevoeg, wat die waardes “full”, “full,nosmt” (+ deaktiveer Hyper-Threads) en “off” kan neem;
    • Op x86-64-stelsels is "stack guard-page"-beskerming bygevoeg vir IRQ, ontfoutingsmeganismes en uitsonderingshanteerders, waarvan die essensie die vervanging van geheuebladsye aan die grens met die stapel is, wat toegang tot die generering van 'n uitsondering (bladsyfout);
    • Bygevoeg sysctl-instelling vm.unprivileged_userfaultfd, wat die vermoë van onbevoorregte prosesse beheer om die userfaultfd()-stelseloproep te gebruik;
  • Netwerk substelsel
    • Bygevoeg IPv6-poortondersteuning vir IPv4-roetes. Byvoorbeeld, jy kan nou roetereëls spesifiseer soos "ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0";
    • Vir ICMPv6 word ioctl-oproepe icmp_echo_ignore_anycast en icmp_echo_ignore_multicast geïmplementeer om ICMP ECHO vir anycast en te ignoreer
      multicast-adresse. Bygevoeg die vermoë om die intensiteit van ICMPv6-pakketverwerking te beperk;

    • Vir die BATMAN (Better Approach To Mobile Adhoc Networking) mesh-protokol, wat die skepping van gedesentraliseerde netwerke toelaat waarin elke nodus deur naburige nodusse verbind is, bygevoeg ondersteuning vir uitsaai van multicast na unicast, sowel as die vermoë om via sysfs te beheer;
    • In ettool bygevoeg 'n nuwe Fast Link Down parameter, wat jou toelaat om die tyd wat dit neem om inligting te ontvang oor 'n skakel down gebeurtenis vir 1000BaseT te verminder (onder normale omstandighede is die vertraging tot 750ms);
    • Verskyn geleentheid binding van Foo-Over-UDP-tonnels aan 'n spesifieke adres, netwerkkoppelvlak of -sok (voorheen is binding slegs deur 'n algemene masker gedoen);
    • In die draadlose stapel beveilig moontlikheid om hanteerders te implementeer
      OWE (Opportunistic Wireless Encryption) in gebruikersruimte;

    • In Netfilter is ondersteuning vir die inet-adresfamilie by nat-kettings gevoeg (jy kan byvoorbeeld nou een vertaalreël gebruik om ipv4 en ipv6 te verwerk, sonder om die reëls vir ipv4 en ipv6 te skei);
    • In netlink bygevoeg af streng vir streng verifikasie van die korrektheid van alle boodskappe en eienskappe, waarin die verwagte grootte van eienskappe nie toegelaat word om oorskry te word nie en die byvoeging van bykomende data aan die einde van boodskappe verbied word;
  • Geheue en stelseldienste
    • Die CLONE_PIDFD-vlag is by die clone()-stelseloproep gevoeg, wanneer gespesifiseer, word die lêerbeskrywer "pidfd" wat met die geskepte kindproses geïdentifiseer is, teruggestuur na die ouerproses. Hierdie lêerbeskrywer kan byvoorbeeld gebruik word om seine te stuur sonder om bang te wees om in 'n wedlooptoestand te loop (onmiddellik nadat die sein gestuur is, kan die teiken-PID vrygestel word as gevolg van prosesbeëindiging en deur 'n ander proses beset word);
    • Vir die tweede weergawe van cgroups is die vrieskasbeheerderfunksionaliteit bygevoeg, waarmee u werk in 'n cgroup kan stop en sommige hulpbronne (CPU, I/O, en moontlik selfs geheue) tydelik kan vrymaak om ander take uit te voer. Bestuur word gedoen deur die cgroup.freeze en cgroup.events beheer lêers in die cgroup boom. Inskrywing 1 in cgroup.freeze vries prosesse in die huidige cgroup en alle kindergroepe. Aangesien bevriesing 'n geruime tyd neem, word 'n bykomende cgroup.events-lêer verskaf waardeur jy kan uitvind oor die voltooiing van die operasie;
    • Beveilig uitvoer van geheue-kenmerke wat aan elke nodus in sysfs geheg is, wat jou in staat stel om vanuit gebruikersruimte die aard van die verwerking van geheuebanke in stelsels met heterogene geheue te bepaal;
    • Die PSI (Pressure Stall Information) substelsel is verbeter, wat jou toelaat om inligting oor die wagtyd vir die ontvangs van verskeie hulpbronne (CPU, geheue, I/O) vir sekere take of stelle prosesse in 'n cgroup te ontleed. Deur PSI te gebruik, kan gebruikersspasie-hanteerders die vlak van stelsellading en verlangsamingpatrone meer akkuraat skat in vergelyking met ladingsgemiddelde. Die nuwe weergawe bied ondersteuning vir die stel van sensitiwiteitsdrempels en die vermoë om die poll()-oproep te gebruik om kennisgewing te ontvang dat die gestelde drempels vir 'n sekere tydperk geaktiveer is. Hierdie kenmerk laat Android toe om geheuetekorte op 'n vroeë stadium te monitor, die bron van probleme te identifiseer en onbelangrike toepassings te beëindig sonder om probleme te veroorsaak wat vir die gebruiker opvallend is. Wanneer strestoetsing, PSI-gebaseerde geheueverbruik monitering gereedskap gedemonstreer 10 keer minder vals positiewe in vergelyking met vmpressure statistieke;
    • Die kode vir die nagaan van BPF-programme is geoptimaliseer, wat dit moontlik maak om tot 20 keer vinniger na te gaan vir groot programme. Optimalisering het dit moontlik gemaak om die limiet op die grootte van BPF-programme van 4096 tot 'n miljoen instruksies te verhoog;
    • Vir BPF-programme verskaf die vermoë om toegang tot globale data te verkry, wat jou toelaat om globale veranderlikes en konstantes in programme te definieer;
    • Bygevoeg API, waarmee u veranderinge in sysctl-parameters vanaf BPF-programme kan beheer;
    • Vir die MIPS32-argitektuur is 'n JIT-samesteller vir die eBPF virtuele masjien geïmplementeer;
    • Vir die 32-bis PowerPC-argitektuur is ondersteuning vir die KASan (Kernel address sanitizer) ontfoutingsinstrument bygevoeg, wat help om foute te identifiseer wanneer met geheue gewerk word;
    • Op x86-64-stelsels is die beperking op die plasing van staatstortings tydens 'n kernongeluk (crash-dump) in geheueareas bo 896MB verwyder;
    • Vir die s390-argitektuur word ondersteuning vir kernadresruimte-randomisering (KASLR) en die vermoë om digitale handtekeninge te verifieer wanneer die kern gelaai word via kexec_file_load() geïmplementeer;
    • Vir die PA-RISC argitektuur, bygevoeg ondersteuning vir die kern ontfouter (KGDB), spring merke en kprobes;
  • Оборудование
    • Bestuurder ingesluit Lima vir die Mali 400/450 GPU, gebruik in baie ouer skyfies gebaseer op die ARM-argitektuur. Vir nuwer Mali GPU's is die Panfrost-bestuurder bygevoeg, wat skyfies ondersteun gebaseer op Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) en Bifrost (Mali G3x, G5x, G7x) mikroargitekture;
    • Bygevoeg ondersteuning vir oudio-toestelle wat oop firmware gebruik Klank oop firmware (SOF). Ten spyte van die beskikbaarheid van oop drywers, het die firmwarekode vir klankskyfies steeds gesluit gebly en is dit in binêre vorm verskaf. Die Sound Open Firmware-projek is deur Intel ontwikkel om oop firmware vir DSP-skyfies te skep wat met klankverwerking verband hou (Google het later ook by die ontwikkeling aangesluit). Tans het die projek reeds die ontdekking van firmware vir klankskyfies van die Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake en IceLake platforms voorberei;
    • Intel DRM-bestuurder (i915) voeg ondersteuning vir skyfies by
      Elkhartlake (Gen11). Bygevoeg PCI ID's vir Comet Lake (Gen9) skyfies. Ondersteuning vir Icelake-skyfies is gestabiliseer, waarvoor bykomende PCI-toestelidentifiseerders ook bygevoeg is.
      Aangeskakel
      modus van asynchrone omskakeling tussen twee buffers in videogeheue (async flip) wanneer skryfbewerkings via mmio uitgevoer word, wat die werkverrigting van sommige 3D-toepassings aansienlik verhoog het (byvoorbeeld, werkverrigting in die 3DMark Ice Storm-toets het met 300-400% toegeneem). Tegnologie-ondersteuning bygevoeg HDCP 2.2 (Digitale inhoudbeskerming met hoë bandwydte) vir die enkripteer van videoseine wat via HDMI oorgedra word;

    • Die amdgpu-bestuurder vir Vega20 GPU bygevoeg ondersteuning vir RAS (Reliability, Availability, Serviceability) en eksperimentele ondersteuning vir die SMU 11-substelsel, wat Powerplay-tegnologie vervang het. Vir GPU Vega12 bygevoeg ondersteuning vir BACO-modus (Bus Active, Chip Off). Bygevoeg aanvanklike ondersteuning vir XGMI, 'n hoë-spoed bus (PCIe 4.0) vir GPU interkonneksie. Bygevoeg ontbrekende identifiseerders vir kaarte gebaseer op Polaris10 GPU by die amdkfd bestuurder;
    • Die Nouveau-bestuurder het ondersteuning bygevoeg vir borde gebaseer op die NVIDIA Turing 117-skyfiestel (TU117, gebruik in die GeForce GTX 1650). IN
      kconfig bygevoeg instelling om verouderde funksies te deaktiveer wat nie meer in huidige vrystellings van libdrm gebruik word nie;

    • Ondersteuning vir "tydlyn"-sinchronisasie-voorwerpe is by die DRM API en die amdgpu-bestuurder gevoeg, wat jou toelaat om sonder klassieke blokkering klaar te kom.
    • Die vboxvideo-drywer vir die VirtualBox virtuele GPU is van die staging-tak na die hoofstruktuur geskuif;
    • Bygevoeg aspeed bestuurder vir GFX SoC ASPEED chip;
    • Bygevoeg ondersteuning vir 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) ) borde RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
      ST Mikro (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).

Terselfdertyd, die Latyns-Amerikaanse Free Software Foundation gevorm
opsie heeltemal gratis kern 5.2 - Linux-vrye 5.2-gnu, skoongemaak van firmware en bestuurderelemente wat nie-vrye komponente of kodeafdelings bevat, waarvan die omvang deur die vervaardiger beperk word. Nuwe vrystelling sluit lêeroplaai in
Klank oop fermware. Laai van blobs in drywers is gedeaktiveer
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp en ucsi_ccg. Die blob-skoonmaakkode in die ixp4xx-, imx-sdma-, amdgpu-, nouveau- en goya-drywers en substelsels, sowel as in die mikrokode-dokumentasie, is opgedateer. Het opgehou om knoppies in die r8822be-bestuurder skoon te maak weens die verwydering daarvan.

Bron: opennet.ru

Voeg 'n opmerking