KÀrnutgÄva Linux 7.2

Efter tvÄ mÄnaders utveckling slÀppte Linus Torvalds kÀrnan. Linux 7.2. Bland de mest anmÀrkningsvÀrda förÀndringarna: USB4STREAM-dataströmningsmekanism, prestandaoptimeringar för btrfs, xfs och ext4, fortsatt borttagning av kod för i486 CPU-stöd, möjligheten att skapa kapslade SCHED_EXT-schemalÀggare, minskad minnesförbrukning i swap-undersystemet, accelererade namnlösa pipes, stöd för Intel MBEC- och AMD GMET-tillÀgg i KVM, borttagning av AppleTalk-protokollet, initialt stöd för HDMI 2.1 FRL i AMDGPU-drivrutinen.

Viktigaste nya funktioner i kÀrna 7.2 (1, 2, 3):

  • Diskundersystem, I/O och filsystem
    • I iomap-mekanismen har ett extra anrop till memset-funktionen för redan slutförda iterationer i iomap_iter()-funktionen tagits bort, vilket, med hög I/O-intensitet pĂ„ snabba NVMe-enheter, ökade antalet in-/utmatningsoperationer per sekund (IOPS) med 5 % i de tester som utfördes med filsystemen ext4 och xfs.
    • XFS har deklarerats stabilt för stöd av zonerade lagringsenheter (uppdelning av grupper av block eller sektorer i zoner, i vilka endast sekventiella tillĂ€gg av data Ă€r tillĂ„tna, vilket uppdaterar hela blockgruppen).
    • Btrfs stöder nu stora folios som standard, vilket minskar overhead och förbĂ€ttrar prestandan under intensiv sekventiell I/O. Experimentellt stöd för enorma folios (upp till 2 MB) har lagts till. En ny ioctl, GET_CSUMS, har lagts till för att hĂ€mta kontrollsummeinformation i anvĂ€ndarutrymme, till exempel för mkfs-verktyget och dedupliceringsoptimering. Prestandan för sekventiell skrivning har ökat med 15 % och prestandan för direkt I/O med 59 %.
    • Ext4-filsystemets "fast commit"-mekanism har omdesignats avsevĂ€rt för att eliminera konkurrens och dödlĂ€gen. Export av statistik för inode-snapshots har lagts till via /proc/fs/ext4/*/fc_info. Prestandan för berĂ€kning av kataloghash har optimerats (nĂ€stan fördubblat hastigheten för namn pĂ„ 255 tecken, 27 % för namn pĂ„ 64 tecken och 11 % för namn pĂ„ 32 tecken).
    • F2FS stöder nu fserror-felretur, vilket gör att filsystemproblem kan övervakas frĂ„n anvĂ€ndarutrymmet. Tiden som lĂ€ggs pĂ„ avbrottshantering har minskats.
    • En ny dm-inlinecrypt-hanterare har lagts till i Device Mapper (DM) för transparent kryptering och dekryptering av blockenheter med hjĂ€lp av hĂ„rdvaruenheter med inline-krypteringsfunktionalitet.
    • Dokumentation om hur man lĂ€gger till nya filsystem i kĂ€rnan har tillhandahĂ„llits.
    • I NFS har standardblockstorleken ökats till 4 MB pĂ„ system med minst 16 GB RAM (du kan anvĂ€nda /proc/fs/nfsd/max_block_size för att manuellt Ă€ndra blockstorleken). Stöd för katalogdelegering har lagts till, vilket gör att operationer med en given katalog kan utföras under en viss tidsperiod utan att kontrollera om det finns tillstĂ„ndsĂ€ndringar pĂ„ server.
    • SMB-servern stöder nu filer som lagras i komprimerad form, sĂ„vĂ€l som datakomprimering under överföring över nĂ€tverket.
    • Den nya NTFS-implementeringen (ntfsplus) lĂ€gger till stöd för symboliska lĂ€nkar. Windows och korrekt hantering av mĂ„nga typer av metadatakorruption sĂ€kerstĂ€lls.
    • fscache-backend för cachning av EROFS-data (Enhanced Read-Only File System), som förĂ„ldrades för tvĂ„ Ă„r sedan, har tagits bort.
    • Ceph FS stöder nu manuell Ă„terstĂ€llning av klientsessioner.
    • 9P-filsystemet har optimerats för att förbĂ€ttra prestanda i scenarier som projektbyggen.
    • Flaggor för att hĂ€mta information om filsystemets skiftlĂ€geskĂ€nslighet har lagts till i systemanropet file_getattr(). Flaggan FS_XFLAG_CASEFOLD indikerar att filnamnskontroll utförs skiftlĂ€ges-okĂ€nsligt, och flaggan FS_XFLAG_CASENONPRESERVING indikerar att skiftlĂ€gesinformation inte bevaras nĂ€r nya filnamn skapas. Dessa flaggor kan anvĂ€ndas i NFS-klienter som inte skiftlĂ€ges-kĂ€nsligt.
    • Flaggan O_EMPTYPATH har lagts till i systemanropet openat2(), vilket gör att en tom filsökvĂ€g kan skickas. I det hĂ€r fallet bestĂ€ms sökvĂ€gen till filen som öppnas baserat pĂ„ den skickade filbeskrivningen.
    • Flaggan OPENAT2_REGULAR har lagts till i systemanropet openat2(), vilket endast tillĂ„ter att vanliga filer öppnas (ett EFTYPE-fel returneras om en speciell fil, till exempel en socket, pipe eller device, försöks öppnas).
  • Minnes- och systemtjĂ€nster
    • USB4STREAM-mekanismen har implementerats för strömmande data mellan datorer anslutna via USB4-portar. Enheten /dev/tbstreamX har lagts till, vilket gör att du kan lĂ€sa och skriva data med hjĂ€lp av standardfunktionerna read() och write(), liknande lĂ€sning och skrivning av filer. Till exempel kan du pĂ„ en vĂ€rd skicka information med kommandot "echo hello > /dev/tbstream0", och pĂ„ en annan lĂ€sa den med kommandot "cat /dev/tbstream0". USB4STREAM-mekanismen kan kombineras med möjligheten att upprĂ€tta en nĂ€tverksanslutning via en USB4-kabel (thunderbolt_net) eller anvĂ€ndas separat för att överföra data mellan applikationer som inte stöder nĂ€tverksuttag.
    • Den andra omgĂ„ngen Ă€ndringar för att ta bort stöd för i486-processorer har inkluderats. Över 13 rader kod relaterade till emulering av flyttal för processorer utan FPU har tagits bort. Stöd för i486-processorer utan hĂ„rdvaruoperationerna CX8 (jĂ€mför och utbyt 8 byte) och TSC (CPU-cykelrĂ€knare som anvĂ€nds i aktivitetsschemalĂ€ggaren) har tagits bort, eftersom emuleringskoden för dessa har tagits bort.
    • Stöd för AMD Geode-processorer som anvĂ€nds i OLPC XO-1-datorn har meddelats som förĂ€ldralöst.
    • Lade till stöd för uppdatering av implementeringen av Intels TDX (Trusted Domain Extensions), en mekanism som anvĂ€nds för att kryptera gĂ€stsystemets RAM. TDX implementeras som en speciell programvaru-runtime-modul som överförs frĂ„n flashminne till RAM av BIOS under start. KĂ€rnan inkluderar nu funktioner för att hantera denna modul och ersĂ€tta den med en nyare version pĂ„ ett körbart system utan att krĂ€va omstart.
    • En ny schemalĂ€ggare för GPU-resursallokering (Fair GPU scheduler) har implementerats. Den anvĂ€nds för att bestĂ€mma i vilken ordning arbete som skickas in av GPU-anvĂ€ndande processer exekveras pĂ„ GPU:n. IstĂ€llet för att anvĂ€nda den traditionella FIDO-kön för GPU-förfrĂ„gningar anvĂ€nder den nya schemalĂ€ggaren mekanismer för rĂ€ttvis resursallokering baserade pĂ„ Completely Fair Scheduler (CFS)-aktivitetsschemalĂ€ggaren, som anvĂ€nder en startplan med en övergĂ„ngstid för nĂ€sta process. Den mest mĂ€rkbara effekten av den nya schemalĂ€ggaren observeras under parallell exekvering av interaktiva uppgifter som anvĂ€nder GPU:n i hög grad. I sista minuten före lanseringen av kernel 7.2 inaktiverades Fair GPU-schemalĂ€ggaren och den gamla FIFO-schemalĂ€ggaren Ă„terstĂ€lldes pĂ„ grund av behovet av att felsöka regression, vilket orsakade prestandaförsĂ€mring och 100 % GPU-utnyttjande nĂ€r vissa spel kördes i Proton.
    • Ändringar i eBPF-undersystemet: Möjligheten att koppla ett enda BPF-program till flera spĂ„rningspunkter har lagts till. BPF-program som Ă€r kopplade till spĂ„rningspunkter kan nu komma Ă„t minnet i anvĂ€ndarutrymmeskomponenter, med korrekt hantering av oallokerade minnessidor (sidfel). Systemanropet bpf() stöder nu standardattribut (log_buf, log_size, log_level och log_true_size), vilket möjliggör enhetlig metadataöverföring över alla BPF-kommandon, inte begrĂ€nsat till BPF_PROG_LOAD, BPF_BTF_LOAD och BPF_MAP_CREATE. BegrĂ€nsningen att skicka högst 5 parametrar till BPF-funktioner har tagits bort. Möjligheten att sĂ€kert komma Ă„t delat minne i bpf_arena utan rĂ€dsla för att komma Ă„t oallokerade minnessidor (sidfel) har lagts till. En ny version av BPF:s hashmappstruktur har implementerats, vilket möjliggör dynamisk storleksĂ€ndring.
    • Genereringen av "/proc/interrupts"-utdata med avbrottsstatistik har optimerats, och strukturerna för att lagra avbrottsrĂ€knare har moderniserats och cachning har lagts till.
    • Genereringen av filen "/proc/filesystems" som anvĂ€nds i libselinux har pĂ„skyndats.
    • SchemalĂ€ggaren stöder nu lastbalansering över CPU-kĂ€rnor, med hĂ€nsyn till tillstĂ„ndet för processorns interna cache. SchemalĂ€ggaren försöker nu gruppera processer med hjĂ€lp av delade resurser, till exempel trĂ„dar inom en enda process, för att dela samma högnivĂ„cache, vilket förbĂ€ttrar effektiviteten i dataĂ„tkomst genom att öka sannolikheten för att de nödvĂ€ndiga uppgifterna hittas i cachen.
    • SCHED_EXT-mekanismen, som tillĂ„ter anvĂ€ndning av BPF för att skapa CPU-schemalĂ€ggare, har fortsatt att implementera möjligheten att skapa kapslade schemalĂ€ggare (underschemalĂ€ggare), vilket gör det möjligt för varje c-grupp att anvĂ€nda sin egen uppgiftsschemalĂ€ggare.
    • Fortsatt migrering av Ă€ndringar frĂ„n Rust-for-grenenLinux, relaterat till att anvĂ€nda Rust som ett andrasprĂ„k för att utveckla drivrutiner och kĂ€rnmoduler (Rust-stöd Ă€r inte aktiverat som standard och inkluderar inte Rust som ett obligatoriskt kĂ€rnbyggeberoende). Rust-stöd i kĂ€rnan har implementerats för s390-arkitekturen. Paketet "zerocopy", som tillhandahĂ„ller snabba minnesprimitiver för kod i "osĂ€kert" lĂ€ge, ingĂ„r.
    • Minimiversionen av LLVM-verktygsuppsĂ€ttningen som krĂ€vs för att bygga kĂ€rnan har ökats till 17.0.1.
    • I det minimalistiska C-biblioteket nolibc, som levereras med kĂ€rnans kĂ€llkod Linux och tillhandahĂ„ller ett ramverk för grundlĂ€ggande systemanrop, som stöder OpenRISC- och 32-bitars PA-RISC-arkitekturerna.
    • Swap-undersystemet har optimerats för att förbĂ€ttra prestanda och minska minnesförbrukningen inom sjĂ€lva undersystemet genom att eliminera overhead vid lagring av statiska metadata och förena anonymt och delat minne nĂ€r man anvĂ€nder böcker. Minnesreduktionen Ă€r ganska betydande; till exempel minskar montering av en swap-partition pĂ„ 1 TB minnesförbrukningen med cirka 512 MB.
    • Prestandan för minnesborttagningsmekanismen, som tar bort eller flyttar minne till vĂ€xlingsutrymme för att frigöra minne nĂ€r systemet Ă€r under belastning, har förbĂ€ttrats. Under vissa arbetsbelastningar, till exempel vid testning av MongoDB med YCSB (Yahoo! Cloud Serving Benchmark), har prestandaförbĂ€ttringar pĂ„ upp till 30 % observerats.
    • Kommandot "make sbom" har lagts till i byggsystemet för att generera SBOM-listor (Software Bill Of Materials) som Ă„terspeglar komponenterna, biblioteken och beroenden som anvĂ€nds i den aktuella kĂ€rnbyggnationen, samt deras licensinformation som hĂ€mtats frĂ„n SPDX-rubrikerna i kodfilerna.
    • Implementeringen av namnlösa pipes har optimerats för hantering av lĂ„s (minnesallokeringsoperationer flyttas utanför lĂ„sets omfattning), vilket har ökat dataflödet för namnlösa pipes med 21–48 % och minskat latensen med 17–33 %.
  • Virtualisering och sĂ€kerhet
    • Slab-allokeraren stöder nu anvĂ€ndningen av Allocation Tokens, implementerade i Clang 22-kompilatorn. Tokens möjliggör unika identifierare för minnesallokeringsoperationer och separat allokering av olika typer av objekt för att komplicera utnyttjandet av buffertöverflödessĂ„rbarheter (med separation utnyttjas inte ett buffertöverflöde i en typ av objekt lĂ€tt för att skada andra typer av objekt).
    • AF_ALG-mekanismen, som utnyttjades i Copy Fail-sĂ„rbarheten för att modifiera data i sidcachen, har förĂ„ldrats och Ă€r planerad att tas bort i en framtida version. AF_ALG aktiverar hĂ„rdvaruacceleratorer för kryptografiska berĂ€kningar i kĂ€rnans Crypto API, men anvĂ€nds i ganska specifika situationer. I kĂ€rna 7.2 har stöd för asynkron I/O, Ă€ldre drivrutiner och nollkopieringsmekanismen i skcipher- och aead-implementeringarna tagits bort frĂ„n AF_ALG. Endast programvaruimplementeringar av kryptografiska algoritmer behĂ„lls, och stöd för hĂ„rdvarukryptografiska acceleratorer i kĂ€rnans Crypto API har tagits bort, eftersom AF_ALG avsevĂ€rt utökar attackytan men inte ger nĂ„gon prestandafördel jĂ€mfört med implementeringar av anvĂ€ndarutrymmeskryptografi. AF_ALG anvĂ€ndes i Cryptsetup-verktygslĂ„dan, men dess stöd togs bort i den senaste 2.8.7-versionen.
    • IMA-mekanismen (Integrity Measurement Architecture), som gör det möjligt för en extern tjĂ€nst att verifiera tillstĂ„ndet hos kĂ€rndelsystem för att sĂ€kerstĂ€lla deras Ă€kthet, har kompletterats med stöd för att exportera interna tabeller med mĂ€tresultat till anvĂ€ndarutrymme och ta bort dem frĂ„n kĂ€rnbuffertar för att spara minne.
    • I Landlock-modulen, som ger oprivilegierade program möjlighet att begrĂ€nsa anvĂ€ndningen av kĂ€rnobjekt Linux (filhierarkier, nĂ€tverkssockets, ioctl, etc.), stöd för Ă„tkomstkontroll till UDP-sockets har lagts till, samt möjligheten att selektivt inaktivera utmatningen av objektlĂ„sinformation till loggen för att förhindra att loggen blir överbelastad med irrelevant information.
    • KĂ€rnan har blivit av med att anvĂ€nda funktionen strncpy(), som kopierar ett angivet antal byte frĂ„n en inmatningsstrĂ€ng. AnvĂ€ndning av strncpy() skapade risk för fel pĂ„ grund av att ett nulltecken saknas i slutet av strĂ€ngen eller ytterligare utfyllnad med nollor. IstĂ€llet för strncpy() rekommenderas det att anvĂ€nda funktionerna strscpy() och strscpy_pad() för att kopiera null-avslutade strĂ€ngar, samt strtomem_pad(), memcpy_and_pad() och memcpy() för att kopiera strĂ€ngar med en kĂ€nd fast storlek. Arbetet med att avveckla anvĂ€ndningen av strncpy() i kĂ€rnan pĂ„börjades 2020 och krĂ€vde 362 commits frĂ„n 70 utvecklare.
    • I hypervisorn KVM Lade till stöd för Intel MBEC-tillĂ€ggen (Mode-Based Execution Control) och AMD GMET-tillĂ€ggen (Guest-Mode Execution Trap), vilka möjliggör separat hantering av kĂ€rn- och anvĂ€ndarutrymmeskörningsrĂ€ttigheter i gĂ€stsystem i minnesöversĂ€ttningstabeller. Tidigare tillĂ€t Intel- och AMD-hĂ„rdvaruvirtualiseringstillĂ€gg att minnessidor markerades som körbara med endast en enda bit, med programvarubaserad separation av kĂ€rn- och anvĂ€ndarutrymmesrĂ€ttigheter pĂ„ hypervisornivĂ„. Att anvĂ€nda MBEC och GMET eliminerar behörighetskontroller pĂ„ hypervisorsidan och minskar avsevĂ€rt resurskrĂ€vande kontrollöverföringar frĂ„n gĂ€stsystemet till VMexit-hypervisorn.
  • NĂ€tverksdelsystem
    • TCP-AO-tillĂ€gget (TCP Authentication Option, RFC 5925) har migrerats till det nya kryptografiska biblioteket libcrypto, vilket förenklar koden och förbĂ€ttrar dess prestanda. TCP-AO möjliggör verifiering av TCP-rubriker med hjĂ€lp av MAC-koder (Message Authentication Code), med hjĂ€lp av de modernare algoritmerna HMAC-SHA-1-96 och AES-128-CMAC-96, och ersĂ€tter det tidigare tillgĂ€ngliga TCP-MD5-alternativet, som förlitade sig pĂ„ den förĂ„ldrade MD5-algoritmen.
    • Antalet delströmmar som stöds för Multipath TCP (MPTCP)-anslutningar har ökats frĂ„n 8 till 64.
    • Arbetet med att minska anvĂ€ndningen av det globala lĂ„set rtnl_lock i kĂ€rnans nĂ€tverksstack fortsatte.
    • KĂ€rnan har tagit bort implementeringen av AppleTalk-protokollstacken, som anvĂ€ndes i Apple-datorer sedan 1985 och ersattes pĂ„ 1990-talet av TCP/IPDessutom har komponenter för ATM-dataöverföringsteknik som inte Ă€r relaterade till PPPoATM tagits bort, liksom ARCnet-nĂ€tverksgrĂ€nssnitt baserade pĂ„ ISA- och PCMCIA-bussar, Bluetooth-adaptrar med PCMCIA-grĂ€nssnitt, Chelsea TLS-acceleratorer, kod för att integrera TLS med sockmap och stöd för 5/10 MHz-frekvensbanden i den trĂ„dlösa stacken cfg80211/mac80211. PĂ„ grund av olösta blockeringsproblem och brist pĂ„ underhĂ„llare har en specifik implementering av TLS-bearbetningsacceleration baserad pĂ„ TCP Offload Engine tagits bort (den vanligare TLS-offload-implementeringen behĂ„lls). Kompatibilitetskod med 32-bitars x_tables pĂ„ 64-bitarssystem har inaktiverats och Ă€r planerad att tas bort.
    • pppoe-drivrutinen stöder nu GRO (Generic Receive Offload) och GSO (Generic Segmentation Offload) mekanismer för hĂ„rdvaruacceleration av paketĂ„termontering och segmentering. AnvĂ€ndning av GRO och GSO ökar avsevĂ€rt genomströmningen av inkommande trafik. Till exempel, pĂ„ MediaTek MT7621-enheter konfigurerade med en adressöversĂ€ttare ökade den maximala genomströmningen frĂ„n 130 Mbit/s till 630 Mbit/s.
  • ĐžĐ±ĐŸŃ€ŃƒĐŽĐŸĐČĐ°ĐœĐžĐ”
    • AMDGPU-drivrutinen inkluderar nu initialt stöd för HDMI 2.1 FRL-teknik (Fixed Rate Link), vilket möjliggör överföring av okomprimerad video i 4K/120Hz och 8K/60Hz. Stöd för HDMI 2.1 var tidigare svĂ„rt att fĂ„ i drivrutiner med öppen kĂ€llkod pĂ„ grund av licenskrav frĂ„n HDMI Forum, men AMD har nu sĂ€krat en liknande implementering.
    • Drivrutinen för i915 har nu stöd för att stĂ€lla in bakgrundsfĂ€rgen för bildskĂ€rmskontrollern. Parametern pin_params.needs_low_address har implementerats.
    • Arbetet fortsatte med Xe DRM-drivrutinen (Direct Rendering Manager) för GPU:er baserad pĂ„ Intel Xe-arkitekturen, som anvĂ€nds i Intel Arc-seriens grafikkort och integrerade grafikkort, med början i Tiger Lake-processorer. Initialt stöd för CRI-plattformen (Crescent Island) har lagts till. En systemkontroller har implementerats för Xe3p dGPU-plattformar.
    • Nouveau-drivrutinen löser problem med NVIDIA GA100 GPU.
    • v3d-drivrutinen har uppdaterats för att inkludera möjligheten att hantera v3D GPU-strömförbrukning pĂ„ Raspberry Pi-kort.
    • Vi har fortsatt att integrera Nova-drivrutinskomponenter för NVIDIA-GPU:er utrustade med GSP-firmware som anvĂ€nts sedan NVIDIA GeForce RTX 2000-serien, baserad pĂ„ Turing-mikroarkitekturen. Drivrutinen Ă€r skriven i Rust. Stöd har lagts till för NVIDIA GA100-, Hopper- och Blackwell-seriens GPU:er.
    • Lade till stöd för ARM-kort, SoC och enheter: 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.

Samtidigt skapade Latin American Free Software Foundation en version av den helt fria kÀrnan 7.2 - Linux-libre 7.2-gnu, rensat frÄn firmware- och drivrutinselement som innehÄller icke-fria komponenter eller kodavsnitt med begrÀnsad omfattning av tillverkaren. Version 7.2 inkluderar en blob-rensning för de nya drivrutinerna rt722-sdca och tac5xx2. Rensningskoden för drivrutinerna amdgpu, nova core, qcom iris, q6v5, iwlwifi, amdxnda, adreno, r8152 och mt792x har uppdaterats. GrÀnssnitt för att ladda firmware har justerats. Blobnamn i devicetree-filer (dts) för ARM-chip har rensats.

KĂ€lla: opennet.ru

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster