Utgivningen av Linux-kÀrnan 6.7

Efter tvÄ mÄnaders utveckling presenterade Linus Torvalds slÀppet av Linux kÀrna 6.7. Bland de mest mÀrkbara förÀndringarna finns: integration av filsystemet Bcachefs, upphörande av stöd för Itanium-arkitekturen, möjlighet för Nouveau att fungera med GSP-R-firmware, stöd för TLS-kryptering i NVMe-TCP, möjligheten att anvÀnda undantag i BPF, stöd för futex i io_uring, prestandaoptimering av schemalÀggaren fq (Fair Queuing), stöd för TCP-AO (TCP Authentication Option) och möjlighet att begrÀnsa nÀtverksanslutningar i Landlock-skyddsmekanismen, samt tillagd Ätkomsthantering för user namespace och io_uring genom AppArmor.

I den nya versionen har 18405 patchar accepterats frÄn 2066 utvecklare, patchstorleken Àr 72 MB (förÀndringarna berörde 13467 filer, 906147 rader kod har lagts till, och 341048 rader har tagits bort). I den föregÄende versionen fanns 15291 patchar frÄn 2058 utvecklare, och patchstorleken var 39 MB. UngefÀr 45% av alla förÀndringar i 6.7 Àr relaterade till enhetsdrivrutiner, cirka 14% av förÀndringarna handlar om uppdatering av arkitekturspecifik kod, 13% Àr relaterade till nÀtverksstacken, 5% handlar om filsystem och 3% om interna kÀrnsystem.

Huvudnyheterna i kÀrna 6.7:

  • Disksubsystem, in- och utmatning och filsystem
    • Koden för filsystemet Bcachefs har accepterats i kĂ€rnan, dĂ€r man har försökt att uppnĂ„ nivĂ„er av prestanda, tillförlitlighet och skalbarhet som Ă€r typiska för XFS, i kombination med inslag av utökad funktionalitet som finns i Btrfs och ZFS. Till exempel stöder Bcachefs funktioner som att inkludera flera enheter i en partition, flerlagerslagring av enheter (lĂ€ge med ofta anvĂ€nda data pĂ„ snabba SSD-enheter och ett överliggande lager med mindre efterfrĂ„gade data frĂ„n hĂ„rddiskar), replikering (RAID 1/10), cachelagring, transparent datakompression (LZ4, gzip och ZSTD-lĂ€gen), snapshots, integritetsverifiering via checksummor, möjlighet att lagra Reed-Solomon felkorrigeringskoder (RAID 5/6) och lagring av information i krypterad form (anvĂ€nder ChaCha20 och Poly1305). NĂ€r det gĂ€ller prestanda övertrĂ€ffar Bcachefs Btrfs och andra filsystem baserade pĂ„ Copy-on-Write-mekanismen och visar en hastighet som ligger nĂ€ra Ext4 och XFS.
    • I filsystemet Btrfs har en förenklad kvotlĂ€ge introducerats som möjliggör högre prestanda genom att spĂ„ra extents endast i den underkategori dĂ€r de skapas, vilket avsevĂ€rt förenklar berĂ€kningarna och ökar prestandan, men inte tillĂ„ter att beakta extents som anvĂ€nds gemensamt i flera underkategorier.
    • Btrfs har fĂ„tt en ny datastruktur "stripe tree", som Ă€r lĂ€mplig för logisk mappning av extents i situationer dĂ€r den fysiska mappningen inte överensstĂ€mmer mellan olika enheter. Strukturen anvĂ€nds för nĂ€rvarande i implementationer av RAID0 och RAID1 för zonerade blockenheter. I framtiden planeras denna struktur att anvĂ€ndas Ă€ven i RAID av högre nivĂ„, vilket kommer att lösa flera problem i den nuvarande implementationen.
    • I filsystemet Ceph har stöd för mappning av anvĂ€ndaridentifierare för monterade filsystem implementerats, vilket anvĂ€nds för att kartlĂ€gga filer tillhörande en viss anvĂ€ndare pĂ„ en monterad, frĂ€mmande partition till en annan anvĂ€ndare i det aktuella systemet.
    • I efivarfs har möjligheten att ange uid och gid vid montering lagts till för att möjliggöra Ă€ndringar av UEFI-variabler av processer som körs utan root-rĂ€ttigheter.
    • I exFAT har ioctl-anrop lagts till för att lĂ€sa och Ă€ndra filsystemets attribut. Stöd för kataloger med noll storlek har lagts till.
    • I F2FS har funktionen att anvĂ€nda block av storlek 16K implementerats.
    • AutofjĂ€llssystemet autofs har övergĂ„tt till att anvĂ€nda det nya API:et för monteringspartitioner.
    • I OverlayFS har monteringsalternativen "lowerdir+" och "datadir+" föreslagits. Stöd för inbĂ€ddad montering av OverlayFS med xattrs har lagts till.
    • I XFS har CPU-belastningen optimerats i koden för blockdistribution i realtid. Möjlighet för samtidig utförande av lĂ€soperationer och FICLONE har sĂ€kerstĂ€llts.
    • Koden för EXT2 har övergĂ„tt till att anvĂ€nda sidoförteckningar för minnet (page folios).
  • Minne och systemtjĂ€nster
    • Stöd för ia64-arkitekturen, som anvĂ€ndes i Intel Itanium-processorer, har upphört, och försĂ€ljningen av dessa avslutades helt 2021. Itanium-processorerna introducerades av Intel 2001, men ia64-arkitekturen kunde inte konkurrera med AMD64, huvudsakligen pĂ„ grund av högre prestanda hos AMD64 och en smidigare övergĂ„ng frĂ„n 32-bitars x86-processorer. Som ett resultat har Intels intressen flyttats till x86-64-processorer, med Itanium som en kvarleva. servrar HP Integrity, vars ordermottagning upphörde för tre Ă„r sedan. Stödkoden för ia64 har tagits bort frĂ„n kĂ€rnan frĂ€mst pĂ„ grund av avsaknaden av stöd för denna plattform under en lĂ€ngre tid. Linus Torvalds har uttryckt villighet att Ă„terinföra ia64-stödet i kĂ€rnan, men endast om nĂ„gon kan visa att de kan upprĂ€tthĂ„lla stöd för plattformen utanför kĂ€rnan under minst ett Ă„r.
    • En kĂ€rnkommandoradsparameter "ia32_emulation" har lagts till, vilket möjliggör aktivering och avaktivering av stöd för 32-bitars emulering under uppstart för kĂ€rnor som Ă€r byggda för x86-64-arkitekturen. Praktiskt sett gör den nya parametern det möjligt att bygga kĂ€rnor med kompatibilitet för 32-bitars applikationer, men stĂ€nger av detta lĂ€ge som standard för att minska attackytan pĂ„ kĂ€rnan, eftersom API:erna för att sĂ€kerstĂ€lla kompatibilitet Ă€r mindre testade Ă€n de primĂ€ra kĂ€rninterfaces.
    • Överföringen av Ă€ndringar frĂ„n Rust-for-Linux-grenen fortsĂ€tter, som rör anvĂ€ndning av Rust som ett andra sprĂ„k för utveckling av drivrutiner och kĂ€rnmoduler (stöd för Rust Ă€r inte aktivt som standard och gör inte Rust till obligatoriska byggberoenden för kĂ€rnan). I den nya versionen har övergĂ„ngen till Rust 1.73 genomförts och ett set av bindningar för arbete med arbetsscheman har föreslagits.
    • Möjligheten att anvĂ€nda mekanismen binfmt_misc har lagts till för att stödja nya format för körbara filer (till exempel för att köra kompilerade applikationer pĂ„ Java eller Python) inom separata opersonliga namnrymder.
    • I cgroup-kontroller cpuset, som möjliggör hantering av vilka CPU-kĂ€rnor som anvĂ€nds vid uppgifternas utförande, möjliggör uppdelning i lokal och fjĂ€rrpartitionering (remote partition), som skiljer sig Ă„t beroende pĂ„ om den överordnade cgroupen Ă€r en korrekt rotsektion eller inte. Nya instĂ€llningar "cpuset.cpus.exclusive" och "cpuset.cpus.exclusive.effective" har ocksĂ„ lagts till för exklusiv koppling till CPU.
    • I BPF-underavdelningen har stöd för undantag implementerats, vilka hanteras som en omedelbar utgĂ„ng frĂ„n BPF-programmet med möjlighet till sĂ€ker avveckling av stackramar. Dessutom tillĂ„ts anvĂ€ndning av pekare kptr i BPF-program i samband med CPU.
    • I io_uring-underavdelningen har stöd för operationer med futexar lagts till, och nya operationer har implementerats: IORING_OP_WAITID (den asynkrona versionen av waitid), SOCKET_URING_OP_GETSOCKOPT (varianter av getsockopt) och SOCKET_URING_OP_SETSOCKOPT (varianter av setsockopt) samt IORING_OP_READ_MULTISHOT (flera lĂ€sningsoperationer som fortsĂ€tter tills det inte finns nĂ„gra data kvar eller bufferten Ă€r fylld).
    • En implementation av lĂ€ttviktiga enkelriktade FIFO-köer har lagts till, vilket krĂ€ver spin-lĂ„sning endast för borttagning frĂ„n kön i ett processkontext och kan göras utan spin-lĂ„sning för atomĂ€r tillĂ€gg i kön i vilken kontext som helst.
    • En cirkulĂ€r buffert "objpool" med en skalbar implementation av en högpresterande kö för allokering och Ă„terlĂ€mning av objekt har lagts till.
    • Den första delen av förĂ€ndringarna för implementationen av det nya API:et futex2 har lagts till, vilket har högre prestanda pĂ„ NUMA-system, stödjer storlekar som inte Ă€r 32 bit och kan anvĂ€ndas istĂ€llet för det multiplexade systemanropet futex().
    • För ARM32- och S390x-arkitekturer har stöd för den aktuella uppsĂ€ttningen (cpuv4) av BPF-instruktioner lagts till.
    • För RISC-V-arkitekturen har möjligheten att anvĂ€nda det i Clang 17 tillgĂ€ngliga lĂ€get för kontroll av Shadow-Call Stack implementerats, avsett för att skydda mot överskrivning av returadressen frĂ„n funktionen vid buffertöverflöd i stacken. Skyddet innebĂ€r att returadressen sparas i en separat "skugg"-stack efter att kontrollen överlĂ€mnats till funktionen och att denna adress hĂ€mtas innan funktionen avslutas.
    • En ny intelligent skanningslĂ€ge har lagts till i mekanismen för sammanslagning av identiska minnessidor (KSM: Kernel Samepage Merging) som spĂ„rar felaktigt skannade sidor och minskar intensiteten av deras om-skanning. En instĂ€llning för att aktivera det nya lĂ€get har lagts till pĂ„ /sys/kernel/mm/ksm/smart_scan.
    • En ny ioctl-kommando PAGEMAP_SCAN har lagts till, som nĂ€r den anvĂ€nds med userfaultfd(), gör det möjligt att bestĂ€mma skrivningar till ett specifikt minnesomrĂ„de. Denna nya funktion kan exempelvis anvĂ€ndas i systemet för att spara och Ă„terstĂ€lla tillstĂ„nd av CRIU-processer eller i spelens anti-fusk-system.
    • I byggsystemet Ă€r kompilatorn Clang som standard aktiverad för att bygga exempel pĂ„ anvĂ€ndning av perf-subsystemet, skrivna som BPF-program.
    • Det gamla lagret videobuf, som anvĂ€ndes för att hantera framebuffers i mediesubsystemet och för mer Ă€n 10 Ă„r sedan ersattes av en ny implementering videobuf2, har tagits bort.
  • Virtualisering och sĂ€kerhet
    • I fscrypt-subsystemet har möjligheten att kryptera data i block som Ă€r mindre Ă€n blockstorleken i filsystemet lagts till. Detta kan vara nödvĂ€ndigt för att aktivera hĂ„rdvarumekanismer för kryptering som bara stöder smĂ„ block (till exempel, UFS-kontroller som endast stöder blockstorleken 4096 kan anvĂ€ndas med ett filsystem med blockstorleken 16K).
    • Subsytemet ‘iommufd’, som möjliggör hantering av minnessidor för I/O Memory-Management Unit (IOMMU) via filbeskrivare frĂ„n anvĂ€ndarutrymmet, har fĂ„tt tillĂ€gg av spĂ„rning av Ă€nnu icke-cacheade (dirty) data för DMA-operationer, vilket Ă€r nödvĂ€ndigt för att identifiera minne med osparade data vid processflyttning.
    • I Landlock-mekanismen, som tillĂ„ter begrĂ€nsning av interaktion mellan en grupp processer och den externa miljön, har stöd för att definiera regler för Ă„tkomst till TCP-sockets lagts till. Till exempel kan en regel skapas för att endast tillĂ„ta anslutningar via nĂ€tverksport 443 för att etablera HTTPS-anslutningar.
    • I AppArmor-subsystemet har möjligheten att hantera Ă„tkomst till io_uring-mekanismen och skapa anvĂ€ndaridentifierar (user namespaces) lagts till, vilket möjliggör selektiv beviljande av Ă„tkomst till dessa funktioner för endast vissa processer.
    • En API för att intyga virtuella maskiner integriteten av deras lastningsprocesser har lagts till.
    • LoongArch-system har implementerat virtualisering med hjĂ€lp av hypervisorn KVM.
    • Med hypervisorn KVM pĂ„ RISC-V-system har stöd för Smstateen-tillĂ€gget lagts till, vilket blockerar virtuell maskinĂ„tkomst till CPU-register som inte uttryckligen stöds av hypervisorn. Stöd för anvĂ€ndning av Zicond-tillĂ€gget i gĂ€stsystem har ocksĂ„ lagts till, vilket möjliggör vissa villkorliga heltalsoperationer.
    • I KVM-gĂ€stsystem baserade pĂ„ x86-arkitekturen Ă€r anvĂ€ndning av upp till 4096 virtuella CPU:er tillĂ„ten.
  • NĂ€tverkssystemet
    • I NVMe-TCP-drivrutinen (NVMe över TCP), som möjliggör Ă„tkomst till NVMe-lagringsenheter över nĂ€tverket (NVM Express over Fabrics) med TCP-protokollet, har stöd för kryptering av dataöverföringskanalen med TLS lagts till (KTLS anvĂ€nds och en bakgrundsprocess i anvĂ€ndarutrymmet tlshd för att förhandla om anslutningen).
    • Prestandan i paketplaneraren fq (Fair Queuing) har optimerats och resulterat i en ökning av kapaciteten med 5% under hög belastning i tcp_rr (TCP Request/Response)-testet och med 13% under obegrĂ€nsad ström av UDP-paket.
    • I TCP-protokollet har en valfri funktion för anvĂ€ndning av tidsstĂ€mplar (TCP TS) med mikrosekundnoggrannhet (RFC 7323) lagts till, vilket möjliggör en mer exakt bedömning av fördröjningar och skapande av mer avancerade överbelastningshanteringsmoduler. För att aktivera kan kommandot 'ip route add 10/8 
 features tcp_usec_ts' anvĂ€ndas.
    • I TCP-stacken har stöd för TCP-AO (TCP Authentication Option, RFC 5925) lagts till, vilket gör det möjligt att verifiera TCP-rubriker med MAC-koder (Message Authentication Code) med modernare algoritmer HMAC-SHA1 och CMAC-AES-128 istĂ€llet för den tidigare tillgĂ€ngliga TCP-MD5-alternativet baserat pĂ„ den förĂ„ldrade MD5-algoritmen.
    • En ny typ av virtuella nĂ€tverksenheter, 'netkit', har lagts till, dĂ€r logiken för dataöverföring definieras med en BPF-applikation.
    • I KSMBD, SMB-serverimplementationen pĂ„ kĂ€rnnivĂ„, har stöd för omvandling av filnamn som innehĂ„ller surrogatpar av sammansatta tecken lagts till.
    • I NFS har implementationen av strömmar med RPC-tjĂ€nster förbĂ€ttrats. Stöd för skrivdelegation har lagts till (för NFSv4.1+). I NFSD har stöd för netlink-handlaren rpc_status lagts till. Klientstödet för NFSv4.x har förbĂ€ttrats vid Ă„terexportering till knfsd.
  • Utrustning
    • KĂ€rnmodulen Nouveau har fĂ„tt initialt stöd för GSP-RM-firmware, som anvĂ€nds i NVIDIA RTX 20+ GPU:er för att hantera initialisering och kontroll av GPU:n via en separat GSP (GPU System Processor) mikrocontroller. GSP-RM-stöd gör att Nouveau-drivrutinen kan fungera genom att anropa firmwaren istĂ€llet för att direkt programmera interaktionsoperationer med hĂ„rdvaran, vilket förenklar tillĂ€gg av stöd för nya NVIDIA GPU:er genom att anvĂ€nda befintliga anrop för initialisering och energihantering.
    • I AMDGPU-drivrutinen har stöd för GC 11.5, NBIO 7.11, SMU 14, SMU 13.0 OD, DCN 3.5, VPE 6.1 och DML2 implementerats. Stödet för sömlös laddning (utan flimmer vid vĂ€xling av videolĂ€ge) har förbĂ€ttrats.
    • I i915-drivrutinen har stöd för Intel Meteor Lake-chips implementerats och en initial implementation av Intel LunarLake (Xe 2) har lagts till.
    • Stöd för asymmetriska överföringskanaler som lagts till i USB4 v2-specifikationen (120/40G) har lagts till.
    • Stöd för ARM SoC:er har lagts till: Qualcomm Snapdragon 720G (anvĂ€nds i Xiaomi-smartphones), AMD Pensando Elba, Renesas, R8A779F4 (R-Car S4-8), USRobotics USR8200 (anvĂ€nds i routrar och NAS).
    • Stöd för Fairphone 5-smarttelefonen och ARM-plattformarna Orange Pi 5, QuartzPro64, Turing RK1, Variscite MX6, BigTreeTech CB1, Freescale LX2162, Google Spherion, Google Hayato, Genio 1200 EVK, RK3566 Powkiddy RGB30 har lagts till.
    • Stöd för RISC-V-plattformarna Milk-V Pioneer och Milk-V Duo har lagts till.
    • Stöd för ljudgrĂ€nssnitt i HUAWEI-laptops som levereras med AMD CPU:er har lagts till. Stöd för extra högtalare som installeras pĂ„ Dell Oasis 13/14/16-laptops har lagts till. Stöd för inbyggda högtalare i ASUS K6500ZC har lagts till. Stöd för ljudavstĂ€ngningsindikatorer pĂ„ HP 255 G8 och G10-laptops har lagts till. Stöd för ljuddrivrutiner acp6.3 har lagts till. Stöd för professionella ljudinspelningsgrĂ€nssnitt Focusrite Clarett+ 2Pre och 4Pre har lagts till.

Samtidigt har den latinamerikanska stiftelsen för fri programvara skapat en helt fri version av kĂ€rnan 6.7 – Linux-libre 6.7-gnu, som Ă€r renad frĂ„n firmware och drivrutiner som innehĂ„ller icke-fria komponenter eller kodavsnitt vars anvĂ€ndning Ă€r begrĂ€nsad av tillverkaren. I version 6.7 har koden för rensning av blobs uppdaterats i olika drivrutiner och delsystem, exempelvis i drivrutinerna amdgpu, nouveau, adreno, mwifiex, mt7988, ath11k, avs och btqca. Koden för rensning av drivrutinerna localtalk och rtl8192u har tagits bort pĂ„ grund av deras uteslutning frĂ„n kĂ€rnan. Överskottskomponenter för rensning av drivrutinerna xhci-pci, rtl8xxxu och rtw8822b, som tidigare lagts till av misstag, har avlĂ€gsnats. Rensning av blobs-namn i dts-filer för Aarch64-arkitekturen har genomförts. Blobs i de nya drivrutinerna mt7925, tps6598x, aw87390 och aw88399 har tagits bort.

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