UtgÄvan av Linux-kÀrnan 6.0

Efter tvÄ mÄnaders utveckling presenterade Linus Torvalds lanseringen av kÀrnan Linux 6.0. Den betydande förÀndringen av versionsnumret gjordes av estetiska skÀl och Àr ett formellt steg för att avlÀgsna obehaget av det stora antalet utgÄvor i serien (Linus skÀmtade om att anledningen till bytet av versionsnummer snarare beror pÄ att han hÄller pÄ att fÄ slut pÄ fingrarna pÄ hÀnder och fötter för att rÀkna versionsnummer). Bland de mest mÀrkbara förÀndringarna finns: stöd för asynkron buffrad skrivning i XFS, blockdrivrutin ublk, optimering av schemalÀggaren, mekanism för verifiering av kÀrnans korrekthet och stöd för blockciffern ARIA.

Huvudnyheterna i kÀrnan 6.0:

  • Disksubsystem, in- och utmatning och filsystem
    • I filsystemet XFS har stöd för asynkron buffrad skrivning lagts till med hjĂ€lp av mekanismen io_uring. Prestandatest med verktyget fio (1 trĂ„d, blockstorlek 4 kB, 600 sekunder, sekventiell skrivning) visar att antalet in- och utdataoperationer per sekund (IOPS) har ökat frĂ„n 77k till 209k, överföringshastigheten frĂ„n 314MB/s till 854MB/s, och latensen har minskat frĂ„n 9600ns till 120ns (80 gĂ„nger).
    • I filsystemet Btrfs har den andra versionen av protokollet för kommandot "send" implementerats, vilket möjliggör stöd för ytterligare metadata, överföring av data i större block (mer Ă€n 64K) och överföring av extenter i komprimerad form. Prestandan för direkta lĂ€soperationer har ökat avsevĂ€rt (upp till 3 gĂ„nger) genom samtidig lĂ€sning av upp till 256 sektorer. LĂ„sningskonflikter har minskats och verifieringen av metadata har pĂ„skyndats genom att reserverade metadata för fördröjda element har minskats.
    • I filsystemet ext4 har nya ioctl-operationer EXT4_IOC_GETFSUUID och EXT4_IC_SETFSUUID lagts till för att extrahera eller stĂ€lla in UUID-identifikatorn som lagras i superblocket.
    • I filsystemet F2FS har ett lĂ€ge för lĂ„g minnesanvĂ€ndning föreslagits, vilket optimerar arbetet pĂ„ enheter med liten mĂ€ngd RAM och gör det möjligt att minska minnesanvĂ€ndningen pĂ„ bekostnad av minskad prestanda.
    • Stöd för autentisering av NVMe-enheter har lagts till.
    • I servern I NFSv4 har en grĂ€ns för antalet aktiva klienter införts, som stĂ€lls in till 1024 tillĂ„tna klienter per gigabyte RAM i systemet.
    • I implementeringen av CIFS-klienten har prestandan ökat i lĂ€get för flera kanaler.
    • En undersystem för hĂ€ndelsespĂ„rning i filsystemet fanotify har fĂ„tt ett nytt flagga FAN_MARK_IGNORE för att ignorera specifika hĂ€ndelser.
    • I filsystemet Overlayfs, vid montering ovanpĂ„ ett filsystem med anvĂ€ndaridentifieringsmappning, har korrekt stöd för POSIX-kompatibla Ă„tkomstkontrollistor sĂ€kerstĂ€llts.
    • En blockdrivrutin ublk har lagts till, som flyttar specifik logik till en bakgrundsprocess i anvĂ€ndarutrymmet och anvĂ€nder io_uring-systemet.
  • Minne och systemtjĂ€nster
    • Nya möjligheter har lagts till i DAMON (Data Access MONitor) systemet, vilket gör det möjligt att inte bara spĂ„ra processers Ă„tkomst till RAM-minnet frĂ„n anvĂ€ndarutrymmet, utan ocksĂ„ pĂ„verka minneshanteringen. SĂ€rskilt har en ny modul 'LRU_SORT' föreslagits, som sĂ€kerstĂ€ller omgruppering av LRU-listor (Least Recently Used) för att öka prioriteten för vissa minnessidor.
    • Möjligheten att skapa nya minnesregioner har implementerats, med hjĂ€lp av funktioner frĂ„n CXL-bussen (Compute Express Link), som anvĂ€nds för att organisera högpresterande interaktion mellan CPU och minnesenheter. CXL gör det möjligt att ansluta nya minnesregioner som tillhandahĂ„lls av externa minnesenheter och anvĂ€nda dem som ytterligare resurser i det fysiska adressutrymmet för att utöka systemets RAM (DDR) eller bestĂ€ndigt minne (PMEM).
    • Prestandaproblem för system med AMD Zen-processorer har Ă„tgĂ€rdats, vilka orsakades av kod som lades till för 20 Ă„r sedan för att kringgĂ„ ett hĂ„rdvaruproblem i vissa chipsets (en ytterligare WAIT-instruktion lades till för att sakta ner processorn sĂ„ att chipsetet kunde gĂ„ in i vilolĂ€ge). Denna Ă€ndring ledde till minskad prestanda vid belastningar som ofta vĂ€xlar mellan vilotillstĂ„nd (idle) och aktivitet (busy). Till exempel, efter att kringgĂ„endet avlĂ€gsnades, ökade genomsnittliga resultatet av tbench-testet frĂ„n 32191 MB/s till 33805 MB/s.
    • Heuristiken som möjliggjorde migrering av processer till minst belastade CPU:er med hĂ€nsyn till förvĂ€ntad energibesparing har tagits bort frĂ„n uppgiftsschemalĂ€ggaren. Utvecklarna kom fram till att heuristiken inte gav tillrĂ€cklig nytta och att det var enklare att flytta processer utan ytterligare bedömningar varje gĂ„ng en sĂ„dan flytt potentiellt kan leda till minskad energiförbrukning (t.ex. nĂ€r den mĂ„linriktade CPU:n ligger pĂ„ en nivĂ„ med lĂ€gre energiförbrukning). AvstĂ€ngningen av heuristiken ledde till en minskning av energiförbrukningen vid intensiva uppgifter, exempelvis minskade energiförbrukningen med 5,6 % i ett videodekodningstest.
    • Optimering av uppgiftsfördelningen över CPU-kĂ€rnor har genomförts pĂ„ stora system, vilket har ökat prestandan vid vissa typer av belastning.
    • Ett nytt flagg i grĂ€nssnittet för asynkron I/O, io_uring, har föreslagits: IORING_RECV_MULTISHOT, vilket möjliggör anvĂ€ndning av "multi-shot"-lĂ€ge med systemanropet recv() för att utföra flera lĂ€soperationer frĂ„n en nĂ€tverksanslutning pĂ„ en gĂ„ng. I io_uring har Ă€ven stöd för nĂ€tverksoverföring utan mellanliggande buffring (zero-copy) implementerats.
    • Möjlighet att sĂ€tta BPF-program kopplade till uprobes i vilolĂ€ge har implementerats. En ny iterator, ksym, har ocksĂ„ lagts till i BPF för arbete med kĂ€rnans symboltabeller.
    • Den förĂ„ldrade grĂ€nssnittet "efivars" i sysfs, avsedd för Ă„tkomst till UEFI-startvariabler, har tagits bort (virtual FS efivarfs anvĂ€nds nu alltmer för Ă„tkomst till EFI-data).
    • Nya rapporter för analys av lĂ„s-konflikter och den tid som processorn spenderar pĂ„ att utföra kĂ€rnkomponenter har implementerats i verktyget perf.
    • InstĂ€llningen CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3, som möjliggjorde kompileringslĂ€ge med optimering "-O3", har tagits bort. Det noteras att experiment med optimeringslĂ€gen kan utföras genom att överföra flaggor vid kompilering ("make KCFLAGS=-O3"), och för att lĂ€gga till instĂ€llningen i Kconfig krĂ€vs det att reproducibel prestandaprofileringsutförs, vilket visar att deployment av loopar under "-O3" ger vinster jĂ€mfört med optimeringsnivĂ„n "-O2".
    • Ett debugfs-grĂ€nssnitt har lagts till för att hĂ€mta information om hur olika "memory shrinkers" (hanterare som anropas vid minnesbrist och som packar kĂ€rnans datakonstruktioner för att minska deras minnesanvĂ€ndning) fungerar.
    • Stöd för PCI-bussen har implementerats för OpenRISC- och LoongArch-arkitekturer.
    • För RISC-V-arkitekturen har en "Zicbom"-utvidgning implementerats för att hantera enheter med DMA som inte Ă€r cachikoherenta.
  • Virtualisering och sĂ€kerhet
    • En RV (Runtime Verification) verifieringsmekanism har lagts till för att kontrollera korrekt drift i högpĂ„litliga system som garanterar avsaknad av fel. Verifieringen utförs under körning genom att koppla hanterare till spĂ„rningspunkter som jĂ€mför den faktiska exekveringen med en fördefinierad referensmodell av en automat som definierar det förvĂ€ntade systembeteendet. JĂ€mförelsen med modellen under körning marknadsförs som en mer lĂ€ttviktig och praktiskt genomförbar metod för att bekrĂ€fta korrekt exekvering i kritiska system, vilket kompletterar klassiska metoder för att bekrĂ€fta tillförlitlighet. Bland fördelarna med RV nĂ€mns möjligheten att sĂ€kerstĂ€lla strikt verifiering utan att behöva implementera hela systemet i ett modelleringssprĂ„k, samt en flexibel reaktion pĂ„ oförutsedda hĂ€ndelser.
    • KĂ€rnkomponenter för att hantera enheter baserade pĂ„ Intel SGX2 (Software Guard eXtensions)-teknik har integrerats, vilket gör att applikationer kan köra kod i isolerade, krypterade minnesomrĂ„den som resten av systemet har begrĂ€nsad tillgĂ„ng till. Intel SGX2-teknologin stöds av Intel Ice Lake- och Gemini Lake-chips och skiljer sig frĂ„n Intel SGX1 genom ytterligare instruktioner för dynamisk hantering av minnet i enheterna.
    • För x86-arkitekturen har möjligheten att överföra en frö till en pseudorandom number generator genom bootloader-instĂ€llningar implementerats.
    • I LSM-modulen SafeSetID har möjligheten att hantera Ă€ndringar som görs genom anrop av setgroups() lagts till. SafeSetID möjliggör för systemtjĂ€nster att sĂ€kert hantera anvĂ€ndare utan att öka privilegier (CAP_SETUID) och utan att fĂ„ anvĂ€ndarbehörigheter.
    • Stöd för blockchifferet ARIA har lagts till.
    • I sĂ€kerhetskontrollmodulen baserad pĂ„ BPF har möjligheten att koppla hanterare till enskilda processer och processgrupper (cgroup) lagts till.
    • En mekanism för att implementera watchdog har lagts till för att identifiera frysningar av gĂ€stsysten baserat pĂ„ övervakning av vCPU-aktivitet.
  • NĂ€tverkssystemet
    • Till BPF-subsystemet har hanterare lagts till för att generera och verifiera SYN-cookies. En uppsĂ€ttning funktioner (kfunc) för Ă„tkomst och Ă€ndring av anslutningars tillstĂ„nd har ocksĂ„ lagts till.
    • Det trĂ„dlösa stacken har fĂ„tt stöd för mekanismen MLO (Multi-Link Operation), definierad i specifikationen WiFi 7, som gör det möjligt för enheter att samtidigt ta emot och skicka data med hjĂ€lp av olika frekvensband och kanaler, till exempel för att etablera flera kommunikationskanaler mellan en Ă„tkomstpunkt och en klientenhet.
    • Prestandan för den inbyggda implementeringen av TLS-protokollet i kĂ€rnan har förbĂ€ttrats.
    • En kernel-kommandoradsparameter "hostname=" har lagts till, vilket gör det möjligt att stĂ€lla in vĂ€rdnamnet tidigt under uppstarten, innan anvĂ€ndarutrymmets komponenter har körts.
  • Utrustning
    • I i915-drivrutinen (Intel) har stöd för dedikerade Intel Arc-grafikkort (DG2/Alchemist) A750 och A770 lagts till. En första implementering av stöd för Intel Ponte Vecchio GPU (Xe-HPC) och Meteor Lake har föreslagits. Arbetet med att stödja Intel Raptor Lake-plattformen har fortsatt.
    • I amdgpu-drivrutinen har arbetet fortsatt med att sĂ€kerstĂ€lla stöd för AMD RDNA3 (RX 7000) och CDNA (Instinct)-plattformer.
    • I Nouveau-drivrutinen har koden för stöd av NVIDIA nv50 GPU:s displaymotorer omarbetats.
    • En ny DRM-drivrutin för LogiCVC-skĂ€rmar har lagts till.
    • I v3d-drivrutinen (för Broadcom Video Core GPU) har stöd implementerats för Raspberry Pi 4-kort.
    • I msm-drivrutinen har stöd för Qualcomm Adreno 619 GPU lagts till.
    • I Panfrost-drivrutinen har stöd för ARM Mali Valhall GPU lagts till.
    • Inledande stöd för Qualcomm Snapdragon 8cx Gen3-processorer som anvĂ€nds i Lenovo ThinkPad X13s-bĂ€rbara datorer har lagts till.
    • Ljuddrivrutiner för plattformar som AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake och Mediatek MT8186 har lagts till.
    • Stödet för Intel Habana Gaudi 2-maskininlĂ€rningsacceleratorer har lagts till.
    • Stöd för ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3 har lagts till.

Samtidigt har den latinamerikanska Stiftelsen för fri programvara skapat en helt fri version av kĂ€rnan 6.0 — Linux-libre 6.0-gnu, renad frĂ„n fastvaror och drivrutiner som innehĂ„ller icke-fria komponenter eller kodavsnitt vars anvĂ€ndningsomrĂ„de Ă€r begrĂ€nsat av tillverkaren. I den nya versionen har anvĂ€ndningen av blobbar i drivrutinen CS35L41 HD-audio och drivrutinen med grĂ€nssnittet UCSI för STM32G0-mikrokontroller stĂ€ngts av. DTS-filer för Qualcomm- och MediaTek-chips har stĂ€dats. AvstĂ€ngningen av blobbar i drivrutinen MediaTek MT76 har omarbetats. Koden för stĂ€dning av blobbar i drivrutiner och subsystem för AMDGPU, Adreno, Tegra VIC, Netronome NFP och Habanalabs Gaudi2 har uppdaterats. StĂ€dningen av drivrutinen VXGE, som har tagits bort frĂ„n kĂ€rnan, har upphört.

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