UtslÀpp av Linux-kÀrnan 6.10

Efter tvÄ mÄnaders utveckling presenterade Linus Torvalds versionen av kÀrnan Linux 6.10. Bland de mest framtrÀdande förÀndringarna finns: ntsync-drivrutinen med Windows NT-synkroniseringsprimitiv, DRM Panic-komponenter för att implementera en analog till "blue screen of death", avstÀngning av stöd för Àldre Alpha-CPU:er, möjlighet till integritetsverifiering i FUSE-baserade filsystem, begrÀnsad Ätkomst till ioctl via Landlock-mekanismen, en subsystem för profilering av minnesallokeringsoperationer, systemanropet mseal(), möjlighet till krypterad datakommunikation med TPM-enheter, stöd för högprioriterade arbetsköer i dm-crypt, samt panthor-drivrutinen för den tionde generationens GPU Mali.

I den nya versionen ingÄr 14564 korrigeringar frÄn 1989 utvecklare, patchens storlek Àr 41 MB (Àndringarna berör 12509 filer, 547663 kodrader har lagts till, 312464 kodrader har tagits bort). I den föregÄende versionen fanns det 15680 korrigeringar frÄn 2106 utvecklare, patchens storlek var 54 MB. Cirka 41% av alla förÀndringar i 6.10 Àr relaterade till drivrutiner, ungefÀr 15% av förÀndringarna rör uppdatering av kod specifik för hÄrdvaruarkitekturer, 13% Àr relaterade till nÀtverksstacken, 5% till filsystem och 4% till interna subsystem i kÀrnan.

Huvudnyheterna i kÀrnan 6.10:

  • Disksubsystem, in- och utmatning och filsystem
    • En ny fcntl-operation F_DUPFD_QUERY har lagts till, som gör det möjligt för en process att avgöra att tvĂ„ olika filbeskrivare refererar till samma fil. Till skillnad frĂ„n liknande möjligheter som erbjuds av systemanropet kcmp(), avslöjar F_DUPFD_QUERY ingen extra information och fungerar pĂ„ system med kcmp inaktiverat.
    • I FUSE-subsystemet, som anvĂ€nds för att implementera filsysten i anvĂ€ndarutrymmet, har möjlighet att anvĂ€nda mekanismen fs-verity för att kontrollera integritet och Ă€kthet av filer implementerats.
    • I dm-crypt-modulen, som anvĂ€nds för att kryptera blockenheter, har en "high_priority"-alternativ lagts till, vilket gör det möjligt att anvĂ€nda högprioriterade arbetsköer för att öka prestandan pĂ„ kraftfulla enheter. servrar. Som standard Ă€r lĂ€get avstĂ€ngt, dĂ„ det kan leda till ökad latens pĂ„ vanliga datorer vid utförande av icke-krypteringsrelaterade arbetsuppgifter, sĂ„som ljudbearbetning.
    • En nĂ€tverksprotokoll baserat pĂ„ netlink har lagts till för att hantera NFS-servern i kĂ€rnan. I anvĂ€ndarutrymmet har ett verktyg som heter nfsdctl förberetts baserat pĂ„ detta protokoll. Stödet för att montera NFS v2 Ă€r inaktiverat som standard (i verktyget mount.nfs avbröts stödet för NFS v2 redan 2021).
    • Arbetet med att implementera möjligheten att anvĂ€nda verktyget fsck för att kontrollera och Ă„tgĂ€rda identifierade problem i filsystemet XFS har fortsatt, utan avmontering av filsystemet. ioctl XFS_IOC_EXCHANGE_RANGE för utbyte av byteomrĂ„den mellan tvĂ„ filer i atomĂ€rt lĂ€ge har lagts till.
    • I Btrfs har stöd för avskurna (shrinker) oavslutade kartor av extents implementerats, vilket kan vara anvĂ€ndbart för att minska minnesanvĂ€ndningen i lĂ„ga minnesförhĂ„llanden. Koden för datakomprimering och funktionen put_file_data() har omvandlats för att anvĂ€nda sidfollor (page folios). Mekanismen för lĂ„sning av extents vid utförande av Ă„terinspelning har omarbetats.
    • I filsystemet Ext4 har stöd för ioctl FS_IOC_GETFSSYSFSPATH lagts till för att bestĂ€mma platsen för det angivna monterade filsystemet i hierarkin /sys/fs.
    • Filsystemen OPENPROMFS, ISOFS, QNX6, NILFS2, MINIX och FREEVXFS har omvandlats för att anvĂ€nda det nya API:et för montering av partitioner.
    • I filsystemet EROFS (Extendable Read-Only File System), avsett för anvĂ€ndning pĂ„ partitioner som Ă€r tillgĂ€ngliga i skrivskyddat lĂ€ge, har stöd för Zstandard-komprimeringsalgoritmen lagts till.
    • I Bcachefs har förberedelser gjorts för att genomföra fsck utan att avmontera partitionen (online-kontroll). FörĂ€ndringar och korrigeringar har lagts till för att öka driftsĂ€kerheten. Möjlighet till uppgradering och Ă„terstĂ€llning av FS-formatet har implementerats i "nochanges"-lĂ€ge, vilket inaktiverar skrivning och lagrar metadata endast i minnet.
    • I filsystemet OverlayFS har stöd för skapande av temporĂ€ra filer med hjĂ€lp av alternativet O_TMPFILE lagts till.
    • Stödet för mekanismen för att begrĂ€nsa bandbredden för blockenheter "CONFIG_BLK_DEV_THROTTLING_LOW" har upphört, vilken sedan 2017 har haft status som experimentell, inte fĂ„tt genomslag i praktiken och försvĂ„rar underhĂ„llet av subsystemet för blockenheter.
  • Minne och systemtjĂ€nster
    • Tillagd, men inaktiverad vid kompilering, Ă€r drivrutinen ntsync, som implementerar den symboliska enheten /dev/ntsync och en uppsĂ€ttning primitiva funktioner för synkronisering som anvĂ€nds i Windows NT-kĂ€rnan. Genom att implementera sĂ„dana primitiva funktioner pĂ„ kĂ€rnnivĂ„ kan prestandan för Windows-spel som körs med Wine avsevĂ€rt öka. PrestandaförbĂ€ttringar uppnĂ„s genom att eliminera overheaden som Ă€r förknippad med anvĂ€ndning av RPC i anvĂ€ndarutrymmet. Skapandet av en separat drivrutin för Linux-kĂ€rnan förklaras av svĂ„righeterna att korrekt implementera NT:s synkroniserings-API pĂ„ befintliga primitiva funktioner i kĂ€rnan.
    • En underordnad modul för profilerings av minnesallokeringar har tillagts i Linux-kĂ€rnan, vilket gör det möjligt att upptĂ€cka minneslĂ€ckor i kĂ€rnan och förenklar genomförandet av minnesoptimeringar. Modulen har lĂ„g overhead, vilket gör att den kan anvĂ€ndas inte bara i debug-kĂ€rnkompileringar utan ocksĂ„ pĂ„ produktionssystem.
    • En preliminĂ€r implementation av en nödhantare i kĂ€rnan har lagts till — DRM Panic, som anvĂ€nder DRM (Direct Rendering Manager) subsystemet för att visa en tydlig fĂ€rgrapport i stil med "blue screen of death". I nĂ€sta version planeras möjligheten att visa en logotyp och QR-kod pĂ„ skĂ€rmen vid en nödsituation.
    • Överföringen av förĂ€ndringar frĂ„n Rust-for-Linux-grenen som rör anvĂ€ndning av Rust som andrasprĂ„k för utvecklingen av drivrutiner och kĂ€rnmoduler fortsĂ€tter (stöd för Rust Ă€r inte aktiverat som standard och medför inte att Rust ingĂ„r som ett obligatoriskt byggberoende för kĂ€rnan). ÖvergĂ„ngen till Rust-version 1.78 har genomförts, vilket möjliggjort anvĂ€ndning av standardbiblioteket alloc istĂ€llet för en egen gren. Abstraktioner för arbete med tid i kĂ€rnan har lagts till (en omslag runt strukturen ktime_t). Stöd för anvĂ€ndning av kĂ€rnkomponenter pĂ„ Rust i system med RISC-V-arkitektur har lagts till.
    • I BPF-program har möjligheten att anvĂ€nda vĂ€ntköer (wait queue) i kĂ€rnan implementerats. Funktionerna bpf_preempt_disable och bpf_preempt_enable har lagts till för att skapa sektioner med kod som inte kan avbrytas av schemalĂ€ggaren. BPF-program har nu tillgĂ„ng till kĂ€rnans kryptografiska funktioner (crypto). Stöd för JIT-kompilering av BPF-program pĂ„ system med 32-bitar processorer ARCv2 har implementerats.
    • För 32-bitar ARM-system har stöd för kĂ€rnbygge med Clang-compiler med aktiverat CFI-lĂ€ge (Control Flow Integrity) implementerats. Detta blockerar avvikelser frĂ„n normal körordning (control flow) pĂ„ grund av exploateringar som Ă€ndrar minneslagrade funktionspekare.
    • Möjligheten till direkt avbildning via mmap() av ringbuffertar för spĂ„rning och överföring av deras innehĂ„ll till anvĂ€ndarutrymmet utan ytterligare kopiering har lagts till.
    • Ett systemanrop "mseal" har lagts till, vilket gör det möjligt för processer att sĂ€tta en lĂ„sning pĂ„ att Ă€ndra vissa delar av sitt adressutrymme. I praktiken planeras det nya systemanropet att anvĂ€ndas i webblĂ€saren Chrome för att förstĂ€rka sandbox-isoleringen.
    • För subarkitekturen x32, som tillhandahĂ„ller en hybrid x86_64 ABI, vilket möjliggör anvĂ€ndning av 32-bitar adressmodell pĂ„ 64-bitar system (processorn arbetar i 64-bitar lĂ€ge, men anvĂ€nder 32-bitar pekare och aritmetiska operationer), har stöd för mekanismen Shadow Stack lagts till, vilket blockerar mĂ„nga exploateringar genom att anvĂ€nda Intel-processors hĂ„rdvarufunktioner för att skydda mot överskrivning av returadress frĂ„n funktioner vid buffertöverskridning i stacken.
    • PĂ„ ARM64-arkitektur system har möjligheter relaterade till skrivskyddavdelningar och element i sidtabeller implementerats i systemanropet userfaultfd(), som möjliggör skapandet av hanterare för sidfel (page faults) i anvĂ€ndarutrymmet.
    • Koden för att stödja Alpha 21164 (EV5) och tidigare serier av processorer, som slĂ€pptes 1995, har tagits bort. UnderhĂ„llet av koden för dessa processorer var komplicerat pĂ„ grund av avsaknaden av byte-nivĂ„ minnesĂ„tkomst. Alpha var den första arkitekturen dĂ€r Linux-kĂ€rnan portades, som ursprungligen endast var tillgĂ€nglig för x86-system.
  • Virtualisering och sĂ€kerhet
    • Stödet för krypterad dataöverföring med TPM-enheter (Trusted Platform Module) och verifiering av transaktionernas integritet har lagts till.
    • I LSM-modulen Landlock, som begrĂ€nsar interaktionen mellan en grupp processer och den externa miljön, har möjligheten att tillĂ€mpa regler för begrĂ€nsad Ă„tkomst till ioctl()-anrop lagts till.
    • En ny option init_mlocked_on_free som erbjuds vid uppstart, sĂ€kerstĂ€ller att innehĂ„llet i minnet, som skyddas frĂ„n att skrivas till swap-minnet med hjĂ€lp av mlock(), nollstĂ€lls om detta minne frigörs utan att lĂ„sas upp med munlock(). AnvĂ€ndning av denna option utesluter att kryptografiska nycklar finns kvar i minnet vid en krasch av applikationen som arbetar med dem.
    • I krypto-undersystemet har utförandet av disk-krypteringsoperationer med hjĂ€lp av AES-XTS-algoritmen snabba upp pĂ„ x86_64-system med Intel- och AMD-processorer som stöder VAES, AVX2, VPCLMULQDQ, AVX10 eller AVX512.
    • Möjligheten att samla statistik om anvĂ€ndning av kĂ€rnans kryptosystem (CONFIG_CRYPTO_STATS) har tagits bort. Denna funktion anvĂ€ndes praktiskt taget inte och orsakade betydande prestandaförluster samt skapade en merkostnad för underhĂ„llarna.
  • NĂ€tverkssystemet
    • Prestandan för dataöverföringsoperationer i zero-copy-lĂ€ge har avsevĂ€rt förbĂ€ttrats genom anvĂ€ndning av io_uring-subsystemet. Möjligheten att sammanfoga ("bundle") flera buffertar för dataöverförings- och mottagningsoperationer har lagts till.
    • Koden för skrĂ€puppsamling, som anvĂ€nds vid överföring av filhandtag via Unix-socketar med SCM_RIGHTS-meddelanden, har skrivits om. Ändringen löser problemet med cykliska referensrĂ€knare.
    • Möjligheten att installera filter för PFCP-protokollet (Packet Forwarding Control Protocol), som anvĂ€nds i 4G- och 5G-nĂ€tverk, har lagts till.
    • Stöd för socket-alternativet SO_PEEK_OFF har lagts till, vilket, pĂ„ samma sĂ€tt som det liknande alternativet för Unix-sockets, gör det möjligt att bestĂ€mma förskjutningen av data i kön som anvĂ€nds av systemanropet recv nĂ€r flaggan MSG_PEEK anges (markerar data som olĂ€sta och de kommer att ges igen vid nĂ€sta anrop av recv).
    • Stöd för operationen IORING_CQE_F_SOCK_NONEMPTY har lagts till i io_uring-systemet, vilket gör det möjligt att bestĂ€mma om en nĂ€tverksocket har anslutningsförfrĂ„gningar som vĂ€ntar pĂ„ behandling.
    • En implementation av PoE (Power over Ethernet) -teknologin har föreslagits, baserat pĂ„ tidigare tillgĂ€nglig kod för stöd av PoDL (Power over Data Line) och kompatibel med PoE-kontroller Microchip PD692x0 och TI TPS23881.
    • För protokollen TCP, DCCP och MPTC har stödet för mekanismen rstreason lagts till, vilket gör det möjligt att bestĂ€mma orsaken till att RST-paket skickas (till exempel NO_SOCKET).
  • Utrustning
    • Drivern panthor för den tionde generationens GPU Mali (G310, G510, G710) har inkluderats, dĂ€r teknologin CSF (Command Stream Frontend) anvĂ€nds, vilket flyttar vissa funktioner frĂ„n drivrutinen till firmware för att minska belastningen pĂ„ CPU:n och erbjuder en ny modell för organisering av arbetsuppgifter pĂ„ GPU:n. Ändringar för stöd av den nya drivrutinen har ocksĂ„ antagits i Mesa och inkluderats i Gallium-drivrutinen panfrost för GPU Mali.
    • PCI-id för nya diskreta grafikkort frĂ„n Intel Arc (DG2/Alchemist) har lagts till i drivrutinen i915.
    • 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, har fortsatt, med stöd för CPU Arrow Lake H tillagt. Arbetet med att implementera stöd för Lunar Lake-processorer har fortsatt. GrundlĂ€ggande stöd för mekanismen SR-IOV (Single Root I/O Virtualization) har lagts till.
    • Stöd för SMU 14.0 (System Management Unit) har lagts till i AMDGPU-drivrutinen. Möjligheten att anvĂ€nda nya AMD GPU:er pĂ„ system med RISC-V-arkitektur har lagts till.
    • En drivrutin för Tegra Security Engine, som kan anvĂ€ndas för att pĂ„skynda AES och olika hash-algoritmer, har lagts till.
    • Stöd för skĂ€rmpanelerna LG SW43408, Innolux G121XCE-L01 LVDS, RK3326 GameForce Chi, Crystal Clear CMT430B19N00, POWERTIP PH128800T006-ZHC01, Startek KD050HDFIA020-C020A, Pixel 3a, Khadas TS050 V2, Raydium RM69380, BOE NT116WHM-N44, CMN N116BCA-EA1 och AUO B120XAN01.0 har lagts till.
    • Stöd för ljudsystemet i bĂ€rbara datorer Lenovo Thinkbook 13x Gen 4, Lenovo Thinkbook 16P Gen 5, Lenovo Thinkbook 13X och ASUS Zenbook 2024 HN7306 har lagts till. Stöd för externa ljudkort Vocaster One och Vocaster Two har lagts till. En drivrutin för förstĂ€rkare NAU8325 frĂ„n Nuvoton Technology har lagts till.
    • I HID-Steam-drivrutinen har stöd för IMU (Inertial Measurement Unit) för spelkontrollen Steam Deck lagts till, vilket möjliggör anvĂ€ndning av en separat evdev-enhet för Ă„tkomst till gyro- och accelerometerdata.
    • Ändringar för att stödja ARM SoC Snapdragon X Elite, som anvĂ€nder en egen 12-kĂ€rnig CPU Qualcomm Oryon och GPU Qualcomm Adreno, har aktiverats. Chipsatsen Ă€r riktad mot anvĂ€ndning i bĂ€rbara datorer och PC, och presterar bĂ€ttre Ă€n Apple M3 och Intel Core Ultra 155H i mĂ„nga prestandatester.
    • Stöd för ARM-plattor, SoC och enheter har lagts till: PocketBook 614 Plus, Sony Xperia Z3, Xperia 1 V, Samsung Galaxy S5 Kina, Motorola Moto G, RK3326 GameForce Chi, Anbernic RG35XX (Plus/H/2024), Airoha EN7581, Radxa ROCK 3C, ArmSom Sige7, Tanix TX1, Toradex Colibri iMX8DX, Renesas RZ/V2H, Forlinx OK3588-C, Protonic MECSBC, Emcraft Systems NavQ+, NXP S32G3, Wolfvision pf5, Amlogic A4/A5, ASUS RT-AC3200, ASUS RT-AC5300, ASrock E3C256D4I, IBM system1 BMC, Meta Harma BMC(AST2600), ASRock X570D4U BMC, Au-Zone Maivin AI Vision Starter Kit.
    • Stöd för Milk-V Mars-kort som anvĂ€nder SoC Starfive JH7110 baserat pĂ„ RISC-V-arkitekturen har lagts till.

Samtidigt har den latinamerikanska Stiftelsen för fri programvara skapat en version av den helt fria kĂ€rnan 6.10 — Linux-libre 6.10-gnu, som har rensats frĂ„n element av firmware och drivrutiner som innehĂ„ller icke-fria komponenter eller kodavsnitt vars anvĂ€ndningsomrĂ„de Ă€r begrĂ€nsat av tillverkaren. I version 6.10 har rensningskoden för blobbar i Intel i915-, rtl8xxxu-, qla2xxx- och QCAI sahara-drivrutinerna uppdaterats. Namnen pĂ„ blobbar i dts-filer (devicetree) för arkitekturen Aarch64 har rensats. Nya filer som lagts till i Adreno-, Intel IPU3- och PRUEth-drivrutinerna har rensats frĂ„n blobbar. Rensning av de nya drivrutinerna Panthor, Intel IPU6, PRUEth SR1, rtw8703b, tps23881, air_en8811h, Intel ISH HID och pcm6240 har genomförts. Rensningen av USB-drivrutinen Prism2.5/3 USB har avslutats, vilket har tagits bort frĂ„n kĂ€rnan.

KĂ€lla: opennet.ru

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