Linux kernvrystelling 5.12

Na twee maande se ontwikkeling het Linus Torvalds die vrystelling van die Linux-kern 5.12 aangebied. Van die mees noemenswaardige veranderinge: ondersteuning vir gesoneerde bloktoestelle in Btrfs, die vermoë om gebruikers-ID's vir die lêerstelsel te karteer, die skoonmaak van verouderde ARM-argitekture, 'n "gretige" skryfmodus in NFS, die LOOKUP_CACHED-meganisme vir die bepaling van lêerpaaie vanaf die kas , Ondersteuning vir atoominstruksies in BPF, 'n ontfoutingstelsel KFENCE vir die identifisering van foute wanneer met geheue gewerk word, NAPI-peilingsmodus wat in 'n aparte kerndraad in die netwerkstapel loop, ACRN-hipervisor, die vermoë om die preempt-model in die taak te verander skeduleerder en ondersteuning vir LTO-optimalisasies wanneer in Clang gebou word.

Die nuwe weergawe bevat 14170 (in die vorige weergawe 15480) regstellings van 1946 (1991) ontwikkelaars, die pleistergrootte is 38 MB (die veranderinge wat 12102 (12090) lêers geraak word, 538599 (868025) kodereëls is bygevoeg, (333377) reëls is uitgevee). Ongeveer 261456% van alle veranderinge wat in 43 aangebring is, hou verband met toestelbestuurders, ongeveer 5.12% van veranderinge hou verband met die opdatering van kode spesifiek vir hardeware-argitekture, 17% hou verband met die netwerkstapel, 12% hou verband met lêerstelsels en 5% hou verband met interne kernsubstelsels.

Belangrikste innovasies:

  • Skyfsubstelsel, I/O en lêerstelsels
    • Die vermoë om gebruikers-ID's vir gemonteerde lêerstelsels te karteer is geïmplementeer (jy kan lêers van een gebruiker op 'n gemonteerde vreemde partisie met 'n ander gebruiker op die huidige stelsel karteer). Kartering word ondersteun vir FAT-, ext4- en XFS-lêerstelsels. Die voorgestelde funksionaliteit maak dit makliker om lêers tussen verskillende gebruikers en op verskillende rekenaars te deel, insluitend kartering sal gebruik word in die systemd-homed draagbare tuisgidsmeganisme, wat gebruikers toelaat om hul tuisgidse na eksterne media te skuif en dit op verskillende rekenaars te gebruik, kartering gebruiker-ID's waarmee nie ooreenstem nie. Nog 'n nuttige toepassing is om die verskaffing van gedeelde toegang tot lêers vanaf 'n eksterne gasheer te organiseer, sonder om werklik die data oor die eienaars van die lêers in die lêerstelsel te verander.
    • Die LOOKUP_CACHED-kolle is in die kern aangeneem, wat bewerkings toelaat om 'n lêerpad van gebruikersspasie te bepaal sonder om te blokkeer, slegs gebaseer op die data wat in die kas beskikbaar is. Die LOOKUP_CACHED-modus word in die openat2()-oproep geaktiveer deur die RESOLVE_CACHED-vlag deur te gee, waarin data slegs vanaf die kas bedien word, en as die padbepaling toegang tot die aandrywer vereis, word die EAGAIN-fout teruggestuur.
    • Die Btrfs-lêerstelsel het aanvanklike ondersteuning bygevoeg vir gesoneerde bloktoestelle (toestelle op harde magnetiese skywe of NVMe SSD's, die stoorspasie waarin verdeel is in sones wat groepe blokke of sektore uitmaak, waarby slegs opeenvolgende byvoeging van data toegelaat word, die hele groep blokke by te werk). In leesalleenmodus word ondersteuning vir blokke met metadata en data kleiner as 'n bladsy (subbladsy) geïmplementeer.
    • In die F2FS-lêerstelsel is die vermoë om die algoritme en kompressievlak te kies bygevoeg. Bygevoeg ondersteuning vir hoë vlak kompressie vir die LZ4 algoritme. Het die checkpoint_merge-monteringsopsie geïmplementeer.
    • 'n Nuwe ioctl-opdrag FS_IOC_READ_VERITY_METADATA is geïmplementeer om metadata te lees van lêers wat met fs-verity beskerm is.
    • Die NFS-kliënt implementeer 'n "gretig" skryfmodus (skryf=gretig), wanneer dit geaktiveer is, word skryfbewerkings na 'n lêer onmiddellik na die bediener oorgedra en die bladsykas omseil. Hierdie modus laat jou toe om geheueverbruik te verminder, verskaf onmiddellike ontvangs van inligting oor die einde van vrye spasie in die lêerstelsel, en maak dit in sommige situasies moontlik om verhoogde werkverrigting te behaal.
    • Nuwe bergopsies is by CIFS (SMB) gevoeg: acregmax om lêerkas te beheer en acdirmax om gidsmetadatakas te beheer.
    • In XFS is multi-threaded kwota kontrolering modus geaktiveer, fsync uitvoering is versnel, en growfs kode is voorberei om die funksie van die vermindering van die grootte van die lêerstelsel te implementeer.
  • Geheue en stelseldienste
    • Die DTMP (Dynamic Thermal Power Management) substelsel is bygevoeg, wat jou toelaat om die kragverbruik van verskillende toestelle dinamies te reguleer op grond van die gestelde algemene temperatuurlimiete.
    • Die vermoë om die kern te bou met behulp van die Clang-samesteller met die insluiting van optimaliserings by die koppelingstadium (LTO, Link Time Optimization) is geïmplementeer. LTO-optimalisasies verskil deur die toestand van alle lêers wat by die bouproses betrokke is, in ag te neem, terwyl tradisionele optimaliseringsmodusse elke lêer afsonderlik optimaliseer en nie die voorwaardes vir die oproep van funksies wat in ander lêers gedefinieer is, in ag neem nie. Byvoorbeeld, met LTO is inlyn-ontplooiing moontlik vir funksies van ander lêers, ongebruikte kode word nie by die uitvoerbare lêer ingesluit nie, tipe kontrolering en algemene optimalisering word op die projekvlak as geheel uitgevoer. LTO-ondersteuning is tans beperk tot x86- en ARM64-argitekture.
    • Dit is moontlik om preemption modes (PREEMPT) in die taakskeduleerder te kies tydens die selflaaistadium (preempt=geen/vrywillig/vol) of terwyl jy deur debugfs (/debug/sched_debug) werk, as die PREEMPT_DYNAMIC-instelling gespesifiseer is tydens die bou van die kern. Voorheen kon die ekstrusiemodus slegs op die samestellingparametersvlak ingestel word. Die verandering laat verspreidings toe om pitte te stuur met PREEMPT-modus geaktiveer, wat minimale latensie vir rekenaars bied teen die koste van 'n klein deursetboete, en indien nodig terug te val na PREEMPT_VOLUNTARY ('n tussenmodus vir rekenaars) of PREEMPT_NONE (voorsien maksimum deurset vir bedieners) .
    • Ondersteuning vir atoombedrywighede BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG en BPF_CMPXCHG is by die BPF-substelsel gevoeg.
    • BPF-programme kry die vermoë om toegang tot data op die stapel te kry met behulp van wysers met veranderlike afwykings. Byvoorbeeld, as jy voorheen net 'n konstante element-indeks kon gebruik om toegang tot 'n skikking op die stapel te kry, kan jy nou 'n veranderende een gebruik. Toegangsbeheer slegs binne die bestaande grense word deur die BPF-verifieerder uitgevoer. Hierdie kenmerk is slegs beskikbaar vir bevoorregte programme as gevolg van kommer oor die uitbuiting van spekulatiewe kode-uitvoering kwesbaarhede.
    • Die vermoë bygevoeg om BPF-programme aan kaal spoorpunte te heg wat nie geassosieer word met spoorgebeurtenisse wat in gebruikersruimte sigbaar is nie (ABI-bewaring word nie vir sulke spoorpunte gewaarborg nie).
    • Ondersteuning vir die CXL 2.0 (Compute Express Link) bus is geïmplementeer, wat gebruik word om hoëspoed interaksie tussen die SVE en geheue toestelle te organiseer (laat jou toe om eksterne geheue toestelle te gebruik as deel van RAM of permanente geheue, asof hierdie geheue is deur 'n standaardgeheuebeheerder in die SVE gekoppel).
    • Bygevoeg nvmem drywer om data te haal uit firmware-gereserveerde geheue areas wat nie direk toeganklik is vir Linux nie (byvoorbeeld, EEPROM geheue wat fisies toeganklik is net vir die firmware, of data wat slegs toeganklik is tydens die vroeë selflaaifase).
    • Ondersteuning vir die "oprofile"-profielstelsel is verwyder, wat nie wyd gebruik is nie en vervang is deur die meer moderne perf-meganisme.
    • Die io_uring asynchrone I/O-koppelvlak bied integrasie met cgroups wat geheuegebruik beheer.
    • Die RISC-V-argitektuur ondersteun NUMA-stelsels, sowel as kprobes en uprobes-meganismes.
    • Het die vermoë bygevoeg om die kcmp()-stelseloproep te gebruik, ongeag die funksionaliteit van prosesstatus-kiekies (kontrolepunt/herstel).
    • Die EXPORT_UNUSED_SYMBOL() en EXPORT_SYMBOL_GPL_FUTURE() makro's, wat vir baie jare nie in die praktyk gebruik is nie, is verwyder.
  • Virtualisering en sekuriteit
    • Bygevoeg KFence (Kernel Electric Fence) beskermingsmeganisme, wat foute opvang wanneer daar met geheue gewerk word, soos bufferoorskryding en toegang nadat geheue vrygestel is. In teenstelling met die KASAN-ontfoutingsmeganisme, word die KFence-substelsel gekenmerk deur hoë werkspoed en lae oorhoofse koste, wat jou toelaat om geheuefoute op te vang wat slegs op werkende stelsels of tydens langtermynwerking voorkom.
    • Bygevoeg ondersteuning vir die ACRN hypervisor, geskryf met die oog op gereedheid vir intydse take en geskiktheid vir gebruik in missie-kritiese stelsels. ACRN bied minimale oorhoofse koste, waarborg lae latensie en voldoende reaksie wanneer daar met toerusting interaksie is. Ondersteun virtualisering van SVE-hulpbronne, I/O, netwerksubstelsel, grafika en klankbedrywighede. ACRN kan gebruik word om verskeie geïsoleerde virtuele masjiene in elektroniese beheereenhede, instrumentpanele, motorinligtingstelsels, verbruikers-IoT-toestelle en ander ingebedde tegnologie te laat loop. ACRN ondersteun twee tipes gasstelsels - bevoorregte diens-VM's, wat gebruik word om stelselhulpbronne (CPU, geheue, I/O, ens.) te bestuur, en pasgemaakte gebruiker-VM's, wat Linux-, Android- en Windows-verspreidings kan laat loop.
    • In die IMA (Integrity Measurement Architecture) substelsel, wat 'n hash-databasis in stand hou om die integriteit van lêers en gepaardgaande metadata na te gaan, word dit nou moontlik om die integriteit van die data van die kern self na te gaan, byvoorbeeld om veranderinge in SELinux-reëls op te spoor. .
    • Die vermoë om Xen-hiperoproepe te onderskep en dit aan te stuur na die emulator wat in gebruikersruimte loop, is by die KVM-hipervisor gevoeg.
    • Bygevoeg die vermoë om Linux te gebruik as die wortel omgewing vir die Hyper-V hypervisor. Die wortelomgewing het direkte toegang tot die hardeware en word gebruik om gastestelsels te laat loop (analoog aan Dom0 in Xen). Tot nou toe het Hyper-V (Microsoft Hypervisor) Linux slegs in gasomgewings ondersteun, maar die hypervisor self is vanaf 'n Windows-gebaseerde omgewing beheer.
    • Bygevoeg ondersteuning vir inlyn-enkripsie vir eMMC-kaarte, wat jou toelaat om enkripsiemeganismes wat in die dryfbeheerder ingebou is, te gebruik wat I/O deursigtig enkripteer en dekripteer.
    • Die ondersteuning vir die RIPE-MD 128/256/320 en Tiger 128/160/192 hashes, wat nie in die kern gebruik word nie, sowel as die Salsa20-stroomsyfer, wat deur die ChaCha20-algoritme vervang is, is uit die kripto substelsel. Die blake2-algoritme is opgedateer om blake2s te implementeer.
  • Netwerk substelsel
    • Het die vermoë bygevoeg om die NAPI-peilingshanteerder vir netwerktoestelle na 'n aparte kerndraad te skuif, wat verbeterde werkverrigting vir sommige tipes werklading moontlik maak. Voorheen is peiling in die konteks van softirq uitgevoer en is nie deur die taakskeduleerder gedek nie, wat dit moeilik gemaak het om fyn optimerings uit te voer om maksimum prestasie te behaal. Uitvoering in 'n aparte kerndraad laat toe dat die polling-hanteerder vanuit gebruikersruimte waargeneem word, aan individuele SVE-kerns geheg word en in ag geneem word wanneer taakomskakeling geskeduleer word. Om die nuwe modus in sysfs te aktiveer, word die /sys/class/net//threaded parameter voorgestel.
    • 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 weergawe voeg die vermoë toe om prioriteit aan sekere drade toe te ken, wat dit byvoorbeeld moontlik maak om die werk van rugsteundrade wat slegs aanskakel as daar probleme met die primêre draad is, te organiseer.
    • IGMPv3 voeg ondersteuning by vir die EHT (Explicit Host Tracking) meganisme.
    • Netfilter se pakkiefilterenjin bied die vermoë om sekere tafels te besit om eksklusiewe beheer te verkry (byvoorbeeld, 'n agtergrond-brandmuurproses kan eienaarskap van sekere tabelle neem, wat verhoed dat enigiemand anders daarmee inmeng).
  • Оборудование
    • Ons het verouderde en ononderhoude ARM-platforms skoongemaak. Die kode vir die efm32-, picoxcell-, prima2-, tango-, u300-, zx- en c6x-platforms, sowel as hul verwante drywers, is verwyder.
    • Die amdgpu-bestuurder bied die vermoë om kaarte te oorklok (OverDrive) gebaseer op die Sienna Cichlid GPU (Navi 22, Radeon RX 6xxx). Bygevoeg ondersteuning vir FP16 pixel formaat vir DCE (vertoon kontroleerder enjin) van 8ste tot 11de generasie. Vir GPU Navy Flounder (Navi 21) en APU Van Gogh is die vermoë om die GPU terug te stel geïmplementeer.
    • Die i915-bestuurder vir Intel-grafiese kaarte implementeer die i915.mitigations-parameter om isolasie- en beskermingsmeganismes uit te skakel ten gunste van verbeterde werkverrigting. Vir skyfies wat vanaf Tiger Lake begin, is ondersteuning vir die VRR (Variable Rate Refresh)-meganisme ingesluit, wat jou toelaat om die monitorverversingstempo aanpasbaar te verander om gladheid en geen gapings tydens speletjies te verseker nie. Ondersteuning vir Intel Clear Color-tegnologie is ingesluit vir verbeterde kleurakkuraatheid. Bygevoeg ondersteuning vir DP-HDMI 2.1. Die vermoë om die agtergrond van eDP-panele te beheer is geïmplementeer. Vir Gen9 GPU's met LSPCON (Level Shifter and Protocol Converter)-ondersteuning, is HDR-ondersteuning geaktiveer.
    • Die nouveau-bestuurder voeg aanvanklike ondersteuning by vir NVIDIA GPU's gebaseer op die GA100 (Ampere) argitektuur.
    • Die msm-bestuurder voeg ondersteuning by vir Adreno 508, 509 en 512 GPU's wat in SDM (Snapdragon) 630, 636 en 660 skyfies gebruik word.
    • Bygevoeg ondersteuning vir Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s en Pioneer DJM-750 klankkaarte. Bygevoeg ondersteuning vir Intel Alder Lake PCH-P klank substelsel. Ondersteuning vir sagteware-simulasie van die koppeling en ontkoppeling van 'n oudioverbinding is geïmplementeer vir ontfouting van hanteerders in gebruikersruimte.
    • Bygevoeg ondersteuning vir Nintendo 64-speletjiekonsoles wat van 1996 tot 2003 vervaardig is (vorige pogings om Linux na die Nintendo 64 oor te dra is nie voltooi nie en is as Vaporware geklassifiseer). Die motivering vir die skep van 'n nuwe poort vir 'n verouderde platform, wat vir byna twintig jaar nie vrygestel is nie, is die begeerte om die ontwikkeling van emulators te stimuleer en die oordrag van speletjies te vereenvoudig.
    • Bygevoeg drywer vir Sony PlayStation 5 DualSense-speletjiebeheerder.
    • Bygevoeg ondersteuning vir ARM-borde, toestelle en platforms: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M Nano, Nano.
    • Bygevoeg ondersteuning vir Purism Librem5 Evergreen, Xperia Z3+/Z4/Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, Samsung GT-I9070 slimfone.
    • Bygevoeg bcm-vk-drywer vir Broadcom VK-versnellerborde (byvoorbeeld Valkyrie- en Viper PCIe-borde), wat gebruik kan word om oudio-, video- en beeldverwerkingsbewerkings, sowel as enkripsieverwante bewerkings, na 'n aparte toestel af te laai.
    • Bygevoeg ondersteuning vir die Lenovo IdeaPad platform met die vermoë om konstante laai en sleutelbord agtergrond te beheer. Ondersteuning word ook verskaf vir die ACPI-profiel van die ThinkPad-platform met die vermoë om kragverbruikmodusse te beheer. Bygevoeg bestuurder vir Lenovo ThinkPad X1 Tablet Gen 2 HID substelsel.
    • Bygevoeg ov5647 bestuurder met ondersteuning vir kamera module vir Raspberry Pi.
    • Bygevoeg ondersteuning vir RISC-V SoC FU740 en HiFive Unleashed-borde. 'n Nuwe drywer vir die Kendryte K210-skyfie is ook bygevoeg.

Bron: opennet.ru

Voeg 'n opmerking