Na twee maande van ontwikkeling het Linus Torvalds die kern vrygestel. Linux 7.2. Van die mees noemenswaardige veranderinge: USB4STREAM datastroommeganisme, btrfs-, xfs- en ext4-prestasie-optimalisering, voortgesette verwydering van kode vir i486 CPU-ondersteuning, die vermoë om geneste SCHED_EXT-skeduleerders te skep, verminderde geheueverbruik in die ruil-substelsel, versnelde naamlose pype, ondersteuning vir Intel MBEC- en AMD GMET-uitbreidings in KVM, verwydering van die AppleTalk-protokol, aanvanklike ondersteuning vir HDMI 2.1 FRL in die AMDGPU-drywer.
Belangrikste nuwe kenmerke in kern 7.2 (1, 2, 3):
- Skyfsubstelsel, I/O en lêerstelsels
- In die iomap-meganisme is 'n ekstra oproep na die memset-funksie vir reeds voltooide iterasies in die iomap_iter()-funksie verwyder, wat, met hoë I/O-intensiteit op vinnige NVMe-skywe, die aantal invoer-/uitvoerbewerkings per sekonde (IOPS) met 5% verhoog het in die toetse wat uitgevoer is met die gebruik van die ext4- en xfs-lêerstelsels.
- XFS is stabiel verklaar vir die ondersteuning van gesoneerde stoortoestelle (verdeling van groepe blokke of sektore in sones, waarin slegs opeenvolgende byvoegings van data toegelaat word, wat die hele blokgroep opdateer).
- Btrfs ondersteun nou standaard groot folio's, wat oorhoofse koste verminder en werkverrigting tydens intensiewe opeenvolgende I/O verbeter. Eksperimentele ondersteuning vir groot folio's (tot 2 MB) is bygevoeg. 'n Nuwe ioctl, GET_CSUMS, is bygevoeg vir die herwinning van kontrolesominligting in gebruikersruimte, byvoorbeeld vir die mkfs-hulpprogram en deduplikasie-optimalisering. Opeenvolgende skryfwerkverrigting is met 15% verhoog en direkte I/O-werkverrigting met 59%.
- Die Ext4-lêerstelsel se "vinnige toewyding"-meganisme is aansienlik herontwerp om twis en dooiepunte uit te skakel. Die uitvoer van inode-kiekiestatistieke is bygevoeg via /proc/fs/ext4/*/fc_info. Die berekeningsprestasie van gids-hash is geoptimaliseer (amper verdubbel die spoed vir name van 255 karakters, 27% vir name van 64 karakters en 11% vir name van 32 karakters).
- F2FS ondersteun nou fserror-foutterugsending, wat dit moontlik maak om lêerstelselprobleme vanuit gebruikersruimte te monitor. Die tyd wat aan onderbrekingshantering bestee word, is verminder.
- 'n Nuwe dm-inlinecrypt-hanteraar is by Toestelkarteerder (DM) gevoeg vir deursigtige enkripsie en dekripsie van bloktoestelle met behulp van hardewaretoestelle met inlyn-enkripsiefunksionaliteit.
- Dokumentasie oor die byvoeging van nuwe lêerstelsels tot die kern is verskaf.
- In NFS is die standaardblokgrootte verhoog na 4 MB op stelsels met ten minste 16 GB RAM (jy kan /proc/fs/nfsd/max_block_size gebruik om die blokgrootte handmatig te verander). Ondersteuning vir gidsdelegering is bygevoeg, wat toelaat dat bewerkings met 'n gegewe gids vir 'n sekere tydperk uitgevoer word sonder om vir statusveranderinge na te gaan. bediener.
- Die SMB-bediener ondersteun nou lêers wat in saamgeperste vorm gestoor word, sowel as datakompressie tydens oordrag oor die netwerk.
- Die nuwe NTFS-implementering (ntfsplus) voeg ondersteuning vir simboliese skakels by. Windows en korrekte hantering van baie tipes metadata-korrupsie word verseker.
- Die fscache-agtergrond vir die kas van EROFS (Enhanced Read-Only File System) data, wat twee jaar gelede afgekeur is, is verwyder.
- Ceph FS ondersteun nou handmatige herstel van kliëntsessies.
- Die 9P-lêerstelsel is geoptimaliseer om werkverrigting in scenario's soos projekboue te verbeter.
- Vlae vir die herwinning van inligting oor lêerstelsel-hooflettergevoeligheid is by die file_getattr()-stelseloproep gevoeg. Die FS_XFLAG_CASEFOLD-vlag dui aan dat lêernaamkontrole hoofletterongevoelig uitgevoer word, en die FS_XFLAG_CASENONPRESERVING-vlag dui aan dat hoofletterinligting nie behoue bly wanneer nuwe lêername geskep word nie. Hierdie vlae kan in hoofletterongevoelige NFS-kliënte gebruik word.
- Die O_EMPTYPATH-vlag is by die openat2()-stelseloproep gevoeg, wat toelaat dat 'n leë lêerpad deurgegee word. In hierdie geval word die pad na die lêer wat oopgemaak word, bepaal op grond van die deurgegee lêerbeskrywer.
- Die OPENAT2_REGULAR-vlag is by die openat2()-stelseloproep gevoeg, wat slegs toelaat dat gewone lêers oopgemaak word (’n EFTYPE-fout sal teruggegee word as daar gepoog word om ’n spesiale lêer soos ’n sok, pyp of toestel oop te maak).
- Geheue en stelseldienste
- Die USB4STREAM-meganisme is geïmplementeer vir die stroom van data tussen rekenaars wat via USB4-poorte gekoppel is. Die /dev/tbstreamX-toestel is bygevoeg, wat jou toelaat om data te lees en te skryf met behulp van die standaard lees()- en skryf()-funksies, soortgelyk aan die lees en skryf van lêers. Byvoorbeeld, op een gasheer kan jy inligting stuur met behulp van die opdrag "echo hello > /dev/tbstream0," en op 'n ander, lees dit met behulp van die opdrag "cat /dev/tbstream0." Die USB4STREAM-meganisme kan gekombineer word met die vermoë om 'n netwerkverbinding via 'n USB4-kabel (thunderbolt_net) te vestig of afsonderlik gebruik word om data oor te dra tussen toepassings wat nie netwerksokke ondersteun nie.
- Die tweede reeks veranderinge om ondersteuning vir i486-verwerkers te verwyder, is ingesluit. Meer as 13 reëls kode wat verband hou met drywende-komma-emulasie vir verwerkers sonder 'n FPU is verwyder. Ondersteuning vir i486-verwerkers sonder die CX8 (vergelyk en ruil 8 grepe) en TSC (CPU-siklusteller wat in die taakskeduleerder gebruik word) hardeware-bewerkings is verwyder, aangesien die emulasiekode hiervoor verwyder is.
- Ondersteuning vir AMD Geode-verwerkers wat in die OLPC XO-1-rekenaar gebruik word, is as weeskind aangekondig.
- Ondersteuning bygevoeg vir die opdatering van die implementering van Intel se TDX (Trusted Domain Extensions), 'n meganisme wat gebruik word om gasstelsel-RAM te enkripteer. TDX word geïmplementeer as 'n spesiale sagteware-looptydmodule wat deur die BIOS tydens opstart van flitsgeheue na RAM oorgedra word. Die kern bevat nou vermoëns om hierdie module te bestuur en dit met 'n nuwer weergawe op 'n lopende stelsel te vervang sonder dat dit herlaai hoef te word.
- 'n Nuwe GPU-hulpbrontoewysingsskeduleerder (Fair GPU-skeduleerder) is geïmplementeer. Dit word gebruik om die volgorde te bepaal waarin werk wat deur GPU-gebruikende prosesse ingedien word, op die GPU uitgevoer word. In plaas daarvan om die tradisionele FIDO-waglys vir GPU-versoeke te gebruik, gebruik die nuwe skeduleerder billike hulpbrontoewysingsmeganismes gebaseer op die Completely Fair Scheduler (CFS) taakskeduleerder, wat 'n bekendstellingsplan met 'n oorgangstyd vir die volgende proses gebruik. Die mees opvallende effek van die nuwe skeduleerder word waargeneem tydens die parallelle uitvoering van interaktiewe take wat die GPU swaar gebruik. Op die laaste oomblik voor die vrystelling van kern 7.2 is die Fair GPU-skeduleerder gedeaktiveer en die ou FIFO-skeduleerder is teruggekeer weens die behoefte om regressie te ontfout, wat prestasie-agteruitgang en 100% GPU-benutting veroorsaak het wanneer sekere speletjies in Proton uitgevoer word.
- Veranderinge in die eBPF-substelsel: Die vermoë om 'n enkele BPF-program aan verskeie spoorpunte te koppel, is bygevoeg. BPF-programme wat aan spoorpunte gekoppel is, kan nou toegang tot die geheue van gebruikersruimtekomponente verkry, met die korrekte hantering van ongetoekenningde geheuebladsye (bladsiefoute). Die bpf()-stelseloproep ondersteun nou standaardkenmerke (log_buf, log_size, log_level en log_true_size), wat verenigde metadata-oordrag oor alle BPF-opdragte moontlik maak, nie beperk tot BPF_PROG_LOAD, BPF_BTF_LOAD en BPF_MAP_CREATE nie. Die beperking op die deurgee van nie meer as 5 parameters aan BPF-funksies is verwyder. Die vermoë om veilig toegang tot bpf_arena-gedeelde geheue te verkry sonder vrees vir toegang tot ongetoekenningde geheuebladsye (bladsiefoute) is bygevoeg. 'n Nuwe weergawe van die BPF-hashkaartstruktuur is geïmplementeer, wat dinamiese grootteverandering moontlik maak.
- Die generering van die "/proc/interrupts"-uitvoer met onderbrekingsstatistieke is geoptimaliseer, en die strukture vir die berging van onderbrekingstelle is gemoderniseer en kasgeheue is bygevoeg.
- Die generering van die "/proc/filesystems"-lêer wat in libselinux gebruik word, is versnel.
- Die taakskeduleerder ondersteun nou lasbalansering oor SVE-kerne, met inagneming van die toestand van die verwerker se interne kasgeheue. Die skeduleerder probeer nou om prosesse te groepeer deur gedeelde hulpbronne, soos drade binne 'n enkele proses, te gebruik om dieselfde hoëvlak-kasgeheue te deel, wat die doeltreffendheid van datatoegang verbeter deur die waarskynlikheid te verhoog dat die vereiste data in die kasgeheue gevind sal word.
- Die SCHED_EXT-meganisme, wat die gebruik van BPF toelaat om SVE-skeduleerders te skep, het voortgegaan om die vermoë te implementeer om geneste skeduleerders (subskeduleerders) te skep, wat elke c-groep toelaat om sy eie taakskeduleerder te gebruik.
- Voortgesette migrasie van veranderinge vanaf die Rust-for-takLinux, verwant aan die gebruik van Rust as 'n tweede taal vir die ontwikkeling van drywers en kernmodules (Rust-ondersteuning is nie standaard geaktiveer nie en sluit nie Rust as 'n verpligte kernbou-afhanklikheid in nie). Rust-ondersteuning in die kern is geïmplementeer vir die s390-argitektuur. Die "zerocopy"-pakket, wat vinnige geheueprimitiwe vir kode in "onveilige" modus bied, is ingesluit.
- Die minimum weergawe van die LLVM-gereedskapstel wat benodig word om die kern te bou, is verhoog na 17.0.1.
- In die minimalistiese C-biblioteek nolibc, voorsien van die kernbronkode Linux en bied 'n raamwerk vir basiese stelseloproepe, wat die OpenRISC- en 32-bis PA-RISC-argitekture ondersteun.
- Die ruil-substelsel is geoptimaliseer om werkverrigting te verbeter en geheueverbruik binne die substelsel self te verminder deur oorhoofse koste uit te skakel wanneer statiese metadata gestoor word en anonieme en gedeelde geheue te verenig wanneer tomes gebruik word. Die geheuevermindering is nogal beduidend; byvoorbeeld, die montering van 'n 1 TB-ruilpartisie verminder geheueverbruik met ongeveer 512 MB.
- Die werkverrigting van die geheue-uitsettingsmeganisme, wat geheue uitvee of skuif na ruilruimte om geheue vry te maak wanneer die stelsel onder druk is, is verbeter. Onder sekere werkladings, soos wanneer MongoDB met YCSB (Yahoo! Cloud Serving Benchmark) getoets word, is werkverrigtingsverbeterings van tot 30% waargeneem.
- Die "make sbom"-opdrag is by die boustelsel gevoeg om SBOM (Software Bill Of Materials)-lyste te genereer wat die komponente, biblioteke en afhanklikhede wat in die huidige kernbou gebruik word, weerspieël, sowel as hul lisensie-inligting wat verkry is vanaf die SPDX-opskrifte in die kodelêers.
- Die implementering van naamlose pype is geoptimaliseer vir die hantering van slotte (geheuetoewysingsbewerkings word buite die bestek van die slot geskuif), wat die deurset van naamlose pype met 21-48% verhoog het en die latensie met 17-33% verminder het.
- Virtualisering en sekuriteit
- Die plaattoewyser ondersteun nou die gebruik van Toewysingstokens, geïmplementeer in die Clang 22-samesteller. Tokens maak voorsiening vir unieke identifiseerders vir geheuetoewysingsbewerkings en afsonderlike toewysing van verskillende tipes voorwerpe om die uitbuiting van bufferoorloopkwesbaarhede te bemoeilik (met skeiding word 'n bufferoorloop in een tipe voorwerp nie maklik uitgebuit om ander tipes voorwerpe te beskadig nie).
- Die AF_ALG-meganisme, wat in die Copy Fail-kwesbaarheid uitgebuit word om data in die bladsykas te wysig, is afgekeur en sal na verwagting in 'n toekomstige weergawe verwyder word. AF_ALG maak hardewareversnellers vir kriptografiese berekeninge in die kern se Crypto API moontlik, maar word in redelik spesifieke situasies gebruik. In kern 7.2 is ondersteuning vir asynchrone I/O, ouer drywers en die nul-kopieermeganisme in die skcipher- en aead-implementerings van AF_ALG verwyder. Slegs sagteware-implementerings van kriptografiese algoritmes word behou, en ondersteuning vir hardeware-kriptografiese versnellers in die kern se Crypto API is verwyder, aangesien AF_ALG die aanvalsoppervlak aansienlik uitbrei, maar geen prestasievoordeel bied in vergelyking met gebruikersruimte-kriptografie-implementerings nie. AF_ALG is in die Cryptsetup-gereedskapskis gebruik, maar die ondersteuning daarvan is in die onlangse 2.8.7-vrystelling verwyder.
- Die IMA (Integrity Measurement Architecture) meganisme, wat 'n eksterne diens toelaat om die toestand van kernsubstelsels te verifieer om hul egtheid te verseker, is aangevul met ondersteuning vir die uitvoer van interne tabelle met meetresultate na gebruikersruimte en die verwydering daarvan uit kernbuffers om geheue te bespaar.
- In die Landlock-module, wat onbevoorregte programme die middele bied om die gebruik van kernobjekte te beperk Linux (lêerhiërargieë, netwerk-sokke, ioctl, ens.), ondersteuning vir toegangsbeheer tot UDP-sokke is bygevoeg, sowel as die vermoë om die uitvoer van objekslotinligting na die log selektief te deaktiveer om te verhoed dat die log met irrelevante inligting oorlaai word.
- Die kern se gebruik van die strncpy()-funksie, wat 'n gespesifiseerde aantal grepe vanaf 'n invoerstring kopieer, is afgeskaf. Die gebruik van strncpy() het die risiko van foute geskep as gevolg van die ontbrekende nulkarakter aan die einde van die string of addisionele opvulling met nulle. In plaas van strncpy(), word dit aanbeveel om die strscpy() en strscpy_pad() funksies te gebruik vir die kopiëring van nul-beëindigde stringe, sowel as strtomem_pad(), memcpy_and_pad(), en memcpy() vir die kopiëring van stringe van 'n bekende vaste grootte. Werk om die gebruik van strncpy() in die kern te deprekeer, het in 2020 begin en het 362 commits van 70 ontwikkelaars vereis.
- In die hipervisor KVM Ondersteuning vir die Intel MBEC (Mode-Based Execution Control) en AMD GMET (Guest-Mode Execution Trap) uitbreidings is bygevoeg, wat afsonderlike hantering van kern- en gebruikersruimte-uitvoeringsregte in gasstelsels in geheuevertalingstabelle moontlik maak. Voorheen het Intel- en AMD-hardeware-virtualiseringsuitbreidings toegelaat dat geheuebladsye as uitvoerbaar gemerk word met slegs 'n enkele bis, met sagteware-gebaseerde skeiding van kern- en gebruikersruimteregte op die hipervisorvlak. Die gebruik van MBEC en GMET elimineer toestemmingskontroles aan die hipervisorkant en verminder hulpbron-intensiewe beheeroordragte van die gasstelsel na die VMexit-hipervisor aansienlik.
- Netwerk substelsel
- Die TCP-AO (TCP Authentication Option, RFC 5925) uitbreiding is na die nuwe libcrypto kriptografiese biblioteek gemigreer, wat die kode vereenvoudig en die werkverrigting daarvan verbeter. TCP-AO maak verifikasie van TCP-opskrifte moontlik met behulp van MAC (Message Authentication Code) kodes, met behulp van die meer moderne HMAC-SHA-1-96 en AES-128-CMAC-96 algoritmes, wat die voorheen beskikbare TCP-MD5 opsie vervang, wat op die verouderde MD5 algoritme staatgemaak het.
- Die aantal substrome wat ondersteun word vir Multipath TCP (MPTCP) verbindings is verhoog van 8 na 64.
- Werk is voortgesit om die gebruik van die rtnl_lock globale slot in die kernnetwerkstapel te verminder.
- Die kern het die implementering van die AppleTalk-protokolstapel verwyder, wat sedert 1985 in Apple-rekenaars gebruik is en in die 1990's vervang is deur TCP/IPDaarbenewens is OTM-data-oordragtegnologiekomponente wat nie verband hou met PPPoATM verwyder nie, sowel as ARCnet-netwerkkoppelvlakke gebaseer op ISA- en PCMCIA-busse, Bluetooth-adapters met PCMCIA-koppelvlak, Chelsea TLS-versnellers, kode vir die integrasie van TLS met sockmap, en ondersteuning vir die 5/10 MHz-frekwensiebande in die cfg80211/mac80211 draadlose stapel. As gevolg van onopgeloste blokkeringsprobleme en die gebrek aan onderhouers, is 'n spesifieke implementering van TLS-verwerkingsversnelling gebaseer op die TCP Offload Engine verwyder (die meer algemene TLS-aflaai-implementering word behou). Verenigbaarheidskode met 32-bis x_tables op 64-bis-stelsels is gedeaktiveer en is geskeduleer vir verwydering.
- Die pppoe-drywer ondersteun nou GRO (Generic Receive Offload) en GSO (Generic Segmentation Offload) meganismes vir hardewareversnelling van pakkethersamestelling en segmentering. Die gebruik van GRO en GSO verhoog die inkomende verkeersdeurset aansienlik. Byvoorbeeld, op MediaTek MT7621-toestelle wat met 'n adresvertaler gekonfigureer is, het die maksimum deurset van 130 Mbit/s tot 630 Mbit/s toegeneem.
- Оборудование
- Die AMDGPU-drywer sluit nou aanvanklike ondersteuning vir HDMI 2.1 FRL (Fixed Rate Link)-tegnologie in, wat die oordrag van ongekomprimeerde video teen 4K/120Hz en 8K/60Hz moontlik maak. HDMI 2.1-ondersteuning was voorheen ontwykend in oopbron-drywers as gevolg van HDMI Forum-lisensievereistes, maar AMD het nou 'n soortgelyke implementering verseker.
- Die i915-drywer ondersteun nou die instelling van die agtergrondkleur vir die skermbeheerder. Die pin_params.needs_low_address-parameter is geïmplementeer.
- Werk aan die Xe DRM (Direct Rendering Manager) drywer vir GPU's gebaseer op die Intel Xe argitektuur, wat in Intel Arc reeks grafiese kaarte en geïntegreerde grafika gebruik word, is voortgesit, beginnende met Tiger Lake verwerkers. Aanvanklike ondersteuning vir die CRI (Crescent Island) platform is bygevoeg. 'n Stelselbeheerder is geïmplementeer vir Xe3p dGPU platforms.
- Die Nouveau-drywer los probleme met die NVIDIA GA100 GPU op.
- Die v3d-drywer is opgedateer om die vermoë in te sluit om v3D GPU-kragverbruik op Raspberry Pi-borde te bestuur.
- Ons het voortgegaan om Nova-drywerkomponente te integreer vir NVIDIA GPU's wat toegerus is met GSP-firmware wat gebruik word sedert die NVIDIA GeForce RTX 2000-reeks gebaseer op die Turing-mikroargitektuur. Die drywer is in Rust geskryf. Ondersteuning is bygevoeg vir die NVIDIA GA100-, Hopper- en Blackwell-reeks GPU's.
- Ondersteuning vir ARM-borde, SoC en toestelle is bygevoeg: Apple t8122 (M3), Motorola Edge 30, Nothing Phone 3a, Google Pixel 3a XL, Qualcomm Dragonwing IPQ9650, Huawei Hawi, ZTE zx297520v3, Renesas R-Car M3Le, ASPEED AST27xx, Cortina Gemini, NXP i.MX6/8/9, NXP LX2160A, TI K3 AM62x.
Terselfdertyd het die Latyns-Amerikaanse Stigting vir Vrye Sagteware 'n weergawe van die heeltemal gratis kern 7.2 geskep - Linux-libre 7.2-gnu, skoongemaak van firmware en drywerelemente wat nie-vrye komponente of kode-afdelings met beperkte omvang bevat deur die vervaardiger. Weergawe 7.2 sluit 'n blob-skoonmaak vir die nuwe rt722-sdca en tac5xx2 drywers in. Die skoonmaakkode vir die amdgpu, nova core, qcom iris, q6v5, iwlwifi, amdxnda, adreno, r8152, en mt792x drywers is opgedateer. Koppelvlakke vir die laai van firmware is aangepas. Blobname in devicetree (dts) lêers vir ARM-skyfies is skoongemaak.
Bron: opennet.ru
