Eftir tveggja mánaða þróunarvinnu gaf Linus Torvalds út kjarnann. Linux 6.12. Meðal athyglisverðustu breytinganna: möguleikinn á að virkja rauntímastillingu, sched_ext til að búa til örgjörvaáætlana í gegnum eBPF, QR kóðaúttak í neyðartilvikum, TCP-kerfi fyrir minni tækis, SCHED_DEADLINE pöntunarkerfi fyrir netþjónsauðlindir, úrbætur á EEVDF verkefnaáætluninni, IPE eining til að stilla heilleikastefnur.
Nýja útgáfan inniheldur 14607 lagfæringar frá 2167 forriturum, plástrastærðin er 37 MB (breytingarnar höfðu áhrif á 13087 skrár, 507913 línum af kóða var bætt við, 234083 línum var eytt). Síðasta útgáfa var með 15130 lagfæringar frá 2078 forriturum, plástrastærðin var 85 MB (í 6.10 kjarnanum var plásturinn 41 MB að stærð). Um 45% allra breytinga sem kynntar eru í 6.12 tengjast tækjum, um það bil 12% breytinga tengjast uppfærslukóða sem er sértækur fyrir vélbúnaðararkitektúr, 13% tengjast netstafla, 6% tengjast skráarkerfum og 3% tengjast innri kjarna undirkerfum.
Helstu nýjungar í kjarna 6.12:
- Minni og kerfisþjónusta
- Nú er hægt að smíða kjarnann með PREEMPT_RT valkostinum án viðbótaruppfærslna fyrir rauntíma notkun. Síðasti kjarnaeiginleikinn sem vantaði og kom í veg fyrir að PREEMPT_RT stillingin væri virkjuð var stuðningur við óblokkandi atómúttak í gegnum printk fallið, sem er einnig innifalið í kjarnanum. PREEMPT_RT stuðningur er í boði fyrir x86, x86_64, ARM64 og RISC-V arkitektúrana. Þangað til nú hefur útfærsla PREEMPT_RT stillingarinnar verið veitt í formi ytri uppfærslna, sem sumar dreifingar, eins og RHEL, SUSE og ... Ubuntu, bjuggu til aðskildar rauntímaútgáfur af vörum sínum, sem eru eftirsóttar á sviðum eins og fjármálakerfum, hljóð- og myndvinnslutækjum, flugi, læknisfræði, vélfærafræði, fjarskiptum og iðnaðarkerfum, þar sem nauðsynlegt er að tryggja fyrirsjáanlegan tíma fyrir atburðavinnslu.
- „Sched_ext“ (SCX) aðferðin hefur verið bætt við, sem gerir kleift að nota eBPF til að búa til örgjörvaáætlana sem ná yfir nánast alla þætti verkefnaáætlanagerðar og úthlutunar örgjörvaauðlinda. Slíka áætlana er hægt að hlaða og keyra á kraftmikinn hátt innan kjarnans. Linux в sýndarvél eBPF. Sched_ext aðferðin einfaldar gerð verkefnasértækra tímaáætlunarkerfa, gerir kleift að gera tilraunir með ýmsar tímaáætlunartækni og aðferðir og gerir kleift að búa til virka frumgerðir hratt og skipta út tímaáætlunum í framleiðsluinnviðum á augabragði. Til dæmis, með því að nota sched_ext, er hægt að búa til tímaáætlun sem tekur mið af sérkennum tiltekins forrits og breytir tímaáætlunarstefnu þess á kraftmikinn hátt eftir stöðu kerfisins og öðrum þáttum.
- Samsetningin inniheldur afganginn af plástrum sem eru nauðsynlegar fyrir rekstur SCHED_DEADLINE miðlarakerfisins, sem leysir vandamálið við vannýtingu CPU auðlinda með venjulegum verkefnum þegar örgjörvinn er einokaður af forgangsverkefnum (rauntíma). Til að koma í veg fyrir einokun örgjörva notaði kjarninn áður rauntíma inngjöf vélbúnaðar, sem reyndi að taka frá 5% fyrir verkefni með litlum forgangi, sem skildi 95% tímans eftir fyrir rauntímaverkefni. Þessi vélbúnaður skildi eftir sig miklu þar sem venjuleg verkefni í mörgum aðstæðum fengu ekki nægan örgjörvatíma. SCHED_DEADLINE þjónn innleiðir skilvirkari tilfangapöntunarkerfi.
- Samþættingu EEVDF (Earliest Eligible Virtual Deadline First) verkefnaáætlunarinnar hefur verið lokið, sem leysti af hólmi CFS (Completely Fair Scheduler) tímaáætlunarbúnaðinn, sem fylgir með kjarna 2.6.23. Nýi tímaáætlunarmaðurinn, þegar valið er næsta ferli til að flytja framkvæmd á, tekur tillit til ferla sem hafa ekki fengið nægjanlegt örgjörvatilföng eða hafa fengið ósanngjarnan mikinn örgjörvatíma. Í fyrra tilvikinu er yfirfærsla á eftirliti yfir í ferlið þvinguð og í öðru, þvert á móti, er því frestað. Gamla CFS tímaáætlunin notaði heuristics og fínstillingu til að bera kennsl á ferla sem þarfnast sérstakrar athygli, en nýi tímaáætlunarmaðurinn rekur þá skýrar og þarfnast ekki fínstillingar. Búist er við að EEVDF dragi úr töfum á verkefnum sem CFS hefur átt í tímasetningarvandamálum fyrir.
- Í neyðarstjórnun kjarna - DRM Panic, sem notar DRM (Direct Rendering Manager) undirkerfið til að birta sjónræna skýrslu í stíl við „bláa skjá dauðans“, getu til að birta lógó og QR kóða með kmsg skýrslu um skjánum þegar neyðarástand kemur upp hefur verið bætt við. Þar sem aðeins 2953 bæti passa inn í QR kóða er valmöguleikinn DRM_PANIC_SCREEN_QR_CODE_URL til staðar, þar sem kmsg skýrslan er þjappuð með zlib og fest sem færibreyta við vefslóðina, sem gerir kleift að flytja um 40 bæti í gegnum V7500 QR kóðann. Þegar búið er að byggja pakka með kjarnanum geta dreifingar sett grunnslóð fyrir slóðina, sem gerir þeim kleift að fletta á síðu til að tilkynna um vandamál. Til að velja QR kóða snið er DRM_PANIC_SCREEN_QR_VERSION stillingin til staðar.
- Bætti við stuðningi við ARM POE (Permission Overlay Extension), sem gerir þér kleift að stilla aðgangsrétt að minnissvæðum. Með því að nota þessa viðbót, á kerfum með ARM64 örgjörva, er hægt að útfæra Memory Protection Keys vélbúnaðurinn, sem er notaður til að takmarka aðgang að minnissíðum án þess að breyta minnissíðutöflunni.
- Fyrir Loongarch, ARM64, PowerPC og s390 arkitektúra hefur útfærsla getrandom() kerfiskallsins verið færð, fínstillt með því að nota vDSO (virtual dynamic shared object) vélbúnaðinn, sem gerir það mögulegt að færa kerfissímtalsstjórann frá kjarnanum til notandans pláss og forðast samhengisrofa. Hagræðing gerir þér kleift að flýta fyrir gerð handahófsnúmera um allt að 15 sinnum.
- Möguleikinn á að nota algera tímamörk, sem koma af stað þegar ákveðnum tíma er náð á kerfisklukkunni, hefur verið bætt við io_uring ósamstillta inntaks/úttaks undirkerfið (áður var aðeins hægt að stilla hlutfallslegan tíma, sem gaf til kynna tímalengd frá upphafi aðgerðarinnar ).
- Bætti við skrám til að búa til bindingar fyrir libcpupower bókasafnið með því að nota SWIG verkfærakistuna, sem gerir þér kleift að búa til bindingar úr C/C++ kóða fyrir ýmis forritunarmál. Bindingarnar gera þér kleift að búa til forskriftir í Python og öðrum tungumálum og nota þær til að auka virkni libcpupower bókasafnsins, sem veitir API til að stjórna cpufreq og rekla úr notendarými.
- Cpuidle tólið sýnir gildi „búsetu“ í aðgerðalausu ástandi, notað fyrir rauntímakerfi og með hliðsjón af lágmarkstíma sem örgjörvinn verður að vera í aðgerðalausu ástandi til að réttlæta orkukostnaðinn við að skipta yfir í og úr þessu ástandi.
- Bætt var við möguleikanum á að nota Clang þýðandann til að smíða staðlaða C bókasafnið nolibc, sem er innifalið í frumkóða kjarnans. Linux og veitir umbúðir utan um grunn kerfisköll. Þegar nolibc er smíðað í Clang er tengjatímabestun (LTO) virkjuð.
- Sum cgroup1 tengi hafa verið úrelt, svo sem TCP bókhald, soft limit útgáfa XNUMX og minnisstjórnun. Stuðningur við þessa eiginleika er enn ófullnægjandi í bili og viðvörunin er gerð til að kanna fjölda notenda sem halda áfram að nota þessa eiginleika.
- Bætti við möguleikanum á að stilla biðminni til að vista uppsöfnuð gögn eftir endurræsingu, sem gerir þér kleift að missa ekki uppsafnaðar villuleitarupplýsingar ef kjarnahrun verður. Gögnin eru geymd í minni. Virkjun fer fram í gegnum trace_instance kjarna skipanalínufæribreytuna, til dæmis mun stillingin „trace_instance=boot_map@0x285400000:12M“ geyma 12 MB af minni á 0x285400000 fyrir „boot_map“ biðminni, sem verður aðgengilegur í gegnum skrána /sys/kernel /tracing/instances/boot_map.
- Áframhaldandi flutningur breytinga frá Rust-for-greininniLinux, sem tengist notkun Rust sem annars tungumáls fyrir þróun rekla og kjarnaeininga (Rust-stuðningur er ekki virkur sjálfgefið og inniheldur ekki Rust meðal nauðsynlegra byggingareininga kjarnans). Bætt var við einingunum 'list' og 'rbtree' til að vinna með tvöfalt tengda lista og rauð-svört leitartré. Getu eininganna 'init', 'sync', 'types' og 'error' var stækkað. Möguleikinn á að nota Rust kóða þegar kjarni er smíðaður með vörn gegn Spectre árásum (MITIGATION_{RETHUNK,RETPOLINE,SLS} valkostir), með því að nota KASAN kembiforritakerfið, kCFI (kernel Control Flow Integrity) og Shadow Call verndunarkerfin, og þegar notaðar eru viðbótar GCC viðbætur var bætt við. Rekla fyrir Applied Micro QT2025 PHY Ethernet stýringuna, skrifaða í Rust, var bætt við. Sérstök vefsíða með skjölun hefur verið útbúin: rust.docs.kernel.org.
- Gagnseminni xdrgen hefur verið bætt við frumkóða kjarnans til að umbreyta XDR (eXternal Data Representation) forskriftum í XDR kóðunar- og afkóðunarföll sem skrifuð eru með C stíl sem kjarninn notar. Linux.
- Kjarnanum hefur verið breytt til að innleiða bendimaskínu til að fækka hægum símtölum í barrier_nospec() í 64-bita copy_from_user() aðgerðinni, sem notuð er til að afrita gögn inn í kjarnann úr notendarými. Með því að nota grímu flýtir „per_thread_ops“ prófið, sem metur fjölda aðgerða sem hægt er að framkvæma á einum þræði, um 2.6%.
- Nýr USB rekla hefur verið bætt við sem gerir þér kleift að nota 9pfs samskiptareglur sem flutning til að senda og taka á móti gögnum úr USB tæki þegar þú setur 9p skráarkerfið upp yfir USB (til dæmis, "mount -t 9p -o trans=usbg, aname=/path/to/ fs /mnt/9"). Dæmi um að nota nýja ökumanninn er að nota hann í stað NFS til að skipuleggja ræsingu rótar skiptingarinnar þegar innbyggð tæki eru þróað.
- Diska undirkerfi, I/O og skráarkerfi
- Hæfni til að vinna með geymslutæki sem eru stærri en stærð minnissíðunnar í kerfinu hefur verið bætt við VFS undirkerfið. Í skráarkerfum er þessi eiginleiki sem stendur aðeins studdur í XFS.
- FUSE undirkerfið, sem gerir þér kleift að búa til útfærslur á skráarkerfum sem starfa í notendarými, hefur bætt við stuðningi við að kortleggja notendaauðkenni uppsettra skráakerfa, notað til að passa skrár tiltekins notanda á uppsettri erlendri skiptingu við annan notanda á núverandi kerfi.
- Ný fcntl aðgerð, F_CREATED_QUERY, hefur verið innleidd, sem gefur forriti möguleika á að ákvarða hvort skrá sem opnuð var með O_CREAT fánanum hafi verið búin til eða hvort hún hafi þegar verið til áður.
- Bætti við möguleikanum á að nota einstök 64-bita tengipunktauðkenni við name_to_handle_at() kerfiskallið til að forðast keppnisaðstæður við þáttun /proc/mountinfo.
- Stærð „skráar“ uppbyggingarinnar í kjarnanum hefur verið minnkað úr 232 í 184 bæti, sem dregur úr minnisnotkun á kerfum sem vinna virkan með skrár.
- Bannað var að setja upp skráarkerfi til að tengja punkta innan /proc stigveldisins, eins og /proc/PID/fd, sem skapaði hugsanleg öryggisvandamál.
- Gervi-FS NSFS (NameSpace FS), notað til að vinna með nafnrými, veitir viðbótarupplýsingar um nafnrými tengipunkta.
- EROFS (Extendable Read-Only File System) skráarkerfið, hannað til notkunar á skrifvarið skiptingum, styður nú uppsetningu skráarkerfa beint frá diskamyndum sem vistaðar eru sem skrár.
- Nýjum ioctl skipunum XFS_IOC_START_COMMIT og XFS_IOC_COMMIT_RANGE hefur verið bætt við XFS til að skiptast á efni á milli tveggja skráa.
- NFS hefur bætt við stuðningi við „LOCALIO“ samskiptareglurnar, sem gerir þér kleift að ákvarða hvort viðskiptavinurinn og netþjóni NFS á sama vél til að virkja samsvarandi hagræðingar.
- Í Btrfs skráarkerfinu hafa verið lagðar til hagræðingar á afköstum, kóðinn hefur verið breyttur, svæði læsingar við lestraraðgerðir hefur verið minnkað, unnið hefur verið áfram að umbreyta minnissíðum til að nota blaðsíðublöð og sjálfvirk minnisútgáfa hefur verið útfært fyrir btrfs_path uppbyggingu.
- Í Ext4 skráarkerfinu hefur verið lagað villur sem tengjast úthlutun blokka, umfangsstjórnun, hraðvirka skuldbindingu og dagbókarfærslu.
- Sýndarvæðing og öryggi
- Bætti við IPE (Integrity Policy Enforcement) LSM einingunni, þróuð af Microsoft til að auka núverandi lögboðna aðgangsstýringarkerfi. Einingin gerir þér kleift að skilgreina almenna heiðarleikastefnu fyrir allt kerfið, sem gefur til kynna hvaða aðgerðir eru leyfðar og hvernig á að sannreyna áreiðanleika íhluta. Til dæmis, með því að nota IPE, geturðu tilgreint hvaða keyranlegar skrár mega keyra, að teknu tilliti til samræmis þeirra við tilvísunarútgáfuna með því að nota dulmáls kjötkássa sem dm-verity kerfið veitir.
- Á kjarnasöfnunarstigi er hægt að virkja sérstaklega tiltækar aðferðir til verndar gegn mismunandi veikleikum í Specter-flokki í örgjörvanum. Kconfig býður upp á nýjar færibreytur: MITIGATE_MDS (vörn gegn veikleika örarkitektúrsgagnasýna), MITIGATE_TAA (vörn gegn TSX ósamstilltu stöðvunarleysi), MITIGATE_MMIO_STALE_DATA (vörn gegn veikleika MMIO óvirkra gagna), MITIGATE_L1TF (Vörn gegn L1TF), FIGATE_L1TF (vörn gegn L2TF), FIGLE (vernd gegn Rebleed varnarleysi), MITIGATE_SPECTRE_VXNUMX, MITIGATE_SPECTRE_VXNUMX (vörn gegn Specter varnarleysi), MITIGATE_SRBDS (vernd gegn veikleika Special Register Buffer Data Sampling), MITIGATE_SSB (vernd gegn Speculative Store Bypass varnarleysi).
- Bætti við skipanalínuvalkostinum proc_mem.force_override og setti samsetningarstillinga í Kconfig (PROC_MEM_FORCE_ALWAYS, PROC_MEM_FORCE_PTRACE og PROC_MEM_FORCE_NEVER) til að koma í veg fyrir minnisbreytingar í gegnum /proc/pid/mem.
- LSM undirkerfi (Linux öryggiseining) hefur verið skipt yfir í að nota kyrrstæð símtöl, sem hefur bætt öryggi og afköst.
- Möguleikinn á að nota staðlaða kjarna fyrir ARM64 arkitektúrinn í gestaumhverfi sem keyrir á Android-kerfi með breyttum KVM hypervisor (vernduðum KVM).
- Landlock LSM einingin, sem gerir þér kleift að takmarka samskipti hóps ferla við ytra umhverfið, útfærir „IPC scoping“ hugmyndina til að takmarka samspil við sandkassaumhverfi með því að nota Unix innstungur og merki. Til dæmis er hægt að banna tengingar með Unix innstungum frá sandkassaumhverfi til ferla sem ekki hafa einangrun beitt, en leyfa tengingar við ferla í sama umfangi.
- Í KVM hypervisor hefur flaggi verið bætt við CPUID fyrir gestakerfi sem gefur til kynna stuðning við AVX10.1 viðbætur.
- Net undirkerfi
- Tækjaminni TCP vélbúnaðurinn hefur verið bætt við, sem gerir notkun netinnstunga kleift að senda beint innihald minnis jaðartækja yfir netið (núllafritunarstilling) og setja innihald netpakka beint á minnissvæði tækisins á hlið viðtakanda. Gögn sem send eru í pökkum eru flutt frá netkortinu í minni jaðartækis eða úr minni tækisins yfir á netkortið beint, framhjá örgjörvanum, og pakkahausarnir enda í venjulegum kjarnabuffum.
- Möguleiki margra Ethernet og þráðlausra rekla hefur verið aukinn. Til dæmis bætti Intel iwlwifi bílstjórinn við stuðningi við að færa RLC/SMPS aðgerðir yfir á fastbúnaðarhliðina, RealTek rtw89 bílstjórinn jók afköst og bætti við stuðningi við RTL8852BT/8852BE-VT (WiFi 6) flögur, örflögu Ethernet bílstjórinn bætti við stuðningi við IEEE 802.3 bw (100BASE) forskriftir -T1) og IEEE 802.3bp, endurbættar sýndar Ethernet útfærslur Microsoft vNIC og IBM veth. Bætt við nýjum reklum fyrir Realtek RTL9054, RTL9068, RTL9072, RTL9075, RTL9068, RTL9071 og Microchip LAN8650/1 10BASE-T1S MAC-PHY Ethernet flísar.
- Í MPTCP (MultiPath TCP), framlengingu á TCP-samskiptareglunum til að skipuleggja afhendingu TCP-pakka samtímis eftir nokkrum leiðum í gegnum mismunandi netviðmót, er stærð lóðanna sem notuð eru við leiðarlýsingu aukin úr 8 í 16 bita. Innleidd uppgötvun tapaðrar (svarthols)umferðar og stöðvun í nokkurn tíma tilraunir til að koma á tengingum við kerfi sem leiddi til taps á umferð.
- Fyrir IPv6 er stuðningur útfærður fyrir „p“ fánann í PIO (Prefix Information Option), notað í RA auglýsingum (IPv6 Router Advertisements) til að velja dreifingarlíkan viðskiptavinar í gegnum DHCPv6-PD (DHCPv6 Prefix Delegation, RFC9663) í stað þess að úthluta einstök heimilisföng byggð á forskeytum með SLAAC (Stateless Address Autoconfiguration). IPv6 IOAM6 bætir við stuðningi við nýjan tunsrc hjúpunarham sem gerir ráð fyrir betri afköstum.
- Bætt afköst fyrir vinnslu IPsec stýripakka.
- Bætt frammistaða við að skola stór nftables reglusett. nfnetlink_queue hefur bætt stuðning við SCTP samskiptareglur.
- Ethtool API hefur bætt við stuðningi við að binda mörg netkort við eitt netviðmót.
- Оборудование
- Í AMDGPU bílstjóranum heldur áfram vinna við að innleiða stuðning fyrir AMD RDNA4 („GFX12“) GPU. Bætti við möguleikanum á að endurstilla einstakar verkefnaraðir án þess að endurstilla alla GPU.
- Áfram var unnið að Xe drm reklanum (Direct Rendering Manager) fyrir GPU sem byggir á Intel Xe arkitektúrnum, sem er notaður í Intel Arc fjölskyldu skjákortum og samþættri grafík, byrjað á Tiger Lake örgjörvum. Nýja útgáfan inniheldur stuðning fyrir GPU sem byggir á Battlemage og Lunar Lake örarkitektúrunum. Stuðningur við Xe2 CCS (Color Control Surface) breytingar hefur verið kynntur til að stjórna breytum samþættra og stakra GPU.
- i915 bílstjórinn útfærir getu til að gefa út upplýsingar um viftuhraða í gegnum HWMON eða sysfs tengi („fan1_input“ eigindin). „i915.modeset“ færibreytan hefur verið úrelt; „i915.nomodeset“ færibreytan ætti að vera notuð í stað „i0.modeset=915“.
- Bætti við stuðningi fyrir A615, A306 og A621 GPU við msm DRM bílstjórann (Qualcomm Adreno GPU).
- Nouveau bílstjórinn hefur fengið endurgerð og hreinsun innri mannvirki.
- Intel_pstate ökumaðurinn, sem stjórnar orkunotkunarbreytum (P-state) á kerfum með Intel örgjörvum, hefur bætt við stuðningi við blendingakerfi með ósamhverfum (mismunandi eiginleikum) örgjörva, auk stuðnings við orkustýringu örgjörva byggða á Granite Rapids og Sierra Forest örarkitektúr. Bætti stuðningi við Xeon Granite Rapids CPU við intel_idle bílstjórann. Intel_rapl bílstjórinn veitir viðurkenningu á AMD 1Ah fjölskylduferlum og Intel ArrowLake-U örgjörvum.
- Áframhaldandi innleiðing breytinga til að styðja við ARM SoC Snapdragon X Elite, sem notar Qualcomm eigin 12 kjarna Oryon CPU og Qualcomm Adreno GPU. Kubburinn er ætlaður til notkunar í fartölvum og tölvum og er á undan Apple M3 og Intel Core Ultra 155H flögum í mörgum frammistöðuprófum.
- Bætt við stuðningi við ARM töflur, SoCs og tæki: Broadcom bcm2712 (Raspberry Pi 5), Renesas R9A09G057 (RZ/V2H), Qualcomm Snapdragon 414 (MSM8929), Lenovo ThinkPad T14s Gen 6, Lenovo A6000/A6010 Laptop RG 7, Surface 35XXn 30/A4. , Firefly Core-PX68-JD433, Lunzn Fastrhino R2S, Aspeed Riser, AGX Orin, Rockchip Qnap-TS920, Huashan Pi, Meta Catalina, BeagleY-AI, NanoPi R2002S Plus, ExynosAuto v5332, SOPHGO SG4, LG815h, LG5h, G35h IP, G11h, G93h CoolPi CM6 GenBook, Anbernic RGXNUMXXXSP, GameForce Ace, IBM PXNUMX, Kontron i.MXXNUMX OSM-S, NanoPC-TXNUMX
- Bætt við stuðningi fyrir Anbernic RG28XX, On Tat Industrial Company KD50G21-40NT-A1, Innolux G070ACE-LH3, Melfas lmfbx101117480, Densitron DMT028VGHMCMI-1D, Microchip AC40T08A, AOU B116OXTN skjár, AOU B02.3OXTN skjár B116XAN06.1, AOU B116XAT04.1, BOE TV101WUM-LL2, BOE NV140WUM-N41, BOE NV133WUM-N63, BOE NV116WHM-A4D, BOE NE140WUM-N6G, CCMNA N116WUM-N2G, CMCN116-N2-N601-N1 MNB4LS88577-XNUMX, Starry erXNUMX.
- Hljóðundirkerfið hefur bætt við stuðningi fyrir flís og merkjamál RME Digiface USB, AMD ACP 7.1, Mediatek MT6367, MT8365, Realtek RTL1320, C-Media CM9825. Gamlir hljóðreklar fyrir Intel ASoC hafa verið úrskurðaðir úreltir og mælt er með því að nota AVS rekla í staðinn. Margar endurbætur hafa verið gerðar á SoundWire reklanum.
Heimild: opennet.ru
