Linux 7.1

Efter tvÄ mÄnaders utveckling presenterade Linus Torvalds Är kÀrnlansering Linux 7.1. Bland de mest mÀrkbara förÀndringarna: en ny ntfsplus-drivrutin, den första fasen av att upphöra med stöd för CPU i486, borttagning av gamla Ethernet-adaptrar, borttagning av ISDN- och AX.25-protokoll, standardaktivering av Intel FRED-mekanismen, stöd för BPF-hanterare i io_uring, optimering av sidsystemet, stöd för delplanerare i sched_ext, zero-copy I/O i ublk-drivrutinen, ioctl-operationen shutdown i Btrfs, dynamiskt prestandalÀge i amd-pstate-drivrutinen, stöd för xattr för Unix-sockets.

I den nya versionen har 17275 korrigeringar accepterats frÄn 2589 utvecklare, patchstorleken Àr 57 MB (Àndringarna berör 13528 filer, 751785 kodrader har lagts till och 405916 kodrader har tagits bort). I den föregÄende versionen var det 15624 korrigeringar frÄn 2477 utvecklare, patchstorleken var 56 MB. Cirka 41% av alla förÀndringar i 7.1 rör enhetens drivrutiner, ungefÀr 12% av förÀndringarna relaterar till uppdatering av kod specifik för hÄrdvaruarkitekturer, 14% rör nÀtverksstacken, 5% handlar om filsystem och 3% om interna kÀrnsystem.

Huvudnyheterna i kÀrna 7.1 (kernelnewbies.org, lwn.net, opennet):

Disksubsystem, in- och utmatning och filsystem
  • I sammansĂ€ttningen har accepterats en ny implementation av filsystemet NTFS — ntfsplus, baserat pĂ„ koden frĂ„n den borttagna klassiska ntfs-drivrutinen. Den gamla drivrutinen har omarbetats, utökats med möjligheten att skriva data och anpassats för att stödja moderna funktioner, sĂ„som anvĂ€ndning av minnessidor (folios) istĂ€llet för buffer_head-strukturen. I den nya drivrutinen har slutsĂ€ttning av block implementerats, vilket har lett till hög prestanda vid skrivoperationer och minskad fragmentering. För buffrade skriv-/lĂ€sningsoperationer, direkt I/O, mappning av extenter och sidor skriv-/lĂ€sningsoperationer har ett bibliotek anvĂ€nts. iomap. I iozone-tester visade sig ntfsplus-drivrutinen vara 3-5% snabbare Ă€n ntfs3 vid skrivning i en trĂ„d och 35-110% snabbare vid anvĂ€ndning av 4 trĂ„dar. LĂ€stakten för ntfsplus och ntfs3 ligger pĂ„ ungefĂ€r samma nivĂ„. ntfs3-drivrutinen förblir i kĂ€rnan och fĂ„r har fixar och mindre förbĂ€ttringar.
  • Stöd för generering och verifiering av dataintegritetskontroller har lagts till T10 (deepwiki.com) pĂ„ filsystemsnivĂ„, snarare Ă€n blockenhet, vilket möjliggör ökad prestanda vid lĂ€soperationer.
  • I blockenhetsdrivrutinen ublk, vilket möjliggör att flytta specifik logik till anvĂ€ndarens processesida, har lagts till stöd för in-/utgĂ„ng via delat minne utan att kopiera data mellan buffertar (zero-copy-lĂ€ge).
  • För sjĂ€lvkrypterande blockenheter SED-OPAL har lagts till ioctl för att hantera lĂ€get Enkel anvĂ€ndare och kommandot STACK_RESET har implementerats.
  • I Btrfs har stöd för ioctl-operationen shutdown stabiliserats, vilket möjliggör att filsystemet hamnar i ett tillstĂ„nd dĂ€r det görs försök att avsluta redan pĂ„började operationer, men alla nya operationer blockeras.
  • I exfat har möjligheten till reservdelning av tomma omrĂ„den genom anrop av fallocate() implementerats.
  • I CIFS-filsystemet har stöd för att skapa temporĂ€ra filer med flaggan O_TMPFILE lagts till.
  • I systemanropet fsmount() har en ny funktion FSMOUNT_NAMESPACE lagts till, som skapar ett nytt namnrymde för monterade filsystem. Flaggar för att hĂ€mta det nya namnrymden för monteringspunkter, som endast innehĂ„ller den monterade tomma FS-stubben baserat pĂ„ nullfs, har lagts till i systemanropen clone3() och unshare().
  • I NFS-servern har lagts till har skydd mot angrepp genom att gissa filbeskrivare implementerats genom att autentisera beskrivare med kryptografisk signatur. Skyddet aktiveras genom monteringsalternativet sign_fh.
  • Tillagd symbolisk drivrutin fs-dax, som ger ett grĂ€nssnitt för att interagera med enheter DAX (kernel.org) (Direct Access), som stöder drift utanför sidcache. Detta grĂ€nssnitt Ă€r nödvĂ€ndigt för integration i kĂ€rnfilsystemet famfs, som ligger i det efterfrĂ„gade minnet.
  • I Ceph-filsystemet genomförd samlar in mĂ€tvĂ€rden om in-/utgĂ„ng kopplat till underavdelningar.
Minne och systemtjÀnster
  • Antagen den första serien Ă€ndringar för att upphöra med stöd för i486-processorer. Alternativen för att bygga kĂ€rnan med stöd för 486DX, 486SX och AMD ELAN (CONFIG_M486, CONFIG_M486SX och CONFIG_MELAN) har tagits bort frĂ„n Kconfig och kompilationsalternativen för i486-system (-march=i486) har tagits bort frĂ„n Makefile. Koden för att faktiskt stödja drift pĂ„ i486-processorer har lĂ€mnats i kĂ€rnan, men byggandet för sĂ„dana system kommer nu att krĂ€va tillĂ€mpning av patchar pĂ„ byggfiler. SkĂ€len för att ta bort stödet för i486-processorer beror pĂ„ önskan att befria kĂ€rnan frĂ„n komplicerad kod som emulerar vissa hĂ„rdvaruoperationer, sĂ„som CX8 (jĂ€mför och byt 8 byte) och TSC (CPU-cykeltalare, som anvĂ€nds i schemalĂ€ggaren).
  • I AMD-pstate-drivrutinen, som anvĂ€nds för att hantera energiförbrukningen pĂ„ system med AMD-processorer, har genomförts genomförs dynamisk vĂ€xling av prestandainstĂ€llningar och förĂ€ndringar i strömhanteringen beroende pĂ„ om systemet Ă€r anslutet till vĂ€gguttaget eller körs pĂ„ batteri. Vid stationĂ€r drift aktiveras nu prestanda-lĂ€get, medan balansprestanda anvĂ€nds vid batteridrift.
  • Standardmekanismen Intel FRED (Flexible Return and Event Delivery), som möjliggör en effektivare och mer pĂ„litlig leverans av information om lĂ„g-nivĂ„hĂ€ndelser. Prestandaökningen och minskade fördröjningar uppnĂ„s genom att Ă„terföra hĂ€ndelser med hjĂ€lp av processorinstruktionen IRET istĂ€llet för att överföra hĂ€ndelser via IDT-tabellen (Interrupt Descriptor Table). Ökad pĂ„litlighet uppnĂ„s genom separat hantering av inkommmande hĂ€ndelser i kĂ€rn- och anvĂ€ndarkontext, skydd mot implantering av NMI och lagring av alla CPU-register relaterade till undantag i en utökad stackram.
  • I perf-subsystemet har lagts till stöd för prestandaövervakningsenheter (PMU - Performance Monitoring Unit), som anvĂ€nds i SoC NVIDIA Tegra410.
  • Utförandet av futex-operationer har pĂ„skyndats pĂ„ ARM-system genom att anvĂ€nda Arm 9.6 LSUI-instruktioner, vilket gör det möjligt för kĂ€rnan att fĂ„ tillgĂ„ng till anvĂ€ndarutrymmets minne utan att först stĂ€nga av skyddslĂ€get. PAN (arm.com) (Privileged Access Never).
  • PĂ„ ARM-system har stödet för tillĂ€gg av kommandosystem förbĂ€ttrats MPAM (Memory System Resource Partitioning and Monitoring) och möjligheten att anvĂ€nda det i anvĂ€ndarutrymmet för resursadministration genom mekanismen resctrl. MPAM möjliggör mĂ€rkning av varje minnesaccess med en sektion-ID (PARTID, Partition ID) och en övervakningsgrupp-ID (PMG, Monitoring Group ID). I samband med PARTID kan resursanvĂ€ndningen begrĂ€nsas, som minnesbandbredd eller cache-storlek, sĂ„ att en uppsĂ€ttning uppgifter inte tar alla resurser. I övervakningssammanhang kan kombinationen av PMG och PARTID anvĂ€ndas för att spĂ„ra minnesresursanvĂ€ndningen vid vissa belastningar.
  • Tillagd möjlighet att anvĂ€nda realtidslĂ€get (PREEMPT_RT) pĂ„ 32-bitars ARM-processorer. Tidigare var stöd för PREEMPT_RT tillhandahĂ„llet för x86 och x86-64, ARM64, RISC-V och LoongArch.
  • I systemanropet clone3() nya flaggor har lagts till: CLONE_NNP — förbud av att fĂ„ nya privilegier i den skapade processen; CLONE_AUTOREAP — automatisk avslutning av processen istĂ€llet för att omvandlas till en zombieprocess tills förĂ€ldraprocessens wait() funktion körs; CLONE_PIDFD_AUTOKILL — avslutning av den barnprocess som stĂ€ngs nĂ€r den relaterade pidfd-deskriptor stĂ€ngs (till exempel vid avslutning av förĂ€ldraprocessen).
  • För varje kĂ€rnmodul har en fil import_ns lagts till i katalogen /sys/module, som innehĂ„ller en lista över importerade symbolnamnomrĂ„den (symbolnamnomrĂ„de).
  • I io_uring-systemet för asynkron in- och utdata har stöd lagts till för att anvĂ€nda BPF-undersystemet för att skapa hanterare. Till exempel kan huvuddispositionscykeln bytas ut mot ett BPF-program.
  • I BPF-systemet moderniserad analys av stackanvĂ€ndning, vilket avsevĂ€rt har snabbat verifieringsprocessen för mĂ„nga BPF-program.
  • I syfte att optimera prestandan omskriven hrtimer-undersystemet (high resolution timer). SchemalĂ€ggaren kan nu anvĂ€nda högupplösta timers utan att tappa prestanda istĂ€llet för mindre precisa timers.
  • Fortsatt överföring av Ă€ndringar frĂ„n Rust-for-Linux-grenen, relaterade till anvĂ€ndningen av Rust som ett andra sprĂ„k för utveckling av drivrutiner och kĂ€rnmoduler (stöd för Rust Ă€r inte aktiverat som standard och leder inte till att Rust ingĂ„r som ett obligatoriskt byggberoende för kĂ€rnan). Fram till version 1.85 (som levereras med Debian 13) har kraven pĂ„ Rust-versionen som behövs för att bygga kĂ€rnkomponenter ökat. En experimentell Kconfig-alternativ CONFIG_RUST_INLINE_HELPERS har lagts till för att integrera C-skikt i Rust-kod under kompilering (optimiseringen snabbade upp null-blockdrivrutinen med 2%). En makro ‘const_assert!’ har lagts till. Möjligheterna för moduler som sizes, clk, ptr, sync, error har utvidgats.
  • I mekanismen SCHED_EXT, vilket möjliggör anvĂ€ndning av BPF för att skapa CPU-schemalĂ€ggare, har lagts till den första möjligheten att skapa inbĂ€ddade schemalĂ€ggare (sub-schemalĂ€ggare), sĂ„ att varje cgroup kan ha sin egen schemalĂ€ggare.
  • Optimeringen av byttesystemet (swap) har fortsatt. Den gamla strukturen swap_map har tagits bort och ersatts av mekanismen “Swap Table”. Ändringen har förbĂ€ttrat prestandan och minskat minnesförbrukningen i byttesystemet.
  • I undersystemet DAMON (Data Access MONitor), som möjliggör övervakning av processens Ă„tkomst till data i RAM (till exempel kan man ta reda pĂ„ vilka minnesomrĂ„den processen har anvĂ€nt, samt vilka minnesomrĂ„den som förblivit oanvĂ€nda), har lagts till stöd för olika algoritmer för automatisk justering av kvoter.
  • I spĂ„rningssystemet har möjligheten konceptet med externa ringbuffertar som möjliggör att hĂ€mta spĂ„rningsdata frĂ„n virtuella maskiner. Funktionen Ă€r aktiverad i hypervisorer KVM och nVHE för att överföra spĂ„rningsdata frĂ„n gĂ€stsystemet till vĂ€rdsidan.
  • I undersystemet RV (kernel.org) (Runtime Verification), avsedd för att verifiera korrektheten av mycket pĂ„litliga system, har komponenter för övervakning "stall" för att spĂ„ra uppgifter vars utförande har tillfĂ€lligt avbrutits eller blockerats, samt "deadline" för att analysera schemalĂ€ggarens beteende.
Virtualisering och sÀkerhet
  • Som standard Ă€r flaggan PROC_MEM_FORCE_PTRACE instĂ€lld, vilket tillĂ„ter att kringgĂ„ Ă„tkomstrĂ€ttigheter till processens minne via filen /proc/PID/mem endast för processer som anvĂ€nder systemanropet ptrace() för att för felsökning.
  • Tillagd en ny uppsĂ€ttning hookar för LSM-moduler (Linux Security Module), som förenklar implementeringen av policyer för staplade filsystem, sĂ„som overlayfs. I LSM finns Ă€ven tillagd en hook för Ă„tkomsthantering av Unix-sockets, vilket aktiverad i LSM-modulen Landlock anvĂ€nds för att tilldela Ă„tkomstpolicyer till Unix-sockets.
  • I den inbyggda kryptobiblioteket lib/crypto, som tillhandahĂ„ller enklare och snabbare funktioner Ă€n i det traditionella kryptografiska API:et, har lagts till stöd för algoritmerna AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH och SM3. Lagts till dokumentation via lib/crypto.
  • LĂ€get pKVM (Protected KVM) för strikt isolering av anonymt minne med anvĂ€ndning av virtualiseringsutvidgningar för AArch64-arkitekturen. I detta lĂ€ge utesluts gĂ€stens minnessidor frĂ„n vĂ€rdsystemets tabell över virtuella adresser.
  • Stöd för femte versionen av den virtuella avbrottskontrollern ARM (VGICv5 — ARM Virtual Generic Interrupt Controller v5) har lagts till i KVM-hypervisorn.
NĂ€tverkssystemet
  • För unix-sockets som skapas av funktionen socket(), har möjligheten stöd för utökade filattribut (xattr) user.*. AnvĂ€ndningsomrĂ„den inkluderar mĂ€rkning genom utökade attribut till Unix-sockets som anvĂ€nds för IPC Varlink, för att sĂ€rskilja dem för inspektion och felsökning av IPC med hjĂ€lp av BPF-program. I systemd-journald avser man att anvĂ€nda utökade attribut för att definiera loggformatet kopplat till socketen /dev/log.
  • Borttagen stöd för UDP-Lite-protokollet (RFC 3828), som möjliggör leverans av datapaket med felaktig kontrollsumma med tanke pĂ„ att, till exempel, delvis skadade ljud- och videodata kan Ă„terstĂ€llas pĂ„ kodeksnivĂ„. Protokollet har tagits bort eftersom det ingen anvĂ€nder.
  • Borttagen möjligheten att bygga IPv6-stacken som en kĂ€rnmodul, vilket inte har anvĂ€nts i praktiken (IPv6 antingen inbyggs i kĂ€rnan eller stĂ€ngs av helt), men vilket har komplicerat underhĂ„llet eftersom mĂ„nga subsystem tvingades lĂ€gga till onödiga hanterare ifall IPv6-modulen avlastades (CONFIG_IPV6=m).
Utrustning
  • I AMDGPU-drivrutinen pĂ„slagen den nya displayermotorn (DC) för AMD APU-serien HD 7000 (Sea Islands, GCN 1.1).
  • I Nouveau-drivrutinen har lagts till inledande stöd för NVIDIA GA100 GPU baserad pĂ„ Ampere-mikroarkitektur.
  • Arbetet fortsĂ€tter med drm-drivrutinen (Direct Rendering Manager) Xe för GPU baserat pĂ„ Intel Xe-arkitektur, som anvĂ€nds i Intel Arc-grafikkort och integrerad grafik, frĂ„n processorerna Tiger Lake. Stöd för den grafiska subsystemen i Intel Nova Lake-P-processorer har lagts till. Implementerade rensningsbara buffertobjekt (Purgeable Buffer Objects).
  • Fortsatt integration av komponenterna i Nova-drivrutinen för NVIDIA GPU med GSP-firmware, som anvĂ€nds frĂ„n NVIDIA GeForce RTX 2000-serien baserad pĂ„ Turing-mikroarkitektur. Drivrutinen Ă€r skriven i Rust. Inledande stöd för GPU baserade pĂ„ Turing-mikroarkitektur har lagts till.
  • Tillagd DRM-drivrutin corebootdrm för utdata av grafik via framebuffer firmware baserad pĂ„ CoreBoot.
  • Tillagd stöd för ljud ASoC AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP och WM8962. FörbĂ€ttrat stöd för ljudenheter med USB-grĂ€nssnitt: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
  • Tillagd yogafan-drivrutin för att övervaka flĂ€kthastigheten i bĂ€rbara datorer frĂ„n Lenovo Yoga, Legion och IdeaPad.
  • Tillagd stöd för ARM-plattformar, SoC och enheter: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 och ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
  • Borttagen stöd för AHCI SATA och PCIe-kontroller som anvĂ€nds i Baikal-T1 SoC, samt drivrutiner för timer, minne, physmap, buss, hwmon, dwc och bt1-rom. Orsaken till borttagningen anges som brist pĂ„ underhĂ„ll och ofullstĂ€ndig integration av komponenterna i Baikal-plattformens kĂ€rna, vars produktion i Ryssland upphörde i november 2025.
  • Borttagna 12 drivrutiner för Ethernet-enheter med ISA- och PCMCIA-grĂ€nssnitt som slĂ€pptes före 2002 och för vilka det inte fanns anvĂ€ndare som anvĂ€nde dem i arbetsystem. Även subsystemet har tagits bort frĂ„n kĂ€rnan. ISDN, implementering av protokoll AX.25, CAIF och Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), drivrutiner yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amatörradio), inport och logibm (busmouse). Anledningen till borttagningen var avsaknaden av aktiva underhĂ„llare mot bakgrund av det ökande antalet fel som upptĂ€ckts med hjĂ€lp av syzbot och AI-verktyg, som ingen tar sig an att rĂ€tta till och allt ansvar för att lösa allvarliga problem faller pĂ„ dem som underhĂ„ller de grundlĂ€ggande nĂ€tverksundersystemen i kĂ€rnan. Totalt har mer Ă€n 140 000 kodrader tagits bort.

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