Linux kernvrystelling 5.11

Na twee maande se ontwikkeling het Linus Torvalds die vrystelling van die Linux-kern 5.11 aangebied. Van die mees noemenswaardige veranderinge: ondersteuning vir Intel SGX-enklawes, 'n nuwe meganisme om stelseloproepe te onderskep, 'n virtuele hulpbus, 'n verbod op die samestelling van modules sonder MODULE_LICENSE(), 'n vinnige filtermodus vir stelseloproepe in seccomp, beëindiging van ondersteuning vir die ia64-argitektuur, oordrag van WiMAX-tegnologie na die "staging"-tak, die vermoë om SCTP in UDP in te kap.

Die nuwe weergawe bevat 15480 1991 regstellings van 72 12090 ontwikkelaars, die pleistergrootte is 868025 MB (die veranderinge het 261456 46 lêers geraak, 5.11 16 reëls kode is bygevoeg, 13 3 reëls is uitgevee). Ongeveer 4% van alle veranderinge wat in XNUMX aangebring is, hou verband met toestelbestuurders, ongeveer XNUMX% van veranderinge hou verband met die opdatering van kode spesifiek vir hardeware-argitekture, XNUMX% hou verband met die netwerkstapel, XNUMX% hou verband met lêerstelsels en XNUMX% hou verband met interne kernsubstelsels.

Belangrikste innovasies:

  • Skyfsubstelsel, I/O en lêerstelsels
    • Verskeie monteeropsies is by Btrfs gevoeg vir gebruik wanneer data vanaf 'n beskadigde lêerstelsel herstel word: "rescue=ignorebadroots" vir montering, ten spyte van skade aan sommige wortelbome (omvang, uuid, data hervestiging, toestel, csum, vrye spasie), " rescue=ignoredatacsums" om kontrolesom-kontrolering vir data te deaktiveer en "rescue=all" om gelyktydig die 'ignorebadroots', 'ignoredatacsums' en 'nologreplay'-modusse te aktiveer. Die "inode_cache"-monteeropsie, wat voorheen afgekeur is, is gestaak. Die kode is voorberei om ondersteuning te implementeer vir blokke met metadata en data kleiner as 'n bladsygrootte (PAGE_SIZE), sowel as ondersteuning vir gesoneerde spasietoewysingsmodus. Ongebufferde (Direkte IO) versoeke is na die iomap-infrastruktuur geskuif. Die werkverrigting van 'n aantal operasies is geoptimaliseer; in sommige gevalle kan die versnelling tientalle persent bereik.
    • XFS implementeer die "needsrepair"-vlag, wat die behoefte aan herstel aandui. Wanneer hierdie vlag gestel is, kan die lêerstelsel nie gemonteer word totdat die vlag deur die xfs_repair-hulpprogram teruggestel is nie.
    • Ext4 bied slegs foutoplossings en optimaliserings, sowel as kode-opruiming.
    • Heruitvoer van lêerstelsels wat oor NFS gemonteer is, word toegelaat (m.a.w. 'n partisie wat via NFS gemonteer is, kan nou via NFS uitgevoer word en as 'n intermediêre kas gebruik word).
    • Die close_range()-stelseloproep, wat 'n proses toelaat om 'n hele reeks oop lêerbeskrywers gelyktydig toe te maak, het 'n CLOSE_RANGE_CLOEXEC-opsie bygevoeg om beskrywers in close-on-exec-modus te sluit.
    • Die F2FS-lêerstelsel voeg nuwe ioctl()-oproepe by om gebruikersspasiebeheer toe te laat oor watter lêers in saamgeperste vorm gestoor word. Bygevoeg "compress_mode=" mount opsie om te kies of die kompressie hanteerder aan die kern kant of in gebruiker ruimte te plaas.
    • Verskaf die vermoë om Overlays te monteer deur onbevoorregte prosesse met behulp van 'n aparte gebruikernaamruimte. Om voldoening aan die implementering van die sekuriteitsmodel te verifieer, is 'n volledige kode-oudit uitgevoer. Overlayfs voeg ook die vermoë by om met kopieë van lêerstelselbeelde te hardloop deur UUID-kontrolering opsioneel te deaktiveer.
    • Die Ceph-lêerstelsel het ondersteuning bygevoeg vir die msgr2.1-protokol, wat die gebruik van die AES-GCM-algoritme toelaat wanneer data in geënkripteerde vorm oorgedra word.
    • Die dm-multipath-module implementeer die vermoë om SVE-affiniteit (“IO-affiniteit”) in ag te neem wanneer die roete vir I/O-versoeke gekies word.
  • Geheue en stelseldienste
    • 'n Nuwe stelseloproeponderskeppingsmeganisme is bygevoeg, gebaseer op prctl(), wat jou toelaat om uitsonderings uit gebruikersspasie te genereer wanneer jy toegang tot 'n spesifieke stelseloproep verkry en die uitvoering daarvan naboots. Hierdie funksionaliteit word in Wine and Proton vereis om Windows-stelseloproepe na te boots, wat nodig is om versoenbaarheid te verseker met speletjies en programme wat direk stelseloproepe uitvoer wat die Windows API omseil (byvoorbeeld om teen ongemagtigde gebruik te beskerm).
    • Die userfaultfd()-stelseloproep, wat ontwerp is om bladsyfoute (toegang tot ongeallokeerde geheuebladsye) in gebruikersruimte te hanteer, het nou die vermoë om uitsonderingshantering wat op kernvlak voorkom te deaktiveer om dit moeiliker te maak om sekere kwesbaarhede te ontgin.
    • Die BPF-substelsel het ondersteuning bygevoeg vir taak-plaaslike berging, wat databinding aan 'n spesifieke BPF-hanteerder verskaf.
    • Die boekhouding van geheueverbruik deur BPF-programme is heeltemal herontwerp - 'n cgroup-beheerder is voorgestel in plaas van memlock rlimit om geheuegebruik in BPF-voorwerpe te bestuur.
    • Die BTF (BPF Type Format) meganisme, wat tipe kontrole inligting in BPF pseudokode verskaf, bied ondersteuning vir kernmodules.
    • Bygevoeg ondersteuning vir shutdown(), renameat2() en unlinkat()-stelseloproepe na die io_uring asynchrone I/O-koppelvlak. Wanneer io_uring_enter() geroep word, is die vermoë om 'n time-out te spesifiseer bygevoeg (jy kan ondersteuning vir die argument nagaan om 'n time-out te spesifiseer deur die IORING_FEAT_EXT_ARG vlag te gebruik).
    • Die ia64-argitektuur wat in Intel Itanium-verwerkers gebruik word, is na die weeskategorie geskuif, wat beteken dat toetsing gestaak is. Hewlett Packard Enterprise het opgehou om bestellings vir nuwe Itanium-toerusting te aanvaar, en Intel het dit verlede jaar gedoen.
    • Ondersteuning vir stelsels gebaseer op die MicroBlaze-argitektuur wat nie 'n geheuebestuurseenheid (MMU) insluit nie, is gestaak. Sulke stelsels is lanklaas in die alledaagse lewe gesien.
    • Vir die MIPS-argitektuur is ondersteuning vir kodedekkingstoetsing bygevoeg met behulp van die gcov-nutsding.
    • Bygevoeg ondersteuning vir die virtuele hulpbus vir koppelvlak met multifunksietoestelle wat funksionaliteit kombineer wat verskillende drywers vereis (byvoorbeeld netwerkkaarte met Ethernet- en RDMA-ondersteuning). Die bus kan gebruik word om 'n primêre en sekondêre bestuurder aan 'n toestel toe te wys, in situasies waar die gebruik van die MFD (Multi-Function Devices) substelsel problematies is.
    • Vir die RISC-V-argitektuur is ondersteuning bygevoeg vir die CMA (Contiguous Memory Allocator) geheuetoewysingstelsel, wat geoptimaliseer is vir die toekenning van groot aaneenlopende geheueareas deur gebruik te maak van geheuebladsybewegingstegnieke. Vir RISC-V word gereedskap ook geïmplementeer om toegang tot /dev/mem te beperk en onderbrekingsverwerkingstyd in ag te neem.
    • Vir 32-bis ARM-stelsels is ondersteuning bygevoeg vir die KASan (Kernel address sanitizer) ontfoutingsinstrument, wat help om foute te identifiseer wanneer met geheue gewerk word. Vir 64-bis ARM is die KASan-implementering omgeskakel om MTE-etikette (MemTag) te gebruik.
    • Bygevoeg epoll_pwait2 () stelsel oproep om time-outs met nanosekonde akkuraatheid toe te laat (epoll_wait oproep manipuleer millisekondes).
    • Die boustelsel wys nou 'n fout wanneer daar gepoog word om laaibare kernmodules te bou waarin die kodelisensie nie gedefinieer is deur die MODULE_LICENSE() makro te gebruik nie. Van nou af sal die gebruik van die EXPORT_SYMBOL() makro vir statiese funksies ook 'n boufout veroorsaak.
    • Bygevoeg ondersteuning vir die kartering van GEM-voorwerpe uit geheue wat vir I/O gebruik word, wat dit moontlik gemaak het om werk met die raambuffer op sommige argitekture te bespoedig.
    • Kconfig het ondersteuning vir Qt4 laat vaar (terwyl ondersteuning vir Qt5, GTK en Ncurses gehandhaaf word).
  • Virtualisering en sekuriteit
    • Ondersteuning vir 'n vinnige reaksie-modus is by die seccomp()-stelseloproep gevoeg, wat jou toelaat om baie vinnig te bepaal of 'n sekere stelseloproep toegelaat of verbied word op grond van die konstante-aksie bitmap wat aan die proses gekoppel is, wat nie hardloop vereis nie. 'n BPF-hanteerder.
    • Geïntegreerde kernkomponente vir die skep en bestuur van enklawes gebaseer op Intel SGX (Software Guard eXtensions) tegnologie, wat toepassings toelaat om kode uit te voer in geïsoleerde geïnkripteer areas van geheue, waartoe die res van die stelsel beperkte toegang het.
    • As deel van 'n inisiatief om toegang van gebruikersruimte tot die MSR (modelspesifieke register) te beperk, skryf aan die MSR_IA32_ENERGY_PERF_BIAS-register, wat jou toelaat om die verwerker se energiedoeltreffendheidmodus te verander ("normaal", "prestasie", "kragbesparing"). , is verbode.
    • Die vermoë om die migrasie van hoë-prioriteit take tussen SVE's te deaktiveer, is geskuif vanaf die kernel-rt-tak vir intydse stelsels.
    • Vir ARM64-stelsels is die vermoë om MTE-etikette (MemTag, Memory Tagging Extension) te gebruik vir seinhanteerdergeheue-adresse bygevoeg. Die gebruik van MTE word geaktiveer deur die SA_EXPOSE_TAGBITS-opsie in sigaction() te spesifiseer en laat jou toe om die korrekte gebruik van wysers na te gaan om die uitbuiting van kwesbaarhede te blokkeer wat veroorsaak word deur toegang tot reeds vrygemaakte geheueblokke, bufferoorvloei, toegang voor inisialisering en gebruik buite die huidige konteks.
    • Het die "DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING" parameter bygevoeg, wat die dm-verity substelsel toelaat om hash-handtekeninge van sertifikate wat in die sekondêre sleutelring geplaas is, na te gaan. In die praktyk laat die opstelling jou toe om nie net sertifikate wat in die kern ingebou is, te verifieer nie, maar ook sertifikate wat tydens werking gelaai is, wat dit moontlik maak om sertifikate op te dateer sonder om die hele kern op te dateer.
    • Gebruikersmodus Linux het ondersteuning bygevoeg vir suspend-to-idle-modus, wat jou toelaat om die omgewing te vries en die SIGUSR1-sein te gebruik om uit slaapmodus wakker te word.
    • Die virtio-mem-meganisme, wat jou toelaat om geheue aan virtuele masjiene te koppel en te ontkoppel, het ondersteuning bygevoeg vir Big Block Mode (BBM), wat dit moontlik maak om geheue oor te dra of te neem in blokke groter as die grootte van die kerngeheue blok, wat nodig is om VFIO in QEMU te optimaliseer.
    • Ondersteuning vir die CHACHA20-POLY1305-syfer is by die kernimplementering van TLS gevoeg.
  • Netwerk substelsel
    • Vir 802.1Q (VLAN) is 'n verbindingsfoutbestuurmeganisme (CFM, Connectivity Fault Management) geïmplementeer, wat jou toelaat om foute in netwerke met virtuele brûe (Virtual Bridged Networks) te identifiseer, te verifieer en te isoleer. Byvoorbeeld, CFM kan gebruik word om probleme te isoleer in netwerke wat oor verskeie onafhanklike organisasies strek wie se werknemers net toegang tot hul eie toerusting het.
    • Bygevoeg ondersteuning vir die inkapseling van SCTP-protokolpakkette in UDP-pakkies (RFC 6951), wat jou toelaat om SCTP te gebruik op netwerke met ouer adresvertalers wat nie SCTP direk ondersteun nie, asook om SCTP te implementeer op stelsels wat nie direkte toegang tot die IP verskaf nie. laag.
    • Die implementering van WiMAX-tegnologie is geskuif na verhoog en word in die toekoms verwyder as daar geen gebruikers is wat WiMAX benodig nie. WiMAX word nie meer in publieke netwerke gebruik nie, en in die kern is die enigste drywer waarmee WiMAX gebruik kan word die verouderde Intel 2400m drywer. WiMAX-ondersteuning is in 2015 in die NetworkManager-netwerkkonfigureerder gestaak. Tans word WiMax amper heeltemal vervang deur tegnologieë soos LTE, HSPA+ en Wi-Fi 802.11n.
    • Daar is gewerk om die werkverrigting van die verwerking van inkomende TCP-verkeer in zerocopy-modus te optimaliseer, d.w.s. sonder bykomende kopiëring na nuwe buffers. Vir mediumgrootte verkeer, wat tiene of etlike honderde kilogrepe se data dek, is die gebruik van nulkopie in plaas van recvmsg() merkbaar meer effektief. Byvoorbeeld, die geïmplementeerde veranderinge het dit moontlik gemaak om die doeltreffendheid van die verwerking van RPC-styl verkeer met 32 ​​KB boodskappe te verhoog wanneer nulkopie met 60-70% gebruik word.
    • Nuwe ioctl()-oproepe bygevoeg om netwerkbrûe te skep wat oor verskeie PPP-skakels strek. Die voorgestelde vermoë laat rame toe om van een kanaal na 'n ander te beweeg, byvoorbeeld van 'n PPPoE na 'n PPPoL2TP-sessie.
    • Integrasie in die kern van MPTCP (MultiPath TCP), 'n uitbreiding van die TCP-protokol vir die organisering van die werking van 'n TCP-verbinding met die aflewering van pakkies gelyktydig langs verskeie roetes deur verskillende netwerkkoppelvlakke wat met verskillende IP-adresse geassosieer word. Die nuwe vrystelling stel ondersteuning bekend vir die ADD_ADDR-opsie om beskikbare IP-adresse te adverteer waaraan gekoppel kan word wanneer nuwe vloeie by 'n bestaande MPTCP-verbinding gevoeg word.
    • Bygevoeg die vermoë om aksies op te stel wanneer die konneksiepeilingsbegroting oorskry word (besig-peiling). Die voorheen beskikbare SO_BUSY_POLL-modus het beteken om na softirq oor te skakel wanneer die begroting uitgeput was. Vir toepassings wat moet voortgaan om peiling te gebruik, word 'n nuwe opsie SO_PREFER_BUSY_POLL voorgestel.
    • IPv6 implementeer ondersteuning vir SRv6 End.DT4 en End.DT6 modusse, wat gebruik word om multi-gebruiker IPv4 L3 VPN's en VRF (Virtuele roetering en aanstuur) toestelle te skep.
    • Netfilter het die implementering van stel uitdrukkings verenig, wat dit moontlik gemaak het om veelvuldige uitdrukkings vir elke element van stellyste te spesifiseer.
    • API's is by die 802.11 draadlose stapel gevoeg om SAR-kraglimiete op te stel, sowel as AE PWE- en HE MCS-parameters. Die Intel iwlwifi-bestuurder het ondersteuning bygevoeg vir die 6GHz (Ultra High Band) reeks. Die Qualcomm Ath11k-bestuurder het ondersteuning bygevoeg vir FILS (Fast Initial Link Setup, gestandaardiseer as IEEE 802.11ai) tegnologie, wat jou toelaat om ontslae te raak van swerfvertragings tydens migrasie van een toegangspunt na 'n ander.
  • Оборудование
    • Die amdgpu-bestuurder bied ondersteuning vir AMD "Green Sardine" APU (Ryzen 5000) en "Dimgrey Cavefish" GPU (Navi 2), sowel as aanvanklike ondersteuning vir AMD Van Gogh APU met Zen 2-kern en RDNA 2 GPU (Navi 2). Bygevoeg ondersteuning vir nuwe Renoir APU identifiseerders (gebaseer op Zen 2 CPU en Vega GPU).
    • Die i915-bestuurder vir Intel-videokaarte ondersteun IS-tegnologie (Geheelgetalskaal) met die implementering van 'n filter vir die verhoging van die skaal met inagneming van die toestand van naburige pixels (Naaste-buur-interpolasie) om die kleur van ontbrekende pixels te bepaal. Ondersteuning vir diskrete Intel DG1-kaarte is uitgebrei. Ondersteuning vir "Big Joiner" -tegnologie is geïmplementeer, wat reeds sedert Ice Lake / Gen11-skyfies teenwoordig is en die gebruik van een transkodeerder moontlik maak om twee strome te verwerk, byvoorbeeld vir uitset na 'n 8K-skerm via een DisplayPort. Bygevoeg 'n modus vir asynchroniese oorskakeling tussen twee buffers in video geheue (async flip).
    • Die nouveau-bestuurder het aanvanklike ondersteuning bygevoeg vir NVIDIA GPU's gebaseer op die Ampere-mikroargitektuur (GA100, GeForce RTX 30xx), tot dusver beperk tot gereedskap vir die beheer van videomodusse.
    • Bygevoeg ondersteuning vir die 3WIRE-protokol wat in LCD-panele gebruik word. Bygevoeg ondersteuning vir novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 en ABT Y030XX067A 3.0 panele. Afsonderlik kan ons let op die ondersteuning vir die paneel van OnePlus 6 en 6T slimfone, wat dit moontlik gemaak het om die laai van 'n ongewysigde kern op toestelle te organiseer.
    • Bygevoeg ondersteuning vir Intel se eerste diskrete USB4-gasheerbeheerder, Maple Ridge.
    • Bygevoeg ondersteuning vir Allwinner H6 I2S, Analog Devices ADAU1372, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI en XCVR, Realtek RT715 en Qualcomm SM8250 oudio-kodeks.
    • Bygevoegde ondersteuning vir ARM-borde, -toestelle en -platforms: Galaxy Note 10.1, Microsoft Lumia 950 XL, NanoPi R1, FriendlyArm ZeroPi, Elimo Initium SBC, Broadcom BCM4908, Mediatek MT8192/MT6779/MT8167, MStar Invoton2CM, 730​NMvel 382​NPM, 98 ​Mikrotik gebaseer op Marvell Prestera 3236DX750, bedieners met Nuvoton NPCM8 BMC, Kontron i.MX64M Mini, Espressobin Ultra, "Trogdor" Chromebook, Kobol Helios30, Engicam PXXNUMX.Core.
    • Ingeboude ondersteuning vir die Ouya-speletjiekonsole gebaseer op NVIDIA Tegra 3.

Terselfdertyd het die Latyns-Amerikaanse Vrye Sagteware-stigting 'n weergawe gevorm van die heeltemal gratis 5.11-kern - Linux-libre 5.11-gnu, skoongemaak van elemente van firmware en drywers wat nie-vrye komponente of kodeafdelings bevat, waarvan die omvang beperk is deur die vervaardiger. Die nuwe vrystelling maak drywers skoon vir qat_4xxx (crypto), lt9611uxcm (dsi/hdmi-brug), ccs/smia++ (sensor), ath11k_pci, nxp oudio-senderontvanger en mhi pci-beheerder. Opgedateerde blob-skoonmaakkode in drywers en substelsels amdgpu, btqca, btrtl, btusb, i915 csr. Gedeaktiveerde nuwe blobs in m3 rproc, idt82p33 ptp klok en qualcomm arm64.

Bron: opennet.ru

Voeg 'n opmerking