Linux 7.0

Linux 7.0

Efter tvÄ mÄnaders utveckling presenterade Linus Torvalds Är kÀrnlansering Linux 7.0. Bland de mest anmÀrkningsvÀrda förÀndringarna finns: regler för anvÀndning av AI-assistenter, överföring av Rust till kÀrnans huvudfunktioner, ökad prestanda för swap, aktivering av PREEMPT_LAZY-lÀget som standard, stöd för filter för io_uring-operationer, den nya filsystemet Nullfs, fserror-infrastruktur, övervakningsverktyg för XFS, stöd för remapping i Btrfs, aktivering av NFS-version 4.1 som standard, integration av det post-kvantiska kryptografiska algoritmen ML-DSA, aktivering av AccECN i nÀtverksunderlaget, och inledande stöd för WiFi 8.

Nummer 7.0 tilldelades eftersom det i grenen 6.x hade samlats tillrÀckligt med utgÄvor för att byta det första numret (nÀr version 6.0 slÀpptes följde den direkt efter 5.19). Bytet av numrering görs av estetiska skÀl och Àr ett formellt steg som tar bort obehaget frÄn att ha ett stort antal utgÄvor i serien.

I den nya versionen har 15624 korrigeringar accepterats frÄn 2477 utvecklare, patchens storlek Àr 56 MB (förÀndringar har berört 18053 filer, 704060 rader kod har lagts till och 278132 rader har tagits bort). I den föregÄende utgÄvan gjordes det 15657 korrigeringar av 2237 utvecklare, patchens storlek var 52 MB. UngefÀr 51% av alla förÀndringar som presenterades i 7.0 Àr relaterade till enhetsdrivrutiner, cirka 11% av förÀndringarna Àr relaterade till uppdatering av kod specifik för hÄrdvaruarkitekturer, 14% Àr kopplade till nÀtverksstacken, 5% till filsystem och 3% till interna kÀrnsystem.

De viktigaste nyheterna i kÀrnan 7.0 (kernelnewbies.org, lwn.net, OpenNET):

  • Disksubsystem, in- och utmatning och filsystem
    • Fserror-infrastruktur har implementerats och tillagd API för att fĂ„ information om in-/utdatafel och metadataförstöring nĂ€r man arbetar med filer. Den föreslagna infrastrukturen förenar överföringen av felinformation till anvĂ€ndarutrymmet genom fsnotify-mekanismen inom filssystemen.
    • I XFS har lagts till finns nya möjligheter för övervakning av filsystemets tillstĂ„nd frĂ„n anvĂ€ndarutrymmet. En ioctl-operation, XFS_IOC_HEALTH_MONITOR, föreslĂ„s, som returnerar en filbeskrivare genom vilken information kan erhĂ„llas om fel relaterade till metadataförstöring eller in-/utdatafel, samt att man kan övervaka förĂ€ndringar i tillstĂ„ndet för filsystemet, som avmontering och nedstĂ€ngning. Dessutom har en bakgrundsprocess, xfs_healer, föreslagits som körs via systemd och hanterar hĂ€ndelser om filsystemets tillstĂ„nd frĂ„n anvĂ€ndarutrymmet och vid behov automatiskt startar Ă„terstĂ€llningsprocedurer.
    • Ett experimentellt stöd för "remapping tree"-strukturen har lagts till i filsystemet Btrfs (remap tree), som i framtiden kan anvĂ€ndas som ett mellanlager vid utförande av in- och utdataoperationer. Huvudsyftet med den tillagda funktionen Ă€r att efter flyttning av data pĂ„ lagringsenheten, istĂ€llet för att uppdatera alla relaterade strukturer för dessa data i den extra strukturen "remap tree", behĂ„lla de gamla och nya adresscellerna för data, för att vid Ă„tkomst till data ersĂ€tta adresserna. Den nya metoden presenteras som mer pĂ„litlig och flexibel, vilket ocksĂ„ förenklar ytterligare funktionalitetsutvidgning av Btrfs.
    • I Btrfs har möjligheten stödet för direkt in- och utdata i situationer dĂ€r blockstorleken överstiger sidstorleken i systemet.
    • I sammansĂ€ttningen Ă€r inkluderad den nya filsystemet Nullfs, som kan anvĂ€ndas som en platshĂ„llare för den rotfilssystemet. Filsystemet Nullfs Ă€r alltid tomt, innehĂ„ller inga data och stöder inga förĂ€ndringar. Syftet med Nullfs Ă€r att anvĂ€ndas som en initial FS för att förenkla systemets uppstart – andra FS mountas ovanpĂ„ Nullfs och systemanropet pivot_root() anvĂ€nds för att byta rotfilssystem istĂ€llet för att rensa initramfs-innehĂ„llet och anvĂ€nda dess relaterade rotfilssystem.
    • Implementerad uppdatering av information om Ă€ndringstider för filer i icke-blockerande lĂ€ge. Tidigare returnerade anropet file_update_time_flags() med flaggan IOCB_NOWAIT ett fel -EAGAIN, vilket gjorde det omöjligt att anvĂ€nda direkt skrivoperationer i icke-blockerande lĂ€ge.
    • I filsystemen som avgrĂ€nsade separata alternativ översatts stödet för notifieringslĂ„s (lease). Som standard aktiveras inte en sĂ„dan mekanism nu pĂ„ grund av problemen med filsystem som ursprungligen inte var avsedda att anvĂ€ndas. Till exempel stöds det inte av filsystem 9p och cephfs.
    • I filsystemet EROFS (Extendable Read-Only File System), avsett för anvĂ€ndning pĂ„ partitioner tillgĂ€ngliga i skrivskyddat lĂ€ge, anvĂ€nds som standard LZMA-algoritmen för komprimering. Valfria algoritmer DEFLATE och Zstandard, som inte lĂ€ngre mĂ€rkts som experimentella, Ă€r ocksĂ„ tillgĂ€ngliga. Delning av poster i sidcache (page-cache) för identiska filer i separata EROFS-filsystem har implementerats.
    • Borttagen laptop_mode, som sparar energi genom att fördröja och slĂ„ samman skrivoperationer pĂ„ hĂ„rddisken för att förlĂ€nga tiden disken Ă€r i vilolĂ€ge och minska antalet uppvaknanden. LĂ€ge har förlorat relevans, eftersom moderna mobila enheter har ersatt hĂ„rddiskar med SSD-enheter.
    • Filsystemet F2FS har översatts till att anvĂ€nda stora minnessidor (large folios).
    • Arbetet med drivrutinen ntfs3 har Ă„terupptagits, som utvecklas av Paragon Software. Stöd har lagts till för filoperationer baserade pĂ„ iomap, funktionerna llseek SEEK_DATA/SEEK_HOLE har implementerats, och lĂ€get delalloc för fördröjd blockallokering har lagts till. Under tiden godkĂ€ndes i februari inkluderingen av en ny implementation av NTFS — ntfsplus , som har utvecklats för att ersĂ€tta ntfs3.Som standard vid byggnation
    • anvĂ€nds version 4.1 av protokollet NFS (CONFIG_NFS_V4_1). Ă€r inkluderad ExportlĂ„sning via NFS av specialiserade pseudo-FS, sĂ„som pidfs och nsfs, har sĂ€kerstĂ€llts. I NFSD stöd för navigering med musens framĂ„t/bakĂ„t-knappar i olika applikationer. stöd för dynamisk justering av trĂ„dpoolen beroende pĂ„ belastning. har möjligheten De officiella reglerna för har lagts till anvĂ€ndning av AI-assistenter
  • Minne och systemtjĂ€nster
    • och inkludering i kĂ€rnan automatiskt genererat innehĂ„ll . Vid överföring av genererad kod mĂ„ste den mĂ€rkas med den anvĂ€nda AI-assistentens namn genom taggen Assisted-by. AI-assistenter fĂ„r inte lĂ€gga till taggen Signed-off-by – personen som överförde patchen betraktas som dess författare, ansvarar för den överförda Ă€ndringen och gĂ„r i god för dess kvalitet. Utvecklare Ă„lĂ€ggs att genomföra manuell granskning av koden som tagits emot via AI och se till att resultatet uppfyller licenskraven. Stödet för Rusthar flyttats frĂ„n experimentella till

    • de grundlĂ€ggande funktionerna i kĂ€rnan översatts integrationen i kĂ€rnan av mekanismen “ ”, som möjliggör bĂ€ttre prestanda för swap. FörbĂ€ttringar uppnĂ„s genom att minska konkurrensen om Ă„tkomst till swap-cachen, effektivare sökning i cachen och minskad fragmentering. Backend baserad pĂ„ Swap Table har anvĂ€nts för cachelagring av swap istĂ€llet för backend XArray, vilket i redis-benchmark-testet med BGSAVE har lett till en ökning av antalet bearbetade förfrĂ„gningar med 22%..

    • Integrationen av drivrutinen Stöd har lagts till för den nya utvidgningen som introducerades i Clang 22,Swap TableThread Safety Analysis

    • Thread Safety Analysis Thread Safety Analysis, vilket gör det möjligt att identifiera potentiella race condition och fel orsakade av felaktig lĂ„sning vid kompilering. TillĂ€gget erbjuder en serie attribut som GUARDED_BY(
), REQUIRES(
), RELEASE(
) och ACQUIRE(
), som gör det möjligt att ange funktioner som omfattas av lĂ„s och skilja omrĂ„den för lĂ„s (definiera kontext). Under kompileringen kontrolleras korrektheten i tillĂ€mpningen av synkronisering primitiver, sĂ„som mutexar, baserat pĂ„ bedömning av aktiviteten eller inaktiviteten i den relaterade kontexten.

    • Till systemanropet open_tree tillagd flaggan OPEN_TREE_NAMESPACE för att förenkla konfigurationen av isolerade containrar och snabba upp lanseringen av containrar pĂ„ system med mĂ„nga monteringspunkter. PĂ„ samma sĂ€tt som OPEN_TREE_CLONE kopierar den nya flaggan endast den angivna monteringspunktstrĂ€det (mount tree), men istĂ€llet för en lokal filbeskrivare returnerar den en filbeskrivare i det nya namespace för monteringspunkter, dĂ€r den kopierade trĂ€den monteras över en kopia av den verkliga rotfilsystemet. Flaggan OPEN_TREE_NAMESPACE Ă€r efterfrĂ„gad för att undvika separata operationer unshare(CLONE_NEWNS) och pivot_root(), som anvĂ€nds vid skapandet av containrar.

    • Till systemanropet rseq tillagd mekanismen för att utöka tidskvoter (time slice), vilket gör det möjligt att fĂ„ extra processortid för oavbruten exekvering av kritiska sektioner. IdĂ©n Ă€r att undvika att schemalĂ€ggaren avbryter kritiska sektioner med en aktiv lĂ„s, vilket leder till att kontrollen överlĂ€mnas till andra trĂ„dar som anvĂ€nder resursen, vilkas lĂ„s fortfarande Ă€r aktiva. Utvidgningen av tidskvoten görs utan ytterligare overhead, men ocksĂ„ utan de strikta garantier som tillhandahĂ„lls vid fullstĂ€ndig prioriteringsreglering.

    • För arkitekturer arm64, loongarch, powerpc, riscv, s390 och x86 Ă€r preemptionslĂ€get (preemption) i schemalĂ€ggaren som standard Ă€ndrat frĂ„n PREEMPT_NONE till PREEMPT_LAZY. Antalet möjliga lĂ€gen har minskat frĂ„n fyra till tvĂ„ – PREEMPT_FULL och PREEMPT_LAZY (lĂ€gena PREEMPT_NONE och PREEMPT_VOLUNTARY lĂ€mnas endast för arkitekturer som inte stöder PREEMPT_FULL och PREEMPT_LAZY). LĂ€ge PREEMPT_LAZY tillĂ€mpar en modell av fullstĂ€ndig preemption (PREEMPT_FULL) för realtidsuppgifter (RR/FIFO/DEADLINE), men skjuter upp preemption av vanliga uppgifter (SCHED_NORMAL) till tickgrĂ€nsen. Denna fördröjning leder till fĂ€rre fall av preemption av lĂ„sinhavare, vilket gör att prestandan nĂ€rmar sig konfigurationer som anvĂ€nder en modell av frivillig preemption (voluntary preemption), det vill sĂ€ga att PREEMPT_LAZY gör det möjligt att behĂ„lla kapabiliteter för fullstĂ€ndig preemption vad gĂ€ller realtidsuppgifter, men minimerar prestandaförsĂ€mringar för vanliga uppgifter.

      Aktivering av PREEMPT_LAZY ledde till en allvarlig regression som halverar prestandan för PostgreSQL pÄ ARM64-system. För att ÄtgÀrda prestandafallet rekommenderar utvecklarna av PostgreSQL föreslagit att aktivera PR_RSEQ_SLICE_EXTENSION-alternativet för att minska risken för preemption av lÄsinhavare.

    • Fortsatt överföring av förĂ€ndringar frĂ„n grenen Rust-for-Linux, relaterade till anvĂ€ndningen av Rust som ett andrasprĂ„k för utveckling av drivrutiner och kĂ€rnmoduler (stöd för Rust Ă€r inte aktivt som standard och leder inte till att Rust ingĂ„r som en obligatorisk byggberoende till kĂ€rnan). Tack vare det tidigare integrerade biblioteket "syn (crates.io)" som förenklar skrivandet av komplexa makron, har storleken pĂ„ Rust-koden i kĂ€rnan kunnat minskas genom att förenkla definitionerna av befintliga procedurala makron. Möjligheterna för biblioteken kernel, macros och pin-init har utökats.

    • I systemet för asynkron in- och utmatning io_uring har lagts till ett alternativ för att anvĂ€nda icke-cirkulĂ€ra köer (non-circular submission queue), som Ă€r mer effektivt cachat nĂ€r körningen av en begĂ€ran avslutas innan retur frĂ„n systemanropet.

    • I eBPF-subsystemet i BTF-mekanismen (BPF Type Format), som tillhandahĂ„ller information för typkontroll i BPF-pseudokod, för att söka efter felsökningsinformation aktiverad binĂ€r sökning, vilket har ökat effektiviteten vid inlĂ€sning av BPF-program. I eBPF har lagts till stöd för implicita argument vid anrop av kfunc (kĂ€rnfunktioner som Ă€r tillgĂ€ngliga för anvĂ€ndning i BPF-program), definierade med flaggan KF_IMPLICIT_ARGS.

    • Borttagen kod för att stödja initial RAM-disk (initrd) baserad pĂ„ linuxrc, som lĂ€nge har ansetts förĂ„ldrad. De kvarvarande implementationerna av initrd planeras att tas bort Ă„r 2027. IstĂ€llet för initrd bör man anvĂ€nda initramfs (skillnaden Ă€r att initrd placerar den initiala uppstartsmiljön i en diskavbild, medan initramfs ligger i filsystemet).

    • I blockenheten zram, som anvĂ€nds för komprimerad lagring av swap-partitionen i minnet, Ă€ndrad logiken för arbete med komprimerade minnessidor vid valfri flytt av data till permanent lagring vid fyllning av tillgĂ€ngligt RAM-minne. Tidigare packades minnessidor upp innan de skrevs till den fysiska enheten, men nu sparas de i komprimerat tillstĂ„nd, vilket minskar CPU- och energiförbrukningen vid drift utan ström.

    • I verktyget timerlat, avsett för att mĂ€ta fördröjningar vid arbetet med schemalĂ€ggaren, har lagts till alternativet —bpf-action för att köra BPF-program vid överskridande av angiven tröskel.

    • I ftrace-systemet har en bitmask-listparameter lagts till för att visa bitmasker i ett lĂ€sbart format (i form av en lista av bitar, snarare Ă€n ett hexadecimalt tal). I tracefs har funktioner lagts till för revision filter och utlösare. Tillagd kommandot perf sched stats för att samla och visa statistik om schemalĂ€ggarens arbete.

    • Tillagda byggalternativen LOGO_LINUX_MONO_FILE, LOGO_LINUX_VGA16_FILE och LOGO_LINUX_CLUT224_FILE för att specificera en bildfil av logotypen som visas vid kĂ€rnans start istĂ€llet för den vanliga logotypen med pingvinen Tux.

  • Virtualisering och sĂ€kerhet
    • I systemet för asynkron in- och utdata io_uring har möjligheten möjligheten att fĂ€sta BPF-program med filter som kontrollerar vad specifika SQE (Submission Queue Entry) operationer kan göra (liknande systemanrop i io_uring). Den tillagda funktionen Ă€r en analog av systemanropsfilter. Filter kan kopplas till specifika uppgifter och de Ă€rversegĂ„ende nĂ€r andra processer skapas efter ett fork()-anrop. Vid aktiva filter kan endast ytterligare begrĂ€nsningar lĂ€ggas pĂ„, men befintliga kan inte stĂ€ngas av. Den implementerade funktionen möjliggör att blockera metoder omgĂ„endefilter för systemanrop i sandbox-miljöer, baserat pĂ„ att utföra liknande operationer, som erbjuds i io_uring istĂ€llet för systemanrop.
    • I SELinux har lagts till möjligheten att hantera Ă„tkomst till BPF-tokens, som tillĂ„ter oprĂ€ttad icke-privilegierad process att utföra vissa privilegierade operationer med BPF, till exempel att ladda BPF-program till kĂ€rnan och skapa map-strukturer.
    • Tillagd stöd för algoritmen för digital signaturbildning ML-DSA (CRYSTALS-Dilithium), baserad pĂ„ gitterteori och motstĂ„ndskraftig mot bruteforce-attacker pĂ„ kvantdatorer. TillhandahĂ„llet möjlighet att anvĂ€nda ML-DSA för autentisering av kĂ€rnmoduler.
    • Borttagen möjlighet att anvĂ€nda signaturbildningsscheman med SHA-1-algoritmen för att verifiera kĂ€rnmoduler (stöd för laddning av signerade moduler Ă€r kvar).
    • I NETFILTER_PKT-revisionsloggen har lagts till fĂ€lten sport och dport för inspektion av nĂ€tverksportnummer, och inte bara IP-adresser.
    • För system med RISC-V-arkitektur har möjligheten stöd för Zicfiss och Zicfilp-förlĂ€ngningar, som ger hĂ„rdvarufunktioner för att tillĂ€mpa CFI-skydd (Control Flow Integrity) som blockerar brott mot den normala exekveringsordningen (control flow) som en följd av exploateringar som Ă€ndrar minneslagrade funktionspekare.
    • I hypervisorn KVM har möjligheten möjlighet att överföra information till gĂ€stsystene om processorns stöd för ERAPS-förlĂ€ngningen (Enhanced Return Address Predictor Security), vilket möjliggör att undvika vissa CPU-tillstĂ„ndsresetoperationer nĂ€r kontrollen Ă„terlĂ€mnas till vĂ€rden av ett gĂ€stsystem. Dessutom, har lagts till stöd för att fĂ€sta hĂ„rdvara till gĂ€stsystene för prestandaövervakning (PMU, Performance Monitoring Unit), vilket ökar noggrannheten i profilering jĂ€mfört med anvĂ€ndning av emulerade PMU.
    • I Hyper-V-hypervisordrivrutinen har lagts till stöd för debugfs-grĂ€nssnittet för att visa statistik om hypervisorens drift.
  • NĂ€tverkssystemet
    • Standardaktiverat Ă€r AccECN-förlĂ€ngningen (Accurate Explicit Congestion Notification), som implementerar en förbĂ€ttrad version av ECN (wikipedia.org), vilket gör det möjligt för vĂ€rdar att mĂ€rka IP-paket vid överbelastning istĂ€llet för att kassera dem, vilket ger möjlighet att identifiera tidiga tecken pĂ„ köer i samband utan att förlora paket. Den ursprungliga ECN-förlĂ€ngningen har en begrĂ€nsning som tillĂ„ter endast en signal om överbelastning per cykel av mottagning-överföring TCP (RTT, Round-Trip Time, skicka frĂ„ga och fĂ„ svar). AccECN tar bort denna begrĂ€nsning och ger mottagaren möjlighet att skicka mer Ă€n en överbelastningsmĂ€rkning till avsĂ€ndaren i TCP-paketets rubrik. Överbelastningskontrollalgoritmer kan anvĂ€nda den informationen för att reagera mer exakt pĂ„ överbelastning och undvika att drastiskt minska paketens sĂ€ndningsintensitet vid liten överbelastning.
    • Implementeringen av algoritmen för nĂ€tverkskökontroll Cake har lagts till möjligheten att hantera flera köer för att fördela belastningen över flera CPU-kĂ€rnor. CAKE-algoritmen tillĂ€mpas för att minska den negativa pĂ„verkan av mellanliggande paketbuffring pĂ„ grĂ€nsnĂ€tverksutrustning och syftar till att uppnĂ„ maximal bandbredd och minimal fördröjning Ă€ven pĂ„ lĂ„ngsamma anslutningar.
    • I sockets VSOCK, som anvĂ€nds för interaktion med virtuella maskiner, har lagts till stöd för nĂ€tverksnamnrymder (network namespace).
    • Tillagd den första implementeringen av den framtida standarden WiFi 8 (802.11bn, Ultra High Reliability WiFi).
    • Tillagda optimeringar som har ökat prestandan för bearbetning av inkommande UDP-paket med 12% vid stresstester i ett 100-gigabitnĂ€t.
  • Utrustning
    • I AMDGPU-drivrutinen har möjligheten stöd för IP-block, som anvĂ€nds i nya AMD GPU:er, sĂ„som SMUIO 15.x, PSP 15.x, IH 6.1.1/7.1, MMHUB 3.4/4.2, GC 11.5.4/12.1, SDMA 6.1.4/7.1/7.11.4 och JPEG 5.3.
    • I Nouveau-drivrutinen har frekvenshanteringen förbĂ€ttrats pĂ„ system med Tegra 186+.
    • I drivrutinen i915 har lagts till det första stödet för display-IP-blocket Xe3p_LPD, som anvĂ€nds i Intel Nova Lake-P processorer.
    • FortsĂ€tter arbetet med drm-drivrutinen (Direct Rendering Manager) Xe för GPU:er baserade pĂ„ Intel Xe-arkitekturen, som anvĂ€nds i Intel Arc grafikkort och integrerad grafik, börjar med Tiger Lake-processorer. En lĂ€ge har lagts till Multi Queue. Tillagda komponenterna som behövs för att diagnostisera GPU:ernas hĂ€ngningar i Mesa. Tillagd stöd för MERT-mekanismen för att hantera Ă„tkomst till GPU-minnet.
    • FortsĂ€tter Integration of driver components for NVIDIA GPUs equipped with GSP firmware, used starting from the NVIDIA GeForce RTX 2000 series based on the Turing microarchitecture. The driver is written in Rust. The new version includes preparations for implementing support for Turing-based GPUs and several internal changes.
    • Tillagd Support for controllers and peripheral devices with a multi-channel SPI (Serial Peripheral Interface) interface, allowing data to be transmitted in multiple parallel streams.
    • Tillagd Driver for combined Type-C connectors used on devices with Apple Silicon chips, integrating USB3, DP-AltMode, and Thunderbolt/USB4 interfaces.
    • Added support for sound subsystems of Tegra238 chips, Minisforum V3 SE, iBasso DC04U, Intel Nova Lake, Nova Lake S, and Focusrite Forte.
    • Added support for ARM platforms, SoCs, and devices: Arduino UnoQ, OrangePi 6 Plus, OrangePi CM5, Anbernic RG-DS, Realtek Kent, Qualcomm Kaanapali, Mediatek Ezurio, Facebook Anacapa, Microchip LAN9668, Khadas VIM1S, QNAP TS133, i.MX952, i.MX93, i.MX94, VHIP4 EvalBoard, TQ-Systems MBLS1028A, Agilex5, Radxa CM3J, Glymur,
    • Stöd för smartphones och surfplattor har lagts till: Fairphone Gen 6 (SoC Qualcomm Milos/Snapdragon 7s Gen 3), Pixel 3/3 xl, Microsoft Surface Pro 11.

Samtidigt har den Latinamerikanska stiftelsen för fri programvara skapat en variant Fully free kernel 7.0 – Linux-libre 7.0-gnu, cleared of firmware and driver elements containing non-free components or code sections limited by the manufacturer. Release 7.0 includes a cleanup of the iwlwifi driver blobs. The cleanup code has been updated in the amdgpu, adreno, TI PRUeth, air_en8811h, ath12k, TI VPE, rtw8852b, rt1320, rt5575 SPI, tas2783, Intel catpt drivers. The names of blobs have been cleaned up in dts files (device tree) for ARM chips.

KĂ€lla: linux.org.ru

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