Rilis kernel Linux 6.1

Sawise rong wulan pangembangan, Linus Torvalds nampilake rilis kernel Linux 6.1. Antarane owah-owahan sing paling penting: dhukungan kanggo pangembangan driver lan modul ing basa Rust, modernisasi mekanisme kanggo nemtokake kaca memori sing digunakake, manajer memori khusus kanggo program BPF, sistem kanggo diagnosa masalah memori KMSAN, KCFI (Kernelk Control). -Flow Integrity) mekanisme pangayoman, introduksi saka wit struktur Maple.

Versi anyar kalebu 15115 ndandani saka 2139 pangembang, ukuran patch 51 MB, sing kira-kira 2 kali luwih cilik tinimbang ukuran patch saka kernel 6.0 lan 5.19. Owah-owahan kasebut kena pengaruh 13165 file, 716247 baris kode ditambahake, lan 304560 baris dibusak. Udakara 45% saka kabeh owah-owahan sing dienalake ing 6.1 ana gandhengane karo driver piranti, kira-kira 14% owah-owahan ana gandhengane karo nganyari kode khusus kanggo arsitektur hardware, 14% ana gandhengane karo tumpukan jaringan, 3% ana gandhengane karo sistem file, lan 3% ana hubungane karo subsistem kernel internal.

Inovasi utama ing kernel 6.1:

  • Layanan memori lan sistem
    • Nambahake kemampuan kanggo nggunakake Rust minangka basa liya kanggo ngembangake driver lan modul kernel. Alesan utama kanggo ndhukung Rust yaiku supaya luwih gampang nulis driver piranti sing aman lan berkualitas kanthi nyuda kemungkinan kesalahan nalika nggarap memori. Dhukungan Rust dipateni kanthi standar lan ora nyebabake Rust kalebu minangka ketergantungan mbangun kernel sing dibutuhake. Kernel nganti saiki nggunakake versi patch sing diudani minimal, sing wis dikurangi saka 40 dadi 13 ewu baris kode lan mung nyedhiyakake minimal sing dibutuhake, cukup kanggo mbangun modul kernel sing prasaja sing ditulis ing basa Rust. Ing mangsa ngarep, direncanakake nambah fungsionalitas sing ana, mindhah owah-owahan liyane saka cabang Rust-for-Linux. Ing podo karo, proyek dikembangake kanggo nggunakake infrastruktur sing diusulake kanggo ngembangake driver kanggo drive NVMe, protokol jaringan 9p lan GPU Apple M1 ing basa Rust.
    • Kanggo sistem adhedhasar arsitektur AArch64, RISC-V lan LoongArch karo EFI, kemampuan kanggo langsung mbukak gambar kernel sing dikompres wis dileksanakake. Added handler kanggo loading, mbukak lan unloading gambar kernel, disebut langsung saka EFI zboot. Handler kanggo nginstal lan mbusak protokol saka database protokol EFI uga wis ditambahake. Sadurunge, unpacking ditindakake dening bootloader sing kapisah, nanging saiki bisa ditindakake dening panangan ing kernel dhewe - gambar kernel dibentuk minangka aplikasi EFI.
    • Komposisi kalebu bagΓ©an saka patch karo implementasine saka model Manajemen memori multi-tingkat, sing ngijini sampeyan kanggo misahake bank-bank memori karo karakteristik kinerja beda. Contone, kaca sing paling akeh digunakake bisa disimpen ing memori sing paling cepet, dene kaca sing paling jarang digunakake bisa disimpen ing memori sing relatif alon. Kernel 6.1 pirso mekanisme kanggo nemtokake ngendi akeh digunakake kaca dumunung ing memori alon supaya padha bisa munggah menyang memori cepet, lan uga pirso konsep umum saka undakan memori lan kinerja relatif.
    • Iku kalebu mekanisme MGLRU (Multi-Generasi LRU), sing ngganti implementasine LRU lawas (Paling Anyar Digunakake) adhedhasar rong antrian kanthi struktur multi-tataran sing luwih nemtokake kaca memori sing bener digunakake lan bisa di-push metu menyang partisi swap.
    • Ditambahake dhukungan kanggo struktur data "wit maple" sing diusulake dening insinyur Oracle, sing dipanggonke minangka panggantos sing luwih efektif kanggo struktur "wit abang-ireng". Wit maple minangka varian saka B-wit sing ndhukung indeksasi sawetara lan dirancang kanggo nggunakake cache prosesor modern kanthi efisien. Sawetara subsistem manajemen memori wis ditransfer menyang wit maple, sing nduwe pengaruh positif marang kinerja. Ing mangsa ngarep, wit maple bisa digunakake kanggo ngunci jarak.
    • Kemampuan kanggo nggawe "ngrusak" program BPF dirancang khusus kanggo miwiti mati darurat liwat crash_kexec () telpon wis ditambahake menyang subsistem BPF. Program BPF kuwi bisa uga dibutuhake kanggo tujuan debugging kanggo miwiti nggawe crash dump ing wektu tartamtu. Kanggo ngakses operasi ngrusak nalika mbukak program BPF, sampeyan kudu nemtokake flag BPF_F_DESTRUCTIVE, ngaktifake sysctl kernel.destructive_bpf_enabled, lan duwe hak CAP_SYS_BOOT.
    • Kanggo program BPF, bisa enumerate unsur cgroup, uga enumerate sumber daya (file, vma, pangolahan, etc.) saka thread utawa tugas tartamtu. Jinis map anyar wis dipun ginakaken kanggo nggawe buffer ring pangguna.
    • Added telpon khusus kanggo alokasi memori ing program BPF (memori allocator), kang menehi alokasi memori luwih aman ing konteks BPF saka kmalloc standar ().
    • Bagian pisanan saka owah-owahan wis digabungake, nyedhiyakake kemampuan kanggo nggawe driver kanggo piranti input kanthi antarmuka HID (Perangkat Antarmuka Manungsa), sing diimplementasikake ing wangun program BPF.
    • Kernel wis rampung mbusak kode kanggo ndhukung format file eksekusi a.out, sing ora digunakake ing release 5.1 lan wis dipateni kanggo arsitektur utama wiwit versi 5.18 lan 5.19. Format a.out wis suwe ora digunakake ing sistem Linux, lan nggawe file a.out ora didhukung dening piranti modern ing konfigurasi Linux standar. Loader kanggo file a.out bisa dileksanakake kabeh ing ruang panganggo.
    • Kanggo sistem adhedhasar arsitektur pesawat instruksi LoongArch sing digunakake ing prosesor Loongson 3 5000 lan ngleksanakake RISC ISA anyar, padha karo MIPS lan RISC-V, dhukungan kanggo acara pangukuran kinerja (acara perf), kompilasi kexec, kdump lan BPF JIT dileksanakake. .
    • Antarmuka I/O asinkron io_uring nawakake mode anyar, IORING_SETUP_DEFER_TASKRUN, sing ngidini karya sing gegandhengan karo buffer dering ditundha sementara nganti panjaluk aplikasi digawe, sing bisa digunakake kanggo kerja batch lan ngindhari masalah latensi amarga preemption. salah wektu.
    • Proses ing ruang panganggo diwenehi kemampuan kanggo miwiti konversi sawetara kaca memori normal menyang sakumpulan kaca memori gedhe (Transparent Huge-Pages).
    • Added implementasine saka / dev / piranti userfaultfd, sing ngidini akses menyang fungsi saka userfaultfd () telpon sistem nggunakake hak akses ing FS. Fungsi userfaultfd ngidini sampeyan nggawe panangan kanggo ngakses kaca memori sing ora diparengake (kaca kesalahan) ing ruang pangguna.
    • Syarat kanggo versi utilitas GNU Make wis ditambah - paling ora versi 3.82 saiki dibutuhake kanggo mbangun kernel.
  • Subsistem disk, I/O lan sistem file
    • Optimisasi kinerja sing signifikan wis digawe kanggo sistem file Btrfs; antarane liyane, kinerja panggilan FIEMAP ioctl wis tambah kanthi urutan gedhene. Dhukungan ditambahake kanggo nulis buffer bedo kanggo aplikasi nggunakake io_uring. Nambahake dhukungan kanggo file sing dilindhungi fs-verity menyang operasi "kirim".
    • Sistem file ext4 nambahake optimasi kinerja sing ana gandhengane karo pangopΓ¨nan jurnal lan operasi mung diwaca.
    • Sistem file EROFS (Enhanced Read-Only File System), dirancang kanggo digunakake ing partisi sing bisa diakses ing mode mung maca, ngetrapake kemampuan kanggo nuduhake data sing diduplikasi ing sistem file sing beda.
    • Panggilan sistem statx () wis ditambahake kanggo nampilake informasi babagan apa I / O langsung bisa ditrapake menyang file.
    • Dhukungan kanggo nggawe file sementara kanthi bendera O_TMFILE wis ditambahake menyang subsistem FUSE (Filesystems in User Space).
  • Virtualisasi lan Keamanan
    • Implementasi mekanisme proteksi CFI (Control Flow Integrity) wis diganti, nambahake mriksa sadurunge saben panggilan ora langsung saka fungsi kanggo ndeteksi sawetara wujud prilaku sing ora ditemtokake sing bisa nyebabake nglanggar urutan eksekusi normal (aliran kontrol) minangka asil saka nggunakake exploitasi sing ngganti penunjuk menyang fungsi sing disimpen ing memori. Implementasi standar CFI saka project LLVM wis diganti dening pilihan uga adhedhasar nggunakake Clang, nanging khusus dicocogake kanggo nglindhungi subsistem tingkat kurang lan kernel sistem operasi. Ing LLVM, implementasi anyar bakal ditawakake ing release Clang 16 lan bakal diaktifake kanthi pilihan "-fsanitize = kcfi". Bentenipun tombol karo implementasine anyar iku ora disambungake kanggo link-wektu optimizations (LTO) lan ora asil ing penunjuk fungsi diganti dening pranala ing tabel mlumpat.
    • Kanggo modul LSM (Linux Security Module), sampeyan bisa nggawe pawang sing nyegat operasi kanggo nggawe spasi jeneng.
    • Piranti kasedhiya kanggo verifikasi PKCS # 7 teken digital ing program BPF.
    • Kemampuan kanggo mbukak ing mode non-blocking (O_NONBLOCK), sing ora sengaja dibusak ing kernel 5.6, wis bali menyang /dev/random.
    • Ing sistem kanthi arsitektur x86, bebaya wis ditambahake yen pemetaan kaca memori dening subsistem kernel sing ngidini eksekusi lan nulis kanthi bebarengan. Ing mangsa ngarep, kemungkinan nglarang pemetaan memori kasebut kanthi lengkap.
    • Mekanisme debugging KMSAN (Kernel Memory Sanitizer) ditambahake kanggo ndeteksi panggunaan memori sing ora dikawruhi ing kernel, uga bocor memori sing ora dingerteni ing antarane ruang pangguna lan piranti.
    • Dandan wis digawe kanggo generator nomer pseudo-acak crypto-aman CRNG sing digunakake ing panggilan getrandom. Owah-owahan padha disiapake dening Jason A. Donenfeld, penulis VPN WireGuard, lan ngarahke kanggo nambah keamanan extraction integer pseudo-acak.
  • Subsistem jaringan
    • Tumpukan TCP nyedhiyakake kemampuan (dipateni minangka standar) kanggo nggunakake tabel hash soket kanthi kapisah kanggo saben namespace, sing nambah kinerja ing sistem kanthi akeh spasi jeneng.
    • Kode dibusak kanggo ndhukung protokol DECnet warisan. Rintisan API spasi pangguna ditinggalake kanggo ngidini aplikasi sing nggunakake DECnet bisa disusun, nanging aplikasi kasebut ora bisa nyambung menyang jaringan.
    • Protokol netlink didokumentasikan.
  • Peralatan
    • Driver amdgpu wis nambahake dhukungan kanggo DSC (Display Stream Compression) nerusake kanggo kompresi data lossless nalika ijol-ijolan informasi karo layar sing ndhukung resolusi dhuwur banget. Pakaryan terus nyedhiyakake dhukungan kanggo platform AMD RDNA3 (RX 7000) lan CDNA (Instinct). Added support kanggo DCN 3.2, SMU 13.x, NBIO 7.7, GC 11.x, PSP 13.x, SDMA 6.x lan GMC 11.x komponen IP. Driver amdkfd (kanggo GPU AMD diskret kayata Polaris) nyedhiyakake dhukungan kanggo GFX 11.0.3.
    • Pembalap i915 (Intel) kalebu dhukungan kanggo Meteor Lake GPU. Meteor Lake lan GPU anyar ndhukung antarmuka DP 2.0 (DisplayPort). Added pengenal kanggo kertu video adhedhasar microarchitecture Alder Lake S.
    • Dhukungan tambahan kanggo subsistem audio sing ditindakake ing prosesor Apple Silicon, Intel SkyLake lan Intel KabyLake. Driver audio CS35L41 HDA ndhukung mode turu. Ditambahake dhukungan ASoC (ALSA System on Chip) kanggo chip audio terpadu Apple Silicon, AMD Rembrant DSPs, AMD Pink Sardine ACP 6.2, Everest ES8326, Intel Sky Lake lan Kaby Lake, Mediatek MT8186, NXP i.MX8ULP DSPs, Qualcomm SC8280XP, SM8250, SM8450 lan Texas Instruments SRC4392
    • Dhukungan tambahan kanggo panel LCD Samsung LTL101AL01, B120XAN01.0, R140NWF5 RH, Densitron DMT028VGHMCMI-1A TFT, AUO B133UAN02.1, IVO M133NW4J-R3, Innolux N120NWF1 RH, BOAKO116, BOAKO01.6. , INX N116BCA- EA21 , INX N116BCN-EA2, Teknologi Multi-Inno MI116FT-1.
    • Dhukungan tambahan kanggo pengontrol AHCI SATA sing digunakake ing Baikal-T1 SoC.
    • Dhukungan tambahan kanggo chip Bluetooth MediaTek MT7921, Intel Magnetor (CNVi, Konektivitas Terpadu), Realtek RTL8852C, RTW8852AE lan RTL8761BUV (Edimax BT-8500).
    • Pembalap ath11k kanggo modul nirkabel Qualcomm wis nambahake dhukungan kanggo pemindaian spektral ing kisaran 160 MHz, ngetrapake NAPI multi-threaded, lan dhukungan sing luwih apik kanggo chip Wi-Fi Qualcomm WCN6750.
    • Nambahake driver kanggo keyboard PinePhone, touchpad InterTouch (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 lan Intuos Pro Cilik (PTH-460).
    • Added driver kanggo Aspeed HACE (Hash and Crypto Engine) akselerator cryptographic.
    • Dhukungan ditambahake kanggo pengontrol Thunderbolt / USB4 Intel Meteor Lake.
    • Dhukungan tambahan kanggo Sony Xperia 1 IV, Samsung Galaxy E5, E7 lan Grand Max, smartphone Pine64 Pinephone Pro.
    • Dhukungan tambahan kanggo ARM SoC lan papan: AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 lan RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQ8062, IPQ8065, IPQ8 BL i.MX8195MM OSM-S, MT4 (Acer Tomat), Radxa ROCK 4C+, NanoPi R1S Enterprise Edition, JetHome JetHub DXNUMXp. Pembalap sing dianyari kanggo SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom lan NXP.

Ing wektu sing padha, Latin American Free Software Foundation mbentuk versi kernel gratis 6.1 - Linux-libre 6.1-gnu, ngresiki unsur perangkat kukuh lan driver sing ngemot komponen utawa bagean kode sing ora gratis, ruang lingkup winates. dening pabrikan. Rilis anyar ngresiki driver rtw8852b anyar lan file DTS kanggo macem-macem Qualcomm lan MediaTek SoC kanthi prosesor adhedhasar arsitektur AArch64. Kode reresik blob sing dianyari ing driver lan subsistem amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI. Reresik kertu TV driver tm6000 sing lawas, cpia2 v4l, sp8870, av7110 wis didandani.

Source: opennet.ru

Add a comment