Rhyddhau cnewyllyn Linux 6.1

Ar ôl dau fis o ddatblygiad, cyflwynodd Linus Torvalds ryddhad cnewyllyn Linux 6.1. Ymhlith y newidiadau mwyaf nodedig: cefnogaeth ar gyfer datblygu gyrwyr a modiwlau yn yr iaith Rust, moderneiddio'r mecanwaith ar gyfer pennu tudalennau cof a ddefnyddir, rheolwr cof arbennig ar gyfer rhaglenni BPF, system ar gyfer gwneud diagnosis o broblemau cof KMSAN, y KCFI (Rheolaeth Cnewyllyn -Llif Uniondeb) mecanwaith amddiffyn, cyflwyniad y goeden strwythur Maple.

Mae'r fersiwn newydd yn cynnwys 15115 o atebion gan 2139 o ddatblygwyr, maint y clwt yw 51 MB, sydd tua 2 gwaith yn llai na maint y clytiau o gnewyllyn 6.0 a 5.19. Effeithiodd y newidiadau ar 13165 o ffeiliau, ychwanegwyd 716247 o linellau cod, a dilëwyd 304560 o linellau. Mae tua 45% o'r holl newidiadau a gyflwynwyd yn 6.1 yn gysylltiedig â gyrwyr dyfais, mae tua 14% o'r newidiadau yn ymwneud â diweddaru cod sy'n benodol i bensaernïaeth caledwedd, mae 14% yn gysylltiedig â'r pentwr rhwydwaith, mae 3% yn gysylltiedig â systemau ffeiliau, a 3% yn gysylltiedig ag is-systemau cnewyllyn mewnol.

Prif ddatblygiadau arloesol yng nghnewyllyn 6.1:

  • Gwasanaethau cof a system
    • Ychwanegwyd y gallu i ddefnyddio Rust fel ail iaith ar gyfer datblygu gyrwyr a modiwlau cnewyllyn. Y prif reswm dros gefnogi Rust yw ei gwneud hi'n haws ysgrifennu gyrwyr dyfeisiau diogel ac o ansawdd uchel trwy leihau'r tebygolrwydd o wneud gwallau wrth weithio gyda'r cof. Mae cefnogaeth rust yn anabl yn ddiofyn ac nid yw'n arwain at gynnwys Rust fel dibyniaeth adeiladu cnewyllyn gofynnol. Hyd yn hyn mae'r cnewyllyn wedi mabwysiadu fersiwn fach, wedi'i thynnu i lawr o'r clytiau, sydd wedi'i leihau o 40 i 13 mil o linellau cod ac yn darparu'r lleiafswm angenrheidiol yn unig, sy'n ddigon i adeiladu modiwl cnewyllyn syml wedi'i ysgrifennu yn yr iaith Rust. Yn y dyfodol, bwriedir cynyddu'r ymarferoldeb presennol yn raddol, gan drosglwyddo newidiadau eraill o gangen Rust-for-Linux. Ar yr un pryd, mae prosiectau'n cael eu datblygu i ddefnyddio'r seilwaith arfaethedig i ddatblygu gyrwyr ar gyfer gyriannau NVMe, y protocol rhwydwaith 9c a'r Apple M1 GPU yn yr iaith Rust.
    • Ar gyfer systemau sy'n seiliedig ar saernïaeth AArch64, RISC-V a LoongArch gydag EFI, mae'r gallu i lwytho delweddau cnewyllyn cywasgedig yn uniongyrchol wedi'i weithredu. Ychwanegwyd trinwyr ar gyfer llwytho, rhedeg a dadlwytho delweddau cnewyllyn, a elwir yn uniongyrchol o EFI zboot. Mae trinwyr ar gyfer gosod a dileu protocolau o gronfa ddata protocol EFI hefyd wedi'u hychwanegu. Yn flaenorol, cynhaliwyd dadbacio gan lwythwr cychwyn ar wahân, ond nawr gellir gwneud hyn gan driniwr yn y cnewyllyn ei hun - mae delwedd y cnewyllyn yn cael ei ffurfio fel cais EFI.
    • Mae'r cyfansoddiad yn cynnwys rhan o'r clytiau gyda gweithredu model rheoli cof aml-lefel, sy'n eich galluogi i wahanu banciau cof gyda nodweddion perfformiad gwahanol. Er enghraifft, efallai y bydd y tudalennau a ddefnyddir amlaf yn cael eu storio yn y cof cyflymaf, tra gall y tudalennau a ddefnyddir amlaf gael eu storio mewn cof cymharol araf. Mae Cnewyllyn 6.1 yn cyflwyno mecanwaith ar gyfer pennu lle mae tudalennau a ddefnyddir yn helaeth wedi'u lleoli mewn cof araf fel y gellir eu hyrwyddo i gof cyflym, ac mae hefyd yn cyflwyno cysyniad cyffredinol o haenau cof a'u perfformiad cymharol.
    • Mae'n cynnwys mecanwaith MGLRU (LRU Aml-Genhedlaeth), sy'n disodli'r hen weithrediad LRU (a Ddefnyddir yn Ddiweddaraf) yn seiliedig ar ddau giw gyda strwythur aml-gam sy'n pennu'n well pa dudalennau cof sy'n cael eu defnyddio mewn gwirionedd a pha rai y gellir eu gwthio allan i y rhaniad cyfnewid.
    • Ychwanegwyd cefnogaeth i’r strwythur data “coeden fasarnen” a gynigiwyd gan beirianwyr Oracle, sydd wedi’i gosod yn lle mwy effeithiol y strwythur “coeden goch-du”. Mae coeden masarn yn amrywiad ar goeden B sy'n cefnogi mynegeio amrediad ac sydd wedi'i gynllunio i wneud defnydd effeithlon o storfa proseswyr modern. Mae rhai is-systemau rheoli cof eisoes wedi'u trosglwyddo i goeden masarn, sydd wedi cael effaith gadarnhaol ar eu perfformiad. Yn y dyfodol, gellir defnyddio coed masarn i weithredu cloi ystod.
    • Mae'r gallu i greu rhaglenni BPF “dinistriol” sydd wedi'u cynllunio'n arbennig i gychwyn cau brys trwy'r alwad crash_kexec() wedi'i ychwanegu at is-system BPF. Mae'n bosibl y bydd angen rhaglenni BPF o'r fath at ddibenion dadfygio i gychwyn creu dympio damwain ar adeg benodol. I gael mynediad at weithrediadau dinistriol wrth lwytho rhaglen BPF, rhaid i chi nodi'r faner BPF_F_DESTRUCTIVE, actifadu sysctl kernel.destructive_bpf_enabled, a chael hawliau CAP_SYS_BOOT.
    • Ar gyfer rhaglenni BPF, mae'n bosibl rhifo elfennau cgroup, yn ogystal â chyfrifo adnoddau (ffeiliau, vma, prosesau, ac ati) o edau neu dasg benodol. Mae math newydd o fap wedi'i roi ar waith i greu clustogau cylch defnyddwyr.
    • Ychwanegwyd galwad arbennig am ddyrannu cof mewn rhaglenni BPF (dyrannu cof), sy'n darparu dyraniad cof mwy diogel yng nghyd-destun BPF na'r kmalloc safonol().
    • Mae rhan gyntaf y newidiadau wedi'u hintegreiddio, gan ddarparu'r gallu i greu gyrwyr ar gyfer dyfeisiau mewnbwn gyda rhyngwyneb HID (Dyfais Rhyngwyneb Dynol), a weithredir ar ffurf rhaglenni BPF.
    • Mae'r cnewyllyn wedi dileu'r cod yn gyfan gwbl i gefnogi'r fformat ffeil gweithredadwy a.out, a anghymeradwywyd yn natganiad 5.1 ac sydd wedi'i analluogi ar gyfer pensaernïaeth fawr ers fersiynau 5.18 a 5.19. Mae'r fformat a.out wedi'i anghymeradwyo ers tro ar systemau Linux, ac nid yw cynhyrchu ffeiliau a.out yn cael ei gefnogi gan offer modern mewn ffurfweddau Linux rhagosodedig. Gellir gweithredu'r llwythwr ar gyfer ffeiliau a.out yn gyfan gwbl yn y gofod defnyddiwr.
    • Ar gyfer systemau sy'n seiliedig ar bensaernïaeth set gyfarwyddiadau LoongArch a ddefnyddir ym mhroseswyr Loongson 3 5000 a gweithredu'r ISA RISC newydd, yn debyg i MIPS a RISC-V, gweithredir cefnogaeth ar gyfer digwyddiadau mesur perfformiad (digwyddiadau perf), kexec, kdump a chasgliad JIT BPF .
    • Mae'r rhyngwyneb I/O asyncronig io_uring yn cynnig modd newydd, IORING_SETUP_DEFER_TASKRUN, sy'n caniatáu gohirio gwaith sy'n gysylltiedig â byffer cylch dros dro hyd nes y gwneir cais cais, y gellir ei ddefnyddio i swp-waith ac osgoi problemau hwyrni oherwydd rhagbrynu ceisiadau yn y amser anghywir.
    • Mae prosesau yng ngofod defnyddwyr yn cael y gallu i gychwyn trosi ystod o dudalennau cof arferol yn set o dudalennau cof mawr (Tudalennau Anferth Tryloyw).
    • Ychwanegwyd gweithrediad y ddyfais /dev/userfaultfd, sy'n caniatáu mynediad i ymarferoldeb galwad system userfaultfd() gan ddefnyddio hawliau mynediad yn yr FS. Mae'r swyddogaeth userfaultfd yn caniatáu ichi greu trinwyr ar gyfer cyrchu tudalennau cof heb eu dyrannu (diffygion tudalen) yn y gofod defnyddiwr.
    • Mae'r gofynion ar gyfer y fersiwn o'r cyfleustodau GNU Make wedi'u cynyddu - mae angen fersiwn 3.82 o leiaf bellach i adeiladu'r cnewyllyn.
  • Is-system ddisg, systemau I/O a ffeiliau
    • Gwnaed optimeiddiadau perfformiad sylweddol i system ffeiliau Btrfs; ymhlith pethau eraill, mae perfformiad galwad ioctl FIEMAP wedi'i gynyddu gan orchmynion maint. Cefnogaeth ychwanegol ar gyfer ysgrifennu byffer asyncronaidd ar gyfer cymwysiadau sy'n defnyddio io_uring. Cefnogaeth ychwanegol ar gyfer ffeiliau sydd wedi'u diogelu â fs-verity i'r gweithrediad “anfon”.
    • Mae'r system ffeiliau ext4 wedi ychwanegu optimeiddiadau perfformiad sy'n ymwneud â chynnal a chadw dyddlyfr a gweithrediad darllen yn unig.
    • Mae system ffeiliau EROFS (System Ffeiliau Darllen yn Unig Gwell), a ddyluniwyd i'w defnyddio ar raniadau y gellir eu cyrchu mewn modd darllen yn unig, yn gweithredu'r gallu i rannu data a ddyblygir mewn systemau ffeiliau gwahanol.
    • Mae'r alwad system statx() wedi'i hychwanegu i ddangos gwybodaeth ynghylch a ellir cymhwyso I/O uniongyrchol i ffeil.
    • Mae cefnogaeth ar gyfer creu ffeiliau dros dro gyda'r faner O_TMPFILE wedi'i ychwanegu at yr is-system FUSE (Filesystems in User Space).
  • Rhithwiroli a Diogelwch
    • Mae gweithredu mecanwaith amddiffyn CFI (Cywirdeb Llif Rheoli) wedi'i ddisodli, gan ychwanegu gwiriadau cyn pob galwad anuniongyrchol o swyddogaeth i ganfod rhai mathau o ymddygiad heb ei ddiffinio a allai o bosibl arwain at dorri'r gorchymyn gweithredu arferol (llif rheoli) fel a ganlyniad i ddefnyddio campau sy'n newid awgrymiadau i swyddogaethau sy'n cael eu storio yn y cof . Mae gweithrediad safonol CFI o'r prosiect LLVM wedi'i ddisodli gan opsiwn sydd hefyd yn seiliedig ar y defnydd o Clang, ond wedi'i addasu'n arbennig i amddiffyn is-systemau lefel isel a chnewyllyn systemau gweithredu. Yn LLVM, bydd gweithrediad newydd yn cael ei gynnig yn y datganiad Clang 16 a bydd yn cael ei alluogi gyda'r opsiwn "-fsanitize=kcfi". Y gwahaniaeth allweddol gyda'r gweithrediad newydd yw nad yw'n gysylltiedig ag optimeiddio amser cyswllt (LTO) ac nad yw'n arwain at ddisodli awgrymiadau swyddogaeth gan ddolenni yn y tabl naid.
    • Ar gyfer modiwlau LSM (Linux Security Module), mae'n bosibl creu trinwyr sy'n rhyng-gipio gweithrediadau i greu gofodau enwau.
    • Darperir offer ar gyfer gwirio llofnodion digidol PKCS#7 mewn rhaglenni BPF.
    • Mae'r gallu i agor yn y modd di-flocio (O_NONBLOCK), a gafodd ei dynnu'n anfwriadol yng nghnewyllyn 5.6, wedi'i ddychwelyd i /dev/random.
    • Ar systemau gyda phensaernïaeth x86, mae rhybudd wedi'i ychwanegu rhag ofn y bydd is-systemau cnewyllyn yn mapio tudalennau cof sy'n caniatáu gweithredu ac ysgrifennu ar yr un pryd. Yn y dyfodol, mae'r posibilrwydd o wahardd mapio cof o'r fath yn gyfan gwbl yn cael ei ystyried.
    • Ychwanegwyd mecanwaith dadfygio KMSAN (Kernel Memory Sanitizer) i ganfod defnydd cof anghychwynnol yn y cnewyllyn, yn ogystal â gollyngiadau cof anghychwynnol rhwng gofod defnyddwyr a dyfeisiau.
    • Mae gwelliannau wedi'u gwneud i'r generadur rhifau ffug-hap CRNG crypto-secure a ddefnyddir yn yr alwad getrandom. Paratowyd y newidiadau gan Jason A. Donenfeld, awdur VPN WireGuard, a'u nod yw gwella diogelwch echdynnu cyfanrif ffug-hap.
  • Is-system rhwydwaith
    • Mae'r stac TCP yn darparu'r gallu (anabl yn ddiofyn) i ddefnyddio tablau stwnsh soced ar wahân ar gyfer pob gofod enw, sy'n gwella perfformiad systemau â nifer fawr o ofodau enwau.
    • Cod wedi'i ddileu i gefnogi'r protocol DECnet etifeddol. Mae bonion API gofod defnyddiwr yn cael eu gadael yn eu lle i ganiatáu i gymwysiadau sy'n defnyddio DECnet gael eu llunio, ond ni fydd y cymwysiadau hyn yn gallu cysylltu â'r rhwydwaith.
    • Mae'r protocol netlink wedi'i ddogfennu.
  • Offer
    • Mae'r gyrrwr amdgpu wedi ychwanegu cefnogaeth ar gyfer anfon ymlaen DSC (Display Stream Compression) ar gyfer cywasgu data di-golled wrth gyfnewid gwybodaeth â sgriniau sy'n cefnogi cydraniad uchel iawn. Mae gwaith yn parhau i ddarparu cymorth ar gyfer llwyfannau AMD RDNA3 (RX 7000) a CDNA (Instinct). Cefnogaeth ychwanegol ar gyfer cydrannau DCN 3.2, SMU 13.x, NBIO 7.7, GC 11.x, PSP 13.x, SDMA 6.x a GMC 11.x. Mae'r gyrrwr amdkfd (ar gyfer GPUs AMD arwahanol fel Polaris) yn darparu cefnogaeth ar gyfer GFX 11.0.3.
    • Mae'r gyrrwr i915 (Intel) yn cynnwys cefnogaeth ar gyfer Meteor Lake GPU. Mae Meteor Lake a GPUs mwy newydd yn cefnogi rhyngwyneb DP 2.0 (DisplayPort). Ychwanegwyd dynodwyr ar gyfer cardiau fideo yn seiliedig ar ficrosaernïaeth Alder Lake S.
    • Cefnogaeth ychwanegol ar gyfer is-systemau sain a weithredir ym mhroseswyr Apple Silicon, Intel SkyLake ac Intel KabyLake. Mae gyrrwr sain CS35L41 HDA yn cefnogi modd cysgu. Ychwanegwyd cefnogaeth ASoC (System ALSA ar Sglodion) ar gyfer sglodion sain integredig Apple Silicon, DSPs Rembrant AMD, AMD Pink Sardine ACP 6.2, Everest ES8326, Intel Sky Lake a Kaby Lake, Mediatek MT8186, NXP i.MX8ULP DSPs, Qualcomm SC8280XP, SM8250, SM8450 a Texas Instruments SRC4392
    • Ychwanegwyd cefnogaeth ar gyfer paneli LCD Samsung LTL101AL01, B120XAN01.0, R140NWF5 RH, Densitron DMT028VGHMCMI-1A TFT, AUO B133UAN02.1, IVO M133NW4J-R3, Innolux N120ACA-EA1, B116UAN01.6, AUO B116UAN21, Innolux N116ACA-EA2, AUO B116ACA-EA1, AUO B0800. , INX N9BCA- EAXNUMX , INX NXNUMXBCN-EAXNUMX, Technoleg Aml-Inno MIXNUMXFT-XNUMX.
    • Cefnogaeth ychwanegol i reolwyr AHCI SATA a ddefnyddir yn y Baikal-T1 SoC.
    • Cefnogaeth ychwanegol ar gyfer sglodion Bluetooth MediaTek MT7921, Intel Magnetor (CNVi, Cysylltedd Integredig), Realtek RTL8852C, RTW8852AE a RTL8761BUV (Edimax BT-8500).
    • Mae'r gyrrwr ath11k ar gyfer modiwlau diwifr Qualcomm wedi ychwanegu cefnogaeth ar gyfer sganio sbectrol yn yr ystod 160 MHz, wedi gweithredu NAPI aml-edau, a gwell cefnogaeth i sglodion Wi-Fi Qualcomm WCN6750.
    • Ychwanegwyd gyrwyr ar gyfer bysellfwrdd PinePhone, padiau cyffwrdd InterTouch (ThinkPad P1 G3), Rheolydd Addasol X-Box, Rheolydd Hedfan PhoenixRC, Rheolydd Car VRC-2, Rheolydd Edge DualSense, Panel Gweithredu IBM, teclynnau anghysbell XBOX One Elite, tabledi XP-PEN Deco Pro S ac Intuos Pro Small (PTH-460).
    • Ychwanegwyd gyrrwr ar gyfer cyflymyddion cryptograffig Aspeed HACE (Hash a Crypto Engine).
    • Cefnogaeth ychwanegol i reolwyr integredig Thunderbolt/USB4 Intel Meteor Lake.
    • Cefnogaeth ychwanegol ar gyfer ffonau smart Sony Xperia 1 IV, Samsung Galaxy E5, E7 a Grand Max, Pine64 Pinephone Pro.
    • Cefnogaeth ychwanegol i ARM SoC a byrddau: AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 a RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQ8062, IPQ8065, BL i.MX8MM OSM-S, MT8195 (Acer Tomato), Radxa ROCK 4C+, NanoPi R4S Enterprise Edition, JetHome JetHub D1p. Gyrwyr wedi'u diweddaru ar gyfer SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom a NXP.

Ar yr un pryd, ffurfiodd Sefydliad Meddalwedd Rydd America Ladin fersiwn o'r cnewyllyn hollol rhad ac am ddim 6.1 - Linux-libre 6.1-gnu, wedi'i glirio o elfennau o firmware a gyrwyr sy'n cynnwys cydrannau nad ydynt yn rhydd neu adrannau o god, y mae eu cwmpas yn gyfyngedig gan y gwneuthurwr. Mae'r datganiad newydd yn glanhau'r gyrrwr rtw8852b newydd a ffeiliau DTS ar gyfer amrywiol Qualcomm a MediaTek SoCs gyda phroseswyr yn seiliedig ar bensaernïaeth AArch64. Cod glanhau blob wedi'i ddiweddaru mewn gyrwyr ac is-systemau amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI. Mae glanhau cardiau teledu tm6000 gyrwyr hen ffasiwn, cpia2 v4l, sp8870, av7110 wedi'i gywiro.

Ffynhonnell: opennet.ru

Ychwanegu sylw