PÄc divu mÄneÅ”u izstrÄdes Linuss Torvalds iepazÄ«stinÄja ar Linux kodola 6.1 izlaiÅ”anu. Starp ievÄrojamÄkajÄm izmaiÅÄm: atbalsts draiveru un moduļu izstrÄdei Rust valodÄ, izmantoto atmiÅas lapu noteikÅ”anas mehÄnisma modernizÄcija, Ä«paÅ”s atmiÅas pÄrvaldnieks BPF programmÄm, atmiÅas problÄmu diagnostikas sistÄma KMSAN, KCFI (Kernelk Control). -Flow Integrity) aizsardzÄ«bas mehÄnisms, Maple struktÅ«ras koka ievieÅ”ana.
JaunajÄ versijÄ ir iekļauti 15115 2139 labojumi no 51 2 izstrÄdÄtÄjiem, ielÄpu izmÄrs ir 6.0 MB, kas ir aptuveni 5.19 reizes mazÄks nekÄ ielÄpu izmÄrs no kodoliem 13165 un 716247. IzmaiÅas skÄra 304560 45 failus, tika pievienotas 6.1 14 koda rindas un dzÄstas 14 3 rindiÅas. Aptuveni 3% no visÄm izmaiÅÄm, kas ieviestas XNUMX versijÄ, ir saistÄ«tas ar ierÄ«Äu draiveriem, aptuveni XNUMX% izmaiÅu ir saistÄ«tas ar aparatÅ«ras arhitektÅ«rÄm raksturÄ«gÄ koda atjauninÄÅ”anu, XNUMX% ir saistÄ«tas ar tÄ«kla steku, XNUMX% ir saistÄ«tas ar failu sistÄmÄm un XNUMX% ir saistÄ«ti ar iekÅ”ÄjÄm kodola apakÅ”sistÄmÄm.
Galvenie jauninÄjumi kodolÄ 6.1:
- AtmiÅas un sistÄmas pakalpojumi
- Pievienota iespÄja izmantot Rust kÄ otro valodu draiveru un kodola moduļu izstrÄdei. Galvenais Rust atbalsta iemesls ir atvieglot droÅ”u un kvalitatÄ«vu ierÄ«Äu draiveru rakstÄ«Å”anu, samazinot kļūdu iespÄjamÄ«bu, strÄdÄjot ar atmiÅu. RÅ«sas atbalsts pÄc noklusÄjuma ir atspÄjots, un tÄ rezultÄtÄ Rust netiek iekļauta kÄ nepiecieÅ”amÄ kodola veidoÅ”anas atkarÄ«ba. Kodols lÄ«dz Å”im ir pieÅÄmis minimÄli noÅemtu ielÄpu versiju, kas ir samazinÄta no 40 lÄ«dz 13 tÅ«kstoÅ”iem koda rindu un nodroÅ”ina tikai nepiecieÅ”amo minimumu, kas ir pietiekams, lai izveidotu vienkÄrÅ”u kodola moduli, kas rakstÄ«ts Rust valodÄ. NÄkotnÄ ir plÄnots pakÄpeniski palielinÄt esoÅ”o funkcionalitÄti, pÄrceļot citas izmaiÅas no Rust-for-Linux filiÄles. ParalÄli tiek izstrÄdÄti projekti, lai izmantotu piedÄvÄto infrastruktÅ«ru, lai izstrÄdÄtu draiverus NVMe diskdziÅiem, 9p tÄ«kla protokolu un Apple M1 GPU Rust valodÄ.
- SistÄmÄm, kuru pamatÄ ir AArch64, RISC-V un LoongArch arhitektÅ«ra ar EFI, ir ieviesta iespÄja tieÅ”i ielÄdÄt saspiestus kodola attÄlus. Pievienoti apstrÄdÄtÄji kodola attÄlu ielÄdei, palaiÅ”anai un izkrauÅ”anai, izsaukti tieÅ”i no EFI zboot. Ir pievienoti arÄ« apdarinÄtÄji protokolu instalÄÅ”anai un dzÄÅ”anai no EFI protokolu datu bÄzes. IepriekÅ” izsaiÅoÅ”anu veica atseviŔķs sÄknÄÅ”anas ielÄdÄtÄjs, bet tagad to var izdarÄ«t paÅ”a kodola apstrÄdÄtÄjs - kodola attÄls tiek veidots kÄ EFI lietojumprogramma.
- SastÄvÄ ir iekļauta daļa ielÄpu ar daudzlÄ«meÅu atmiÅas pÄrvaldÄ«bas modeļa ievieÅ”anu, kas ļauj atdalÄ«t atmiÅas bankas ar dažÄdÄm veiktspÄjas Ä«paŔībÄm. PiemÄram, visvairÄk izmantotÄs lapas var tikt saglabÄtas ÄtrÄkajÄ atmiÅÄ, savukÄrt visretÄk izmantotÄs lapas var tikt saglabÄtas salÄ«dzinoÅ”i lÄnajÄ atmiÅÄ. Kodols 6.1 ievieÅ” mehÄnismu, lai noteiktu, kur lÄnajÄ atmiÅÄ atrodas intensÄ«vi izmantotÄs lapas, lai tÄs varÄtu pÄrcelt uz Ätru atmiÅu, kÄ arÄ« ievieÅ” vispÄrÄ«gu atmiÅas lÄ«meÅu jÄdzienu un to relatÄ«vo veiktspÄju.
- Tas ietver MGLRU (vairÄku paaudžu LRU) mehÄnismu, kas aizstÄj veco LRU (vismazÄk izmantoto) ievieÅ”anu, kuras pamatÄ ir divas rindas, ar daudzpakÄpju struktÅ«ru, kas labÄk nosaka, kuras atmiÅas lapas faktiski tiek izmantotas un kuras var izspiest mijmaiÅas nodalÄ«jums.
- Pievienots atbalsts Oracle inženieru piedÄvÄtajai ākļavu kokaā datu struktÅ«rai, kas tiek pozicionÄta kÄ efektÄ«vÄks āsarkanÄ-melnÄ kokaā struktÅ«ras aizstÄjÄjs. Kļavas koks ir B-tree variants, kas atbalsta diapazona indeksÄÅ”anu un ir paredzÄts, lai efektÄ«vi izmantotu mÅ«sdienu procesoru keÅ”atmiÅu. Dažas atmiÅas pÄrvaldÄ«bas apakÅ”sistÄmas jau ir pÄrsÅ«tÄ«tas uz kļavu koku, kas ir pozitÄ«vi ietekmÄjis to veiktspÄju. NÄkotnÄ kļavu varÄs izmantot diapazona bloÄ·ÄÅ”anas ievieÅ”anai.
- BPF apakÅ”sistÄmai ir pievienota iespÄja izveidot ādestruktÄ«vasā BPF programmas, kas Ä«paÅ”i izstrÄdÄtas, lai uzsÄktu avÄrijas izslÄgÅ”anu, izmantojot crash_kexec() izsaukumu. Å Ädas BPF programmas var bÅ«t nepiecieÅ”amas atkļūdoÅ”anas nolÅ«kos, lai noteiktÄ brÄ«dÄ« sÄktu avÄrijas izgÄztuves izveidi. Lai piekļūtu destruktÄ«vajÄm darbÄ«bÄm, ielÄdÄjot BPF programmu, ir jÄnorÄda karodziÅa BPF_F_DESTRUCTIVE, jÄaktivizÄ sysctl kernel.destructive_bpf_enabled un jÄbÅ«t CAP_SYS_BOOT tiesÄ«bÄm.
- BPF programmÄm ir iespÄjams uzskaitÄ«t cgroup elementus, kÄ arÄ« uzskaitÄ«t konkrÄta pavediena vai uzdevuma resursus (failus, vma, procesus utt.). Lai izveidotu lietotÄju zvanu buferus, ir ieviests jauns kartes tips.
- Pievienots Ä«paÅ”s izsaukums atmiÅas pieŔķirÅ”anai BPF programmÄs (atmiÅas sadalÄ«tÄjs), kas nodroÅ”ina droÅ”Äku atmiÅas pieŔķirÅ”anu BPF kontekstÄ nekÄ standarta kmalloc().
- PirmÄ izmaiÅu daļa ir integrÄta, nodroÅ”inot iespÄju izveidot draiverus ievadierÄ«cÄm ar HID (Human Interface Device) interfeisu, kas realizÄts BPF programmu veidÄ.
- Kodols ir pilnÄ«bÄ noÅÄmis kodu, lai atbalstÄ«tu izpildÄmÄ faila formÄtu a.out, kas tika novecojis 5.1. laidumÄ un ir atspÄjots lielÄkajÄm arhitektÅ«rÄm kopÅ” versijas 5.18 un 5.19. A.out formÄts Linux sistÄmÄs jau sen ir novecojis, un mÅ«sdienu rÄ«ki noklusÄjuma Linux konfigurÄcijÄs neatbalsta a.out failu Ä£enerÄÅ”anu. A.out failu ielÄdÄtÄju var pilnÄ«bÄ ieviest lietotÄja telpÄ.
- SistÄmÄm, kuru pamatÄ ir LoongArch instrukciju kopas arhitektÅ«ra, ko izmanto Loongson 3 5000 procesoros un ievieÅ” jauno RISC ISA, lÄ«dzÄ«gi kÄ MIPS un RISC-V, ir ieviests atbalsts veiktspÄjas mÄrÄ«Å”anas pasÄkumiem (perf notikumiem), kexec, kdump un BPF JIT kompilÄcijai. .
- io_uring asinhronais I/O interfeiss piedÄvÄ jaunu režīmu IORING_SETUP_DEFER_TASKRUN, kas ļauj Ä«slaicÄ«gi atlikt ar zvana buferi saistÄ«tu darbu, lÄ«dz tiek veikts lietojumprogrammas pieprasÄ«jums, ko var izmantot, lai pakeÅ”u darbu un izvairÄ«tos no latentuma problÄmÄm, kas rodas priekÅ”pirkuma dÄļ. nepareizs laiks.
- Procesiem lietotÄja telpÄ ir dota iespÄja uzsÄkt virkni parasto atmiÅas lapu pÄrveidoÅ”anu par lielu atmiÅas lapu kopu (Transparent Huge-Pages).
- Pievienota /dev/userfaultfd ierÄ«ces ievieÅ”ana, kas ļauj piekļūt userfaultfd() sistÄmas izsaukuma funkcionalitÄtei, izmantojot piekļuves tiesÄ«bas FS. Userfaultfd funkcionalitÄte ļauj izveidot apdarinÄtÄjus, lai piekļūtu nepieŔķirtÄm atmiÅas lapÄm (lapu defektiem) lietotÄja telpÄ.
- PrasÄ«bas GNU Make utilÄ«ta versijai ir palielinÄtas ā kodola izveidei tagad ir nepiecieÅ”ama vismaz versija 3.82.
- Diska apakÅ”sistÄma, I/O un failu sistÄmas
- Btrfs failu sistÄmai ir veiktas ievÄrojamas veiktspÄjas optimizÄcijas; cita starpÄ FIEMAP ioctl izsaukuma veiktspÄja ir palielinÄta par lielumu kÄrtÄm. Pievienots atbalsts asinhronai buferizÄtai rakstÄ«Å”anai lietojumprogrammÄm, kas izmanto io_uring. OperÄcijai āsÅ«tÄ«tā ir pievienots atbalsts failiem, kas aizsargÄti ar fs-verity.
- Ext4 failu sistÄma ir pievienojusi veiktspÄjas optimizÄciju saistÄ«bÄ ar žurnÄlu uzturÄÅ”anu un tikai lasÄmu darbÄ«bu.
- EROFS (Enhanced Read-Only File System) failu sistÄma, kas paredzÄta lietoÅ”anai nodalÄ«jumos, kas pieejami tikai lasÄ«Å”anas režīmÄ, ievieÅ” iespÄju koplietot datus, kas dublÄti dažÄdÄs failu sistÄmÄs.
- SistÄmas izsaukums statx() ir pievienots, lai parÄdÄ«tu informÄciju par to, vai failam var lietot tieÅ”o I/O.
- ApakÅ”sistÄmai FUSE (Failu sistÄmas lietotÄja telpÄ) ir pievienots atbalsts pagaidu failu izveidei ar karogu O_TMPFILE.
- VirtualizÄcija un droŔība
- CFI (Control Flow Integrity) aizsardzÄ«bas mehÄnisma ievieÅ”ana ir aizstÄta, pievienojot pÄrbaudes pirms katra netieÅ”Ä funkcijas izsaukuma, lai atklÄtu dažus nedefinÄtas darbÄ«bas veidus, kas potenciÄli varÄtu izraisÄ«t parastÄs izpildes kÄrtÄ«bas (kontroles plÅ«smas) pÄrkÄpumu. izmantoÅ”anas rezultÄts, kas maina norÄdes uz atmiÅÄ saglabÄtajÄm funkcijÄm. Standarta CFI ievieÅ”ana no LLVM projekta ir aizstÄta ar opciju, kas balstÄ«ta arÄ« uz Clang izmantoÅ”anu, bet Ä«paÅ”i pielÄgota zema lÄ«meÅa apakÅ”sistÄmu un operÄtÄjsistÄmu kodolu aizsardzÄ«bai. LLVM versijÄ Clang 16 tiks piedÄvÄta jauna ievieÅ”ana, kas tiks iespÄjota ar opciju "-fsanitize=kcfi". GalvenÄ atŔķirÄ«ba no jaunÄs ievieÅ”anas ir tÄ, ka tÄ nav saistÄ«ta ar saites laika optimizÄciju (LTO) un neizraisa funkciju norÄdes aizstÄt ar saitÄm pÄrejas tabulÄ.
- LSM moduļiem (Linux Security Module) ir iespÄjams izveidot apdarinÄtÄjus, kas pÄrtver darbÄ«bas, lai izveidotu nosaukumvietas.
- Tiek nodroÅ”inÄti rÄ«ki PKCS#7 ciparparakstu pÄrbaudei BPF programmÄs.
- IespÄja atvÄrt nebloÄ·ÄÅ”anas režīmÄ (O_NONBLOCK), kas nejauÅ”i tika noÅemta kodolÄ 5.6, ir atgriezta mapÄ /dev/random.
- SistÄmÄm ar x86 arhitektÅ«ru ir pievienots brÄ«dinÄjums, ja kodola apakÅ”sistÄmÄs tiek kartÄtas atmiÅas lapas, kas vienlaikus ļauj izpildÄ«t un rakstÄ«t. NÄkotnÄ tiek apsvÄrta iespÄja pilnÄ«bÄ aizliegt Å”Ädu atmiÅas kartÄÅ”anu.
- Pievienots KMSAN (Kernel Memory Sanitizer) atkļūdoÅ”anas mehÄnisms, lai atklÄtu neinicializÄtu atmiÅas lietojumu kodolÄ, kÄ arÄ« neinicializÄtas atmiÅas noplÅ«des starp lietotÄja vietu un ierÄ«cÄm.
- Ir veikti uzlabojumi kripto-droÅ”ajÄ CRNG pseidogadÄ«juma skaitļu Ä£eneratorÄ, ko izmanto nejauÅ”Ä izsaukumÄ. IzmaiÅas sagatavoja Džeisons A. Donenfelds, VPN WireGuard autors, un to mÄrÄ·is ir uzlabot pseidogadÄ«juma veselo skaitļu ieguves droŔību.
- TÄ«kla apakÅ”sistÄma
- TCP kaudze nodroÅ”ina iespÄju (pÄc noklusÄjuma atspÄjota) katrai nosaukumvietai atseviŔķi izmantot ligzdas hash tabulas, kas uzlabo veiktspÄju sistÄmÄs ar lielu skaitu nosaukumvietu.
- NoÅemts kods, lai atbalstÄ«tu mantoto DECnet protokolu. LietotÄja vietas API apakÅ”daļas ir atstÄtas vietÄ, lai ļautu kompilÄt lietojumprogrammas, kas izmanto DECnet, taÄu Ŕīs lietojumprogrammas nevarÄs izveidot savienojumu ar tÄ«klu.
- Netlink protokols ir dokumentÄts.
- ŠŠ±Š¾ŃŃŠ“Š¾Š²Š°Š½ŠøŠµ
- Amdgpu draiveris ir pievienojis DSC (Display Stream Compression) pÄrsÅ«tÄ«Å”anas atbalstu datu saspieÅ”anai bez zudumiem, apmainoties ar informÄciju ar ekrÄniem, kas atbalsta ļoti augstu izŔķirtspÄju. TurpinÄs darbs, lai nodroÅ”inÄtu atbalstu AMD RDNA3 (RX 7000) un CDNA (Instinct) platformÄm. Pievienots atbalsts DCN 3.2, SMU 13.x, NBIO 7.7, GC 11.x, PSP 13.x, SDMA 6.x un GMC 11.x IP komponentiem. Amdkfd draiveris (diskrÄtiem AMD GPU, piemÄram, Polaris) nodroÅ”ina atbalstu GFX 11.0.3.
- I915 (Intel) draiveris ietver atbalstu Meteor Lake GPU. Meteor Lake un jaunÄki GPU atbalsta DP 2.0 (DisplayPort) saskarni. Pievienoti identifikatori videokartÄm, kuru pamatÄ ir Alder Lake S mikroarhitektÅ«ra.
- Pievienots atbalsts audio apakÅ”sistÄmÄm, kas ieviestas Apple Silicon, Intel SkyLake un Intel KabyLake procesoros. CS35L41 HDA audio draiveris atbalsta miega režīmu. Pievienots ASoC (ALSA System on Chip) atbalsts integrÄtajÄm audio mikroshÄmÄm Apple Silicon, AMD Rembrant DSP, AMD Pink Sardine ACP 6.2, Everest ES8326, Intel Sky Lake un Kaby Lake, Mediatek MT8186, NXP i.MX8ULP DSP, Qualcomm SC8280XP. SM8250 un Texas Instruments SRC8450
- Pievienots atbalsts LCD paneļiem Samsung LTL101AL01, B120XAN01.0, R140NWF5 RH, Densitron DMT028VGHMCMI-1A TFT, AUO B133UAN02.1, IVO M133NW4J-R3, Innolux N120ACA- BA1. N116, INX N01.6BCA- EA116 , INX N21BCN-EA116, Multi-Inno tehnoloģija MI2FT-116.
- Pievienots atbalsts AHCI SATA kontrolleriem, ko izmanto Baikal-T1 SoC.
- Pievienots atbalsts Bluetooth mikroshÄmÄm MediaTek MT7921, Intel Magnetor (CNVi, Integrated Connectivity), Realtek RTL8852C, RTW8852AE un RTL8761BUV (Edimax BT-8500).
- Qualcomm bezvadu moduļu draiverim ath11k ir pievienots spektrÄlÄs skenÄÅ”anas atbalsts 160 MHz diapazonÄ, ieviests daudzpavedienu NAPI un uzlabots Qualcomm WCN6750 Wi-Fi mikroshÄmu atbalsts.
- Pievienoti draiveri PinePhone tastatÅ«rai, InterTouch skÄrienpaliktÅiem (ThinkPad P1 G3), X-Box adaptÄ«vajam kontrollerim, PhoenixRC lidojuma kontrollerim, VRC-2 automaŔīnas kontrollerim, DualSense Edge kontrollerim, IBM operÄciju panelim, XBOX One Elite tÄlvadÄ«bas pultÄ«m, planÅ”etdatoriem XP-PEN Deco Pro S un Intuos Pro Small (PTH-460).
- Pievienots draiveris Aspeed HACE (Hash and Crypto Engine) kriptogrÄfijas paÄtrinÄtÄjiem.
- Pievienots atbalsts integrÄtajiem Thunderbolt/USB4 Intel Meteor Lake kontrolleriem.
- Pievienots atbalsts viedtÄlruÅiem Sony Xperia 1 IV, Samsung Galaxy E5, E7 un Grand Max, Pine64 Pinephone Pro.
- Pievienots atbalsts ARM SoC un platÄm: AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 un RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IP8062, Kont8065 S BL i.MX8MM OSM-S, MT8195 (Acer Tomato), Radxa ROCK 4C+, NanoPi R4S Enterprise Edition, JetHome JetHub D1p. AtjauninÄti draiveri SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom un NXP.
TajÄ paÅ”Ä laikÄ LatÄ«Åamerikas BrÄ«vÄs programmatÅ«ras fonds izveidoja pilnÄ«gi bezmaksas kodola 6.1 versiju - Linux-libre 6.1-gnu, kas ir atbrÄ«vota no programmaparatÅ«ras elementiem un draiveriem, kas satur nebrÄ«vus komponentus vai koda sadaļas, kuru darbÄ«bas joma ir ierobežo ražotÄjs. Jaunais laidiens attÄ«ra jauno rtw8852b draiveri un DTS failus dažÄdiem Qualcomm un MediaTek SoC ar procesoriem, kuru pamatÄ ir AArch64 arhitektÅ«ra. AtjauninÄts lÄse tÄ«rÄ«Å”anas kods draiveros un apakÅ”sistÄmÄs amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI. Izlabota novecojuÅ”o draiveru tm6000 TV karÅ”u, cpia2 v4l, sp8870, av7110 tÄ«rÄ«Å”ana.
Avots: opennet.ru