Kaluaran kernel Linux 6.1

Saatos dua bulan pangwangunan, Linus Torvalds nampilkeun sékrési kernel Linux 6.1. Diantara parobahan anu paling penting: dukungan pikeun pamekaran supir sareng modul dina basa Rust, modérnisasi mékanisme pikeun nangtukeun halaman mémori anu dianggo, manajer mémori khusus pikeun program BPF, sistem pikeun ngadiagnosa masalah mémori KMSAN, KCFI (Kernelk Control). -Flow Integrity) mékanisme panyalindungan, bubuka tangkal struktur Maple.

Versi anyar kalebet 15115 perbaikan tina 2139 pamekar, ukuran patch 51 MB, kirang langkung 2 kali langkung alit tibatan ukuran patch tina kernel 6.0 sareng 5.19. Parobahan mangaruhan 13165 file, 716247 baris kode ditambahkeun, sarta 304560 baris dihapus. Sakitar 45% tina sadaya parobihan anu diwanohkeun dina 6.1 aya hubunganana sareng supir alat, sakitar 14% parobihan aya hubunganana sareng ngapdet kode khusus pikeun arsitéktur hardware, 14% aya hubunganana sareng tumpukan jaringan, 3% aya hubunganana sareng sistem file, sareng 3% aya hubunganana sareng subsistem kernel internal.

Inovasi konci dina kernel 6.1:

  • Mémori sareng jasa sistem
    • Ditambahkeun kamampuan ngagunakeun Rust salaku basa kadua pikeun ngembangkeun supir sareng modul kernel. Alesan utama pikeun ngadukung Rust nyaéta pikeun ngagampangkeun nyerat supir alat anu aman sareng kualitas luhur ku ngirangan kamungkinan kasalahan nalika damel sareng mémori. Pangrojong Rust ditumpurkeun sacara standar sareng henteu nyababkeun Rust kalebet salaku gumantungna ngawangun kernel anu diperyogikeun. Sajauh ieu kernel parantos ngadopsi versi patches anu minimal, dilucuti-handap, anu parantos dikirangan tina 40 dugi ka 13 rébu garis kode sareng ngan ukur nyayogikeun minimum anu diperyogikeun, cekap pikeun ngawangun modul kernel saderhana anu ditulis dina basa Rust. Dina mangsa nu bakal datang, rencanana pikeun laun ningkatkeun fungsionalitas nu aya, mindahkeun parobahan séjénna ti cabang Rust-pikeun-Linux. Dina paralel, proyék-proyék dikembangkeun pikeun ngagunakeun infrastruktur anu diusulkeun pikeun ngembangkeun panggerak pikeun drive NVMe, protokol jaringan 9p sareng Apple M1 GPU dina basa Rust.
    • Pikeun sistem dumasar kana arsitéktur AArch64, RISC-V sareng LoongArch sareng EFI, kamampuan pikeun muka langsung gambar kernel anu dikomprés parantos dilaksanakeun. Ditambahkeun pawang pikeun loading, ngajalankeun sarta unloading gambar kernel, disebut langsung ti EFI zboot. Pawang pikeun masang sareng ngahapus protokol tina pangkalan data protokol EFI ogé parantos ditambah. Saméméhna, unpacking dilaksanakeun ku bootloader anu misah, tapi ayeuna ieu tiasa dilakukeun ku panangan dina kernel sorangan - gambar kernel kabentuk salaku aplikasi EFI.
    • Komposisi ngawengku bagian tina patches jeung palaksanaan model manajemén memori multi-tingkat, nu ngidinan Anjeun pikeun misahkeun bank memori kalawan ciri kinerja béda. Contona, kaca nu paling loba dipaké bisa disimpen dina mémori panggancangna, sedengkeun kaca nu paling jarang dipaké bisa disimpen dina mémori rélatif slow. Kernel 6.1 ngenalkeun mékanisme pikeun nangtukeun dimana halaman anu seueur dianggo aya dina mémori anu laun supados tiasa diwanohkeun kana mémori gancang, sareng ogé ngenalkeun konsép umum ngeunaan tingkatan mémori sareng kinerja relatifna.
    • Ieu ngawengku mékanisme MGLRU (Multi-Generasi LRU), nu ngagantikeun LRU heubeul (Paling saeutik Nembe Dipaké) palaksanaan dumasar kana dua antrian jeung struktur multi-tahap nu hadé nangtukeun mana kaca mémori sabenerna dipaké jeung nu bisa kadorong kaluar ka. partisi swap.
    • Ditambahkeun dukungan pikeun struktur data "tangkal maple" anu diajukeun ku insinyur Oracle, anu diposisikan salaku gaganti anu langkung efektif pikeun struktur "tangkal beureum-hideung". Tangkal maple mangrupakeun varian B-tangkal nu ngarojong rentang indexing sarta dirancang sangkan pamakéan efisien tina cache prosesor modern. Sababaraha subsistem manajemén memori parantos dialihkeun kana tangkal maple, anu ngagaduhan pangaruh anu positif kana pagelaranana. Dina mangsa nu bakal datang, tangkal maple bisa dipaké pikeun nerapkeun rentang ngonci.
    • Kamampuhan pikeun nyieun "destructive" program BPF husus dirancang pikeun initiate hiji shutdown darurat via crash_kexec () panggero geus ditambahkeun kana subsistem BPF. Program BPF sapertos kitu tiasa diperyogikeun pikeun tujuan debugging pikeun ngamimitian nyiptakeun kacilakaan dump dina waktos anu tangtu. Pikeun ngakses operasi destructive nalika ngamuat program BPF, anjeun kudu nangtukeun bendera BPF_F_DESTRUCTIVE, ngaktipkeun sysctl kernel.destructive_bpf_enabled, sarta ngabogaan hak CAP_SYS_BOOT.
    • Pikeun program BPF, kasebut nyaéta dimungkinkeun pikeun enumerate elemen cgroup, kitu ogé enumerate sumberdaya (file, vma, prosés, jeung sajabana) tina thread husus atawa tugas. A tipe peta anyar geus dilaksanakeun pikeun nyieun panyangga ring pamaké.
    • Ditambahkeun panggero husus pikeun alokasi memori dina program BPF (memori allocator), nu nyadiakeun alokasi memori aman dina konteks BPF ti kmalloc baku ().
    • Bagian kahiji tina parobahan geus terpadu, nyadiakeun kamampuhan pikeun nyieun drivers pikeun alat input kalawan panganteur HID (Alat Antarmuka Manusa), dilaksanakeun dina bentuk program BPF.
    • Kernel parantos ngaleungitkeun kodeu pikeun ngadukung format file anu tiasa dieksekusi a.out, anu dileungitkeun dina sékrési 5.1 sareng parantos ditumpurkeun pikeun arsitéktur utama ti vérsi 5.18 sareng 5.19. Format a.out parantos lami teu dianggo dina sistem Linux, sareng generasi file a.out henteu dirojong ku alat modéren dina konfigurasi Linux standar. The loader pikeun file a.out bisa dilaksanakeun sagemblengna dina spasi pamaké.
    • Pikeun sistem dumasar kana LoongArch instruksi set arsitektur dipaké dina Loongson 3 5000 prosesor sarta ngalaksanakeun RISC ISA anyar, sarupa jeung MIPS na RISC-V, rojongan pikeun acara pangukuran kinerja (perf acara), kexec, kdump na BPF kompilasi JIT dilaksanakeun. .
    • Antarbeungeut I/O asinkron io_uring nawarkeun mode anyar, IORING_SETUP_DEFER_TASKRUN, anu ngamungkinkeun karya nu patali jeung ring panyangga ditunda samentara nepi ka pamundut aplikasi dijieun, nu bisa dipaké pikeun bets karya jeung nyingkahan masalah latency alatan preemption. salah waktu.
    • Prosés dina spasi pamaké dibéré kamampuhan pikeun initiate konversi sauntuyan kaca mémori normal kana susunan kaca mémori badag (Transparent Huge-Pages).
    • Ditambahkeun palaksanaan / dev / alat userfaultfd, nu ngidinan aksés ka fungsionalitas nu userfaultfd () nelepon sistem ngagunakeun hak aksés dina FS. Fungsi userfaultfd ngidinan Anjeun pikeun nyieun pawang pikeun ngakses kaca mémori unallocated (kaca faults) dina spasi pamaké.
    • Sarat pikeun vérsi utilitas GNU Make parantos ningkat - sahenteuna versi 3.82 ayeuna diperyogikeun pikeun ngawangun kernel.
  • Subsistem Disk, I/O sareng Sistem File
    • Optimasi kinerja anu signifikan parantos dilakukeun kana sistem file Btrfs; diantarana, kinerja telepon FIEMAP ioctl parantos ningkat ku pesenan ageungna. Ditambahkeun dukungan pikeun nyerat buffered Asynchronous pikeun aplikasi anu nganggo io_uring. Ditambahkeun dukungan pikeun file anu ditangtayungan ku fs-verity kana operasi "ngirim".
    • Sistem file ext4 parantos nambihan optimasi kinerja anu aya hubunganana sareng pangropéa jurnal sareng operasi ngan ukur dibaca.
    • Sistem file EROFS (Enhanced Read-Only File System), dirancang pikeun dianggo dina partisi anu tiasa diaksés dina modeu baca wungkul, ngalaksanakeun kamampuan pikeun ngabagi data anu diduplikasi dina sistem file anu béda.
    • statx () Sistim panggero geus ditambahkeun pikeun nembongkeun informasi ngeunaan naha langsung I / O bisa dilarapkeun ka file.
    • Rojongan pikeun nyieun file samentara jeung bandéra O_TMFILE geus ditambahkeun kana subsistem FUSE (Filesystems in User Space).
  • Virtualisasi sareng Kaamanan
    • Palaksanaan mékanisme panyalindungan CFI (Control Flow Integrity) geus diganti, nambahkeun cék saméméh unggal panggero teu langsung hiji fungsi pikeun ngadeteksi sababaraha bentuk kabiasaan undefined nu berpotensi ngakibatkeun palanggaran urutan palaksanaan normal (aliran kontrol) salaku a hasil tina pamakéan exploitasi nu ngarobah pointer kana fungsi disimpen dina mémori. Palaksanaan standar CFI ti proyék LLVM geus diganti ku pilihan ogé dumasar kana pamakéan Clang, tapi husus diadaptasi pikeun ngajaga subsistem-tingkat low sarta kernels sistem operasi. Dina LLVM, palaksanaan énggal bakal ditawarkeun dina sékrési Clang 16 sareng bakal diaktipkeun ku pilihan "-fsanitize = kcfi". Beda konci kalayan palaksanaan anyar téh nya éta teu dihijikeun ka link-waktu optimizations (LTO) jeung teu ngakibatkeun pointers fungsi diganti ku tumbu dina tabel luncat.
    • Pikeun modul LSM (Linux Kaamanan Module), kasebut nyaéta dimungkinkeun pikeun nyieun pawang nu intercept operasi pikeun nyieun ngaranspasi.
    • Parabot disadiakeun pikeun verifikasi PKCS # 7 tanda tangan digital dina program BPF.
    • Kamampuhan pikeun muka dina modeu non-blocking (O_NONBLOCK), nu teu ngahaja dihapus dina kernel 5.6, geus balik ka / dev / acak.
    • Dina sistem sareng arsitéktur x86, peringatan parantos ditambah upami aya pemetaan halaman mémori ku subsistem kernel anu sakaligus ngamungkinkeun palaksanaan sareng tulisan. Dina mangsa nu bakal datang, kamungkinan sagemblengna prohibiting pemetaan memori misalna keur dianggap.
    • Ditambahkeun mékanisme debugging KMSAN (Kernel Memory Sanitizer) pikeun ngadeteksi pamakean mémori anu teu dipikabutuh dina kernel, ogé bocor mémori anu teu diinisialisasi antara rohangan pangguna sareng alat.
    • Perbaikan parantos dilakukeun kana generator nomer pseudo-acak crypto-aman CRNG anu dianggo dina panggero getrandom. Parobihan anu disiapkeun ku Jason A. Donenfeld, panulis VPN WireGuard, sareng ditujukeun pikeun ningkatkeun kaamanan ékstraksi integer pseudo-acak.
  • Subsistem jaringan
    • Tumpukan TCP nyadiakeun kamampuhan (ditumpurkeun sacara standar) ngagunakeun tabel hash stop kontak misah pikeun tiap spasi ngaran, nu ngaronjatkeun kinerja dina sistem kalawan jumlah badag spasi ngaran.
    • Kode dihapus pikeun ngarojong protokol DECnet warisan. Rintisan API spasi pamaké ditinggalkeun di tempat pikeun ngidinan aplikasi nu make DECnet bisa disusun, tapi aplikasi ieu moal bisa nyambung ka jaringan.
    • Protokol netlink didokumentasikeun.
  • pakakas
    • Supir amdgpu parantos nambihan dukungan pikeun DSC (Display Stream Compression) diteruskeun pikeun komprési data anu henteu rugi nalika tukeur inpormasi sareng layar anu ngadukung résolusi anu luhur. Karya terus nyadiakeun rojongan pikeun AMD RDNA3 (RX 7000) jeung platform CDNA (Instinct). rojongan ditambahkeun pikeun DCN 3.2, SMU 13.x, NBIO 7.7, GC 11.x, PSP 13.x, SDMA 6.x na GMC 11.x komponén IP. Supir amdkfd (pikeun GPU AMD diskrit sapertos Polaris) nyayogikeun dukungan pikeun GFX 11.0.3.
    • Supir i915 (Intel) kalebet dukungan pikeun Meteor Lake GPU. Meteor Lake sareng GPU anu langkung énggal ngadukung antarmuka DP 2.0 (DisplayPort). Identifiers ditambahkeun pikeun kartu vidéo dumasar kana microarchitecture Alder Lake S.
    • Ditambahkeun dukungan pikeun subsistem audio anu dilaksanakeun dina prosesor Apple Silicon, Intel SkyLake sareng Intel KabyLake. Supir audio CS35L41 HDA ngadukung mode sare. Ditambahkeun dukungan ASoC (ALSA System on Chip) pikeun chip audio terpadu Apple Silicon, AMD Rembrant DSPs, AMD Pink Sardine ACP 6.2, Everest ES8326, Intel Sky Lake and Kaby Lake, Mediatek MT8186, NXP i.MX8ULP DSPs, Qualcomm SC8280XP, SM8250, SM8450 sareng Texas Instrumen SRC4392
    • Ditambahkeun dukungan pikeun panel LCD Samsung LTL101AL01, B120XAN01.0, R140NWF5 RH, Densitron DMT028VGHMCMI-1A TFT, AUO B133UAN02.1, IVO M133NW4J-R3, Innolux N120NWF1 RH, Densitron DMT116VGHMCMI-01.6A TFT, AUO B116UAN21, IVO M116NW2J-R116, Innolux N1NWF0800-BEA9. , INX NXNUMXBCA- EAXNUMX , INX NXNUMXBCN-EAXNUMX, Multi-Inno Téhnologi MIXNUMXFT-XNUMX.
    • Ditambahkeun dukungan pikeun pangendali AHCI SATA anu dianggo dina Baikal-T1 SoC.
    • Ditambahkeun dukungan pikeun chip Bluetooth MediaTek MT7921, Intel Magnetor (CNVi, Konéktipitas Terpadu), Realtek RTL8852C, RTW8852AE sareng RTL8761BUV (Edimax BT-8500).
    • Supir ath11k pikeun modul nirkabel Qualcomm parantos nambihan dukungan pikeun scanning spéktral dina rentang 160 MHz, ngalaksanakeun NAPI multi-threaded, sareng ningkatkeun dukungan pikeun chip Wi-Fi Qualcomm WCN6750.
    • Ditambahkeun supir pikeun keyboard PinePhone, InterTouch touchpads (ThinkPad P1 G3), X-Box Adaptive Controller, PhoenixRC Flight Controller, VRC-2 Car Controller, DualSense Edge Controller, IBM Operation Panel, XBOX One Elite remotes, tablet XP-PEN Deco Pro S sarta Intuos Pro Leutik (PTH-460).
    • Ditambahkeun supir pikeun Aspeed HACE (Hash sareng Crypto Engine) akselerator kriptografi.
    • Ditambahkeun rojongan pikeun Thunderbolt terpadu / USB4 Intel Meteor Lake controller.
    • Ditambahkeun dukungan pikeun Sony Xperia 1 IV, Samsung Galaxy E5, E7 sareng Grand Max, smartphone Pine64 Pinephone Pro.
    • Ditambahkeun dukungan pikeun ARM SoC sareng papan: AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 sareng RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQ8062, IPQ8065, Kontron 8 BL i.MX8195MM OSM-S, MT4 (Acer Tomat), Radxa ROCK 4C+, NanoPi R1S Enterprise Edition, JetHome JetHub DXNUMXp. Pembalap anu diropéa pikeun SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom sareng NXP.

Dina waktos anu sami, Yayasan Perangkat Lunak Gratis Amérika Latin ngawangun versi kernel gratis 6.1 - Linux-libre 6.1-gnu, diberesihan tina unsur firmware sareng driver anu ngandung komponén non-gratis atanapi bagian kode, ruang lingkupna nyaéta. diwatesan ku produsén. Pelepasan énggal ngabersihkeun supir rtw8852b énggal sareng file DTS pikeun sagala rupa Qualcomm sareng MediaTek SoC kalayan prosesor dumasar kana arsitektur AArch64. Kode beberesih blob diropéa dina drivers sarta subsistem amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI. Ngabersihan supir luntur kartu TV tm6000, cpia2 v4l, sp8870, av7110 parantos dilereskeun.

sumber: opennet.ru

Tambahkeun komentar