Linux 6.1 kjarnaútgáfa

Eftir tveggja mánaða þróun kynnti Linus Torvalds útgáfu Linux kjarna 6.1. Meðal athyglisverðustu breytinganna: Stuðningur við þróun ökumanna og eininga á Rust tungumálinu, nútímavæðing vélbúnaðar til að ákvarða notaðar minnissíður, sérstakur minnisstjóri fyrir BPF forrit, kerfi til að greina minnisvandamál KMSAN, KCFI (Kernelk Control). -Flow Integrity) verndarkerfi, kynning á hlynbyggingartrénu.

Nýja útgáfan inniheldur 15115 lagfæringar frá 2139 forriturum, plástrastærðin er 51 MB, sem er um það bil 2 sinnum minni en stærð plástra frá kjarna 6.0 og 5.19. Breytingarnar höfðu áhrif á 13165 skrár, 716247 línum af kóða var bætt við og 304560 línum var eytt. Um 45% allra breytinga sem kynntar eru í 6.1 tengjast tækjum, um það bil 14% breytinga tengjast uppfærslu kóða sem er sértækur fyrir vélbúnaðararkitektúr, 14% tengjast netstafla, 3% tengjast skráarkerfum og 3% tengjast innri kjarna undirkerfum.

Helstu nýjungar í kjarna 6.1:

  • Minni og kerfisþjónusta
    • Bætti við möguleikanum á að nota Rust sem annað tungumál til að þróa rekla og kjarnaeiningar. Aðalástæðan fyrir því að styðja Rust er að auðvelda ritun öruggra og hágæða tækjarekla með því að draga úr líkum á að gera villur þegar unnið er með minni. Ryðstuðningur er sjálfgefið óvirkur og leiðir ekki til þess að Ryð sé innifalið sem nauðsynleg kjarnabygging. Kjarninn hefur hingað til tekið upp lágmarksfráleita útgáfu af plástrunum, sem hefur verið fækkað úr 40 í 13 þúsund línur af kóða og gefur aðeins nauðsynlega lágmarksútgáfu, sem nægir til að byggja upp einfalda kjarnaeiningu sem er skrifuð á Rust tungumálinu. Í framtíðinni er fyrirhugað að auka smám saman núverandi virkni, flytja aðrar breytingar frá Rust-for-Linux útibúinu. Samhliða er verið að þróa verkefni til að nota fyrirhugaða innviði til að þróa rekla fyrir NVMe drif, 9p netsamskiptareglur og Apple M1 GPU á Rust tungumálinu.
    • Fyrir kerfi sem byggjast á AArch64, RISC-V og LoongArch arkitektúr með EFI hefur hæfileikinn til að hlaða þjöppuðum kjarnamyndum beint verið innleiddur. Bættu við meðhöndlum til að hlaða, keyra og afferma kjarnamyndir, kallaðir beint frá EFI zboot. Einnig hefur verið bætt við meðhöndlum til að setja upp og eyða samskiptareglum úr EFI samskiptagagnagrunninum. Áður fyrr var upptakan framkvæmt með sérstökum ræsiforriti, en nú er hægt að gera þetta af meðhöndlun í kjarnanum sjálfum - kjarnamyndin er mynduð sem EFI forrit.
    • Samsetningin inniheldur hluta af plástunum með útfærslu á multi-level minnisstjórnunarlíkani, sem gerir þér kleift að aðskilja minnisbanka með mismunandi frammistöðueiginleikum. Til dæmis geta þær síður sem mest er notaðar verið geymdar í hraðasta minni, en þær síður sem sjaldan eru notaðar geta verið geymdar í tiltölulega hægu minni. Kernel 6.1 kynnir kerfi til að ákvarða hvar mikið notaðar síður eru staðsettar í hægu minni svo hægt sé að færa þær yfir í hratt minni, og kynnir einnig almennt hugtak um minnisþrep og frammistöðu þeirra.
    • Það felur í sér MGLRU (Multi-Generational LRU) vélbúnaðinn, sem kemur í stað gömlu LRU (Least Recently Used) útfærslunnar sem byggir á tveimur biðröðum með fjölþrepa uppbyggingu sem ákvarðar betur hvaða minnissíður eru í raun í notkun og sem hægt er að ýta út til skipti skiptingin.
    • Bætti við stuðningi við „hlyntré“ gagnaskipulagið sem Oracle verkfræðingar lögðu til, sem er staðsett sem skilvirkari staðgengill „rauðsvarta trésins“. Maple tree er afbrigði af B-tré sem styður sviðsskráningu og er hannað til að nýta skyndiminni nútíma örgjörva á skilvirkan hátt. Sum minnisstjórnunar undirkerfi hafa þegar verið flutt yfir í hlyntré, sem hefur haft jákvæð áhrif á frammistöðu þeirra. Í framtíðinni er hægt að nota hlyntré til að útfæra sviðslæsingu.
    • Hæfni til að búa til „eyðileggjandi“ BPF forrit sem eru sérstaklega hönnuð til að hefja neyðarstöðvun með crash_kexec() símtalinu hefur verið bætt við BPF undirkerfið. Slík BPF forrit gæti verið nauðsynleg í villuleitartilgangi til að koma af stað stofnun hrundumps á ákveðnum tímapunkti. Til að fá aðgang að eyðileggjandi aðgerðum þegar BPF forrit er hlaðið, verður þú að tilgreina BPF_F_DESTRUCTIVE fánann, virkja sysctl kernel.destructive_bpf_enabled og hafa CAP_SYS_BOOT réttindi.
    • Fyrir BPF forrit er hægt að telja upp cgroup þætti, sem og að telja upp tilföng (skrár, vma, ferli o.s.frv.) í tilteknum þræði eða verkefni. Ný kortategund hefur verið innleidd til að búa til notendahringa biðminni.
    • Bætti við sérstöku kalli fyrir minnisúthlutun í BPF forritum (minnisúthlutun), sem veitir öruggari minnisúthlutun í BPF samhengi en staðlaða kmalloc().
    • Fyrsti hluti breytinganna hefur verið samþættur, sem gefur möguleika á að búa til rekla fyrir inntakstæki með HID (Human Interface Device) viðmóti, útfært í formi BPF forrita.
    • Kjarninn hefur algjörlega fjarlægt kóðann til að styðja a.out executable skráarsniðið, sem var úrelt í útgáfu 5.1 og hefur verið óvirkt fyrir helstu byggingarlist frá útgáfum 5.18 og 5.19. A.out sniðið hefur lengi verið úrelt á Linux kerfum og gerð a.out skráa er ekki studd af nútíma tækjum í sjálfgefnum Linux stillingum. Hægt er að útfæra hleðslutæki fyrir a.out skrár alfarið í notendarými.
    • Fyrir kerfi sem byggjast á LoongArch leiðbeiningasetta arkitektúrnum sem notuð eru í Loongson 3 5000 örgjörvunum og innleiða nýja RISC ISA, svipað og MIPS og RISC-V, er stuðningur við árangursmælingar (perf events), kexec, kdump og BPF JIT samantekt. .
    • io_uring ósamstillta I/O viðmótið býður upp á nýja stillingu, IORING_SETUP_DEFER_TASKRUN, sem gerir kleift að fresta vinnu sem tengist hringjabuffi tímabundið þar til umsókn er lögð fram, sem hægt er að nota til að vinna saman og forðast leynd vegna forgangs. röngum tíma.
    • Ferlum í notendarými er gefinn möguleiki á að hefja umbreytingu á ýmsum venjulegum minnissíðum í sett af stórum minnissíðum (Transparent Huge-Pages).
    • Bætt við útfærslu á /dev/userfaultfd tækinu, sem veitir aðgang að virkni userfaultfd() kerfiskallsins með því að nota aðgangsréttindi í FS. Userfaultfd virknin gerir þér kleift að búa til meðhöndlun til að fá aðgang að óúthlutuðum minnissíðum (síðuvillur) í notendarými.
    • Kröfur fyrir útgáfuna af GNU Make tólinu hafa verið auknar - að minnsta kosti útgáfu 3.82 er nú krafist til að byggja upp kjarnann.
  • Diska undirkerfi, I/O og skráarkerfi
    • Umtalsverðar hagræðingar hafa verið gerðar á Btrfs skráarkerfinu, meðal annars hefur afköst FIEMAP ioctl símtalsins verið aukin um stærðargráður. Bætti við stuðningi við ósamstillt biðminni skrif fyrir forrit sem nota io_uring. Bætti við stuðningi fyrir skrár sem eru verndaðar með fs-verity við „senda“ aðgerðina.
    • ext4 skráarkerfið hefur bætt við afköstum sem tengjast viðhaldi dagbókar og skrifvarinn rekstur.
    • EROFS (Enhanced Read-Only File System) skráarkerfið, hannað til notkunar á skiptingum sem eru aðgengilegar í skrifvarið ham, útfærir getu til að deila gögnum sem eru afrituð í mismunandi skráarkerfum.
    • Statx() kerfiskallinu hefur verið bætt við til að birta upplýsingar um hvort hægt sé að beita beinum I/O á skrá.
    • Stuðningur við að búa til tímabundnar skrár með O_TMPFILE fánanum hefur verið bætt við FUSE (Filesystems in User Space) undirkerfið.
  • Sýndarvæðing og öryggi
    • Skipt hefur verið út um innleiðingu CFI (Control Flow Integrity) verndarkerfisins, sem bætir við athugunum fyrir hvert óbeint símkall á aðgerð til að greina einhvers konar óskilgreinda hegðun sem gæti hugsanlega leitt til brots á venjulegri framkvæmdarskipan (stýringarflæði) sem afleiðing af notkun hetjudáða sem breyta ábendingum á aðgerðir sem eru geymdar í minni. Hefðbundinni útfærslu CFI frá LLVM verkefninu hefur verið skipt út fyrir valkost sem byggir einnig á notkun Clang, en sérstaklega aðlagaður til að vernda lágstig undirkerfi og stýrikerfiskjarna. Í LLVM verður boðið upp á nýja útfærslu í Clang 16 útgáfunni og verður hún virkjuð með "-fsanitize=kcfi" valkostinum. Lykilmunurinn við nýju útfærsluna er að hún er ekki bundin við link-time optimizations (LTO) og leiðir ekki til þess að fallbendingum er skipt út fyrir tengla í stökktöflunni.
    • Fyrir LSM einingar (Linux Security Module) er hægt að búa til meðhöndlara sem stöðva aðgerðir til að búa til nafnrými.
    • Verkfæri eru til staðar til að sannreyna PKCS#7 stafrænar undirskriftir í BPF forritum.
    • Möguleikinn á að opna í ólokandi ham (O_NONBLOCK), sem var óvart fjarlægður í kjarna 5.6, hefur verið skilað aftur í /dev/random.
    • Á kerfum með x86 arkitektúr hefur viðvörun verið bætt við ef um er að ræða kortlagningu á minnissíðum með kjarna undirkerfum sem samtímis leyfa framkvæmd og ritun. Í framtíðinni er verið að skoða þann möguleika að banna slíka minniskortlagningu algjörlega.
    • Bætt við KMSAN (Kernel Memory Sanitizer) kembiforrit til að greina óforstillta minnisnotkun í kjarnanum, sem og óforstilltan minnisleka á milli notendarýmis og tækja.
    • Endurbætur hafa verið gerðar á dulritunarörugga CRNG gervi-handahófskenndu númeraframleiðandanum sem notaður er í símtalinu. Breytingarnar voru undirbúnar af Jason A. Donenfeld, höfundi VPN WireGuard, og miða að því að bæta öryggi gervi-handahófi heiltöluútdráttar.
  • Net undirkerfi
    • TCP staflan veitir möguleika (sjálfgefið óvirkt) til að nota socket hash töflur sérstaklega fyrir hvert nafnrými, sem bætir árangur á kerfum með miklum fjölda nafnrýma.
    • Kóði fjarlægður til að styðja eldri DECnet samskiptareglur. API-stubbar notendarýmis eru skildir eftir til að leyfa að setja saman forrit sem nota DECnet, en þessi forrit munu ekki geta tengst netinu.
    • Netlink samskiptareglan er skjalfest.
  • Оборудование
    • Amdgpu bílstjórinn hefur bætt við stuðningi við DSC (Display Stream Compression) framsendingu fyrir taplausa gagnaþjöppun þegar skipt er á upplýsingum við skjái sem styðja mjög háa upplausn. Vinna heldur áfram að veita stuðning fyrir AMD RDNA3 (RX 7000) og CDNA (Instinct) vettvang. Bætti við stuðningi fyrir DCN 3.2, SMU 13.x, NBIO 7.7, GC 11.x, PSP 13.x, SDMA 6.x og GMC 11.x IP íhluti. Amdkfd bílstjórinn (fyrir stakar AMD GPU eins og Polaris) veitir stuðning fyrir GFX 11.0.3.
    • i915 (Intel) bílstjórinn inniheldur stuðning fyrir Meteor Lake GPU. Meteor Lake og nýrri GPU styðja DP 2.0 (DisplayPort) viðmót. Bætt við auðkennum fyrir skjákort byggt á Alder Lake S örarkitektúr.
    • Bætti við stuðningi við hljóðundirkerfi innleidd í Apple Silicon, Intel SkyLake og Intel KabyLake örgjörvum. CS35L41 HDA hljóðrekillinn styður svefnstillingu. Bætt við ASoC (ALSA System on Chip) stuðning fyrir innbyggða hljóðflögur Apple Silicon, AMD Rembrant DSP, AMD Pink Sardine ACP 6.2, Everest ES8326, Intel Sky Lake og Kaby Lake, Mediatek MT8186, NXP i.MX8ULP DSP, Qualcomm SC8280XP, SM SM8250 og Texas Instruments SRC8450
    • Bætt við stuðningi fyrir LCD spjöld Samsung LTL101AL01, B120XAN01.0, R140NWF5 RH, Densitron DMT028VGHMCMI-1A TFT, AUO B133UAN02.1, IVO M133NW4J-R3, Innolux N120ACA-EA, B1ACA-EA, B116ACA-EA, B01.6ACA-EA -N116, INX N21BCA- EA116 , INX N2BCN-EA116, Multi-Inno Technology MI1FT-0800.
    • Bætti við stuðningi við AHCI SATA stýringar sem notaðir eru í Baikal-T1 SoC.
    • Bætt við stuðningi við Bluetooth-flögur MediaTek MT7921, Intel Magnetor (CNVi, samþætt tenging), Realtek RTL8852C, RTW8852AE og RTL8761BUV (Edimax BT-8500).
    • ath11k bílstjórinn fyrir Qualcomm þráðlausar einingar hefur bætt við stuðningi við litrófsskönnun á 160 MHz sviðinu, innleitt fjölþráða NAPI og bættan stuðning fyrir Qualcomm WCN6750 Wi-Fi flögur.
    • Bætt við reklum fyrir PinePhone lyklaborð, InterTouch snertiborð (ThinkPad P1 G3), X-Box aðlögunarstýringu, PhoenixRC flugstýringu, VRC-2 bílastýringu, DualSense Edge stýringu, IBM stjórnborði, XBOX One Elite fjarstýringum, spjaldtölvum XP-PEN Deco Pro S og Intuos Pro Small (PTH-460).
    • Bætti við reklum fyrir Aspeed HACE (Hash and Crypto Engine) dulritunarhraða.
    • Bætt við stuðningi við samþætta Thunderbolt/USB4 Intel Meteor Lake stýringar.
    • Bætti við stuðningi fyrir Sony Xperia 1 IV, Samsung Galaxy E5, E7 og Grand Max, Pine64 Pinephone Pro snjallsíma.
    • Bætt við stuðningi við ARM SoC og töflur: AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 og RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQQ8062, IPQQ8065, IPQQ8, IPQQ 8195, BL i.MX4MM OSM-S, MT4 (Acer Tomato), Radxa ROCK 1C+, NanoPi RXNUMXS Enterprise Edition, JetHome JetHub DXNUMXp. Uppfærðir rekla fyrir SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom og NXP.

Á sama tíma myndaði Latin American Free Software Foundation útgáfu af algerlega ókeypis kjarna 6.1 - Linux-libre 6.1-gnu, hreinsaður af hlutum fastbúnaðar og rekla sem innihalda ófrjálsa íhluti eða kóðahluta, umfang þeirra er takmarkað. af framleiðanda. Nýja útgáfan hreinsar nýja rtw8852b bílstjóra og DTS skrár fyrir ýmsar Qualcomm og MediaTek SoCs með örgjörvum sem byggja á AArch64 arkitektúr. Uppfærður blob-hreinsunarkóði í reklum og undirkerfum amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI. Þrif á gamaldags rekla tm6000 sjónvarpskort, cpia2 v4l, sp8870, av7110 hefur verið leiðrétt.

Heimild: opennet.ru

Bæta við athugasemd