Linux 6.1 kodola laidiens

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

Pievieno komentāru