Kaluaran kernel Linux 6.2

Saatos dua bulan pangwangunan, Linus Torvalds nampilkeun sékrési kernel Linux 6.2. Diantara parobihan anu paling penting: nampi kode dina lisénsi Copyleft-Next diidinan, palaksanaan RAID5/6 di Btrfs ningkat, integrasi dukungan pikeun basa Rust diteruskeun, overhead panyalindungan ngalawan serangan Retbleed dikirangan, kamampuhan pikeun ngatur konsumsi memori salila writeback ditambahkeun, mékanisme ditambahkeun pikeun TCP balancing PLB (Protective Load Balancing), mékanisme panyalindungan aliran paréntah hibrid (FineIBT) geus ditambahkeun, BPF ayeuna boga kamampuhan pikeun nangtukeun objék jeung struktur data sorangan. , Utiliti rv (Verifikasi Runtime) kalebet, konsumsi kakuatan dina palaksanaan konci RCU parantos dikirangan.

Versi anyar kalebet 16843 perbaikan tina 2178 pamekar, ukuran patch 62 MB (parobahan anu kapangaruhan 14108 file, 730195 garis kode ditambah, 409485 garis dihapus). Sakitar 42% sadaya parobihan anu diwanohkeun dina 6.2 aya hubunganana sareng supir alat, sakitar 16% parobahan aya hubunganana sareng ngamutahirkeun kode khusus pikeun arsitéktur hardware, 12% aya hubunganana sareng tumpukan jaringan, 4% aya hubunganana sareng sistem file, sareng 3% aya hubunganana sareng subsistem kernel internal.

Inovasi konci dina kernel 6.2:

  • Mémori sareng jasa sistem
    • Diidinan ngalebetkeun kana kode kernel sareng parobihan anu disayogikeun dina lisénsi Copyleft-Next 0.3.1. Lisensi Copyleft-Next diciptakeun ku salah sahiji panulis GPLv3 sareng sapinuhna cocog sareng lisénsi GPLv2, sakumaha dikonfirmasi ku pengacara ti SUSE sareng Red Hat. Dibandingkeun sareng GPLv2, lisénsi Copyleft-Next langkung kompak sareng langkung gampang kahartos (bagian bubuka sareng nyebatkeun kompromi kuno parantos dihapus), netepkeun pigura waktos sareng prosedur pikeun ngaleungitkeun palanggaran, sareng otomatis ngahapus syarat copyleft pikeun parangkat lunak anu luntur. geus leuwih ti 15 taun.

      Copyleft-Next ogé ngandung klausa hibah téhnologi proprietary, nu, kawas GPLv2, ngajadikeun lisénsi ieu cocog jeung lisénsi Apache 2.0. Pikeun mastikeun kasaluyuan lengkep sareng GPLv2, Copyleft-Next sacara eksplisit nyatakeun yén karya turunan tiasa disayogikeun dina lisénsi GPL salian ti lisénsi Copyleft-Next asli.

    • Struktur ngawengku utilitas "rv", nu nyadiakeun antarbeungeut pikeun interaksi ti spasi pamaké kalawan pawang tina RV (Runtime Verifikasi) subsistem, dirancang pikeun pariksa operasi bener dina sistem kacida dipercaya nu ngajamin henteuna gagal. Verifikasi dipigawé dina runtime ku ngagantelkeun pawang pikeun ngalacak titik nu mariksa kamajuan sabenerna palaksanaan ngalawan model deterministik rujukan predetermined tina mesin nu ngahartikeun kabiasaan ekspektasi sistem.
    • Alat zRAM, anu ngamungkinkeun partisi swap disimpen dina mémori dina bentuk anu dikomprés (alat blok didamel dina mémori anu swap dijalankeun kalayan komprési), ngalaksanakeun kamampuan pikeun ngepak deui halaman nganggo algoritma alternatif pikeun ngahontal tingkat anu langkung luhur. tina komprési. Gagasan utama nyaéta pikeun nyayogikeun pilihan antara sababaraha algoritma (lzo, lzo-rle, lz4, lz4hc, zstd), nawiskeun kompromi sorangan antara laju komprési/dekomprési sareng tingkat komprési, atanapi optimal dina kaayaan khusus (contona, pikeun komprési anu ageung. halaman mémori).
    • Ditambahkeun "iommufd" API pikeun ngatur sistem manajemen memori I / O - IOMMU (I / O Mémori-Manajemén Unit) ti spasi pamaké. API anyar ngamungkinkeun pikeun ngatur I / O tabel kaca memori ngagunakeun descriptors file.
    • BPF nyadiakeun kamampuhan pikeun nyieun jenis, nangtukeun objék sorangan, ngawangun hirarki sorangan objék, sarta flexibly nyieun struktur data sorangan, kayaning daptar numbu. Pikeun program BPF asup kana mode sare (BPF_F_SLEEPABLE), rojongan pikeun bpf_rcu_read_{,un}lock() konci geus ditambahkeun. Dilaksanakeun rojongan pikeun nyimpen task_struct objék. Ditambahkeun tipe peta BPF_MAP_TYPE_CGRP_STORAGE, nyadiakeun gudang lokal pikeun cgroups.
    • Pikeun mékanisme blocking RCU (Baca-salinan-update), mékanisme pilihan pikeun nelepon balik "puguh" dilaksanakeun, dimana sababaraha sauran callback diolah sakaligus nganggo timer dina modeu bets. Aplikasi tina optimasi anu diusulkeun ngamungkinkeun urang ngirangan pamakean listrik dina alat Android sareng ChromeOS ku 5-10% ku cara nunda pamundut RCU salami waktos dianggurkeun atanapi beban rendah dina sistem.
    • Ditambahkeun sysctl split_lock_mitigate pikeun ngadalikeun kumaha sistem réaksi nalika ngadeteksi konci pamisah anu lumangsung nalika ngaksés data anu teu kabeungkeut dina mémori kusabab data nyebrang dua garis cache CPU nalika ngalaksanakeun paréntah atom. Sumbatan sapertos kitu nyababkeun panurunan anu signifikan dina pagelaran. Nyetel split_lock_mitigate ka 0 ngan ngaluarkeun peringatan yén aya masalah, bari netepkeun split_lock_mitigate ka 1 ogé ngabalukarkeun prosés anu ngabalukarkeun konci kalem handap pikeun ngawétkeun kinerja pikeun sesa sistem.
    • A palaksanaan anyar qspinlock geus diajukeun pikeun arsitéktur PowerPC, nu mendemonstrasikan kinerja luhur sarta solves sababaraha masalah ngonci anu timbul dina kasus luar biasa.
    • Kode penanganan interupsi MSI (Message-Signaled Interrupts) parantos didamel deui, ngaleungitkeun akumulasi masalah arsitéktur sareng nambihan dukungan pikeun ngabeungkeut panangan individu ka alat anu béda.
    • Pikeun sistem dumasar kana LoongArch instruksi susunan arsitéktur dipaké dina Loongson 3 5000 prosesor sarta ngalaksanakeun RISC Isa anyar, sarupa jeung MIPS na RISC-V, rojongan pikeun ftrace, panyalindungan tumpukan, sare jeung mode sayaga dilaksanakeun.
    • Kamampuhan pikeun napelkeun ngaran ka wewengkon memori anonim dibagikeun geus disadiakeun (saméméhna ngaran ngan bisa ditugaskeun ka memori anonim swasta ditugaskeun ka prosés husus).
    • Ditambahkeun parameter garis paréntah kernel anyar "trace_trigger", dirancang pikeun Aktipkeun hiji ngabasmi pemicu dipaké pikeun meungkeut paréntah kondisional disebut nalika cek kontrol dipicu (Contona, trace_trigger = "sched_switch.stacktrace lamun prev_state == 2″).
    • Sarat pikeun versi paket binutils geus ngaronjat. Ngawangun kernel ayeuna merlukeun sahenteuna binutils 2.25.
    • Lamun nelepon exec (), kamampuhan pikeun nempatkeun hiji prosés dina spasi ngaran waktu, nu waktuna béda ti sistem waktos, geus ditambahkeun.
    • Kami parantos ngamimitian mindahkeun fungsionalitas tambahan tina cabang Rust-for-Linux anu aya hubunganana sareng panggunaan basa Rust salaku basa kadua pikeun ngembangkeun supir sareng modul kernel. Pangrojong Rust ditumpurkeun sacara standar sareng henteu nyababkeun Rust kalebet salaku gumantungna ngawangun kernel anu diperyogikeun. Pungsi dasar ditawarkeun dina release panungtungan dimekarkeun pikeun ngarojong kode-tingkat low, kayaning tipe Vec jeung macros pr_debug!(), pr_cont!() jeung pr_alert!(), kitu ogé makro prosedural "#[vtable". ]", nu simplifies gawé bareng tabel pointer on fungsi. Penambahan beungkeutan Rust tingkat luhur dina subsistem kernel, anu bakal ngamungkinkeun nyiptakeun supir anu lengkep dina Rust, diperkirakeun dina rilis anu bakal datang.
    • Jinis "char" anu dianggo dina kernel ayeuna dinyatakeun teu ditandatanganan sacara standar pikeun sadaya arsitéktur.
    • Mékanisme alokasi mémori slab - SLOB (slab allocator), anu dirarancang pikeun sistem anu gaduh mémori anu sakedik, parantos dinyatakeun luntur. Gantina SLOB, dina kaayaan normal disarankeun ngagunakeun SLUB atanapi SLAB. Pikeun sistem kalawan jumlah leutik memori, disarankeun pikeun make SLUB dina modeu SLUB_TINY.
  • Subsistem Disk, I/O sareng Sistem File
    • Perbaikan parantos dilakukeun pikeun Btrfs anu ditujukeun pikeun ngalereskeun masalah "liang nyerat" dina palaksanaan RAID 5/6 (usaha pikeun mulangkeun RAID upami kacilakaan lumangsung nalika nyerat sareng mustahil ngartos blok mana anu mana alat RAID ditulis leres. nu bisa ngakibatkeun karuksakan blok, pakait jeung blok underwritten). Salaku tambahan, SSD ayeuna sacara otomatis ngaktifkeun operasi miceun asinkron sacara standar sawaktos-waktos mungkin, ngamungkinkeun pikeun ningkatkeun kamampuan kusabab pengelompokan anu efisien tina operasi miceun kana antrian sareng ngolah antrian ku prosesor latar tukang. Ningkatkeun kinerja operasi ngirim sareng milarian, ogé FIEMAP ioctl.
    • Kamampuhan pikeun ngatur tulisan nunggak (writeback, nyimpen latar tukang data robah) pikeun alat block geus dimekarkeun. Dina sababaraha kaayaan, sapertos nalika nganggo alat blok jaringan atanapi drive USB, nyerat anu puguh tiasa nyababkeun konsumsi RAM anu ageung. Dina raraga ngadalikeun paripolah puguh nulis sarta ngajaga ukuran cache kaca dina wates nu tangtu, parameter anyar strict_limit, min_bytes, max_bytes, min_ratio_fine na max_ratio_fine geus diwanohkeun dina sysfs (/sys/class/bdi/).
    • Sistem file F2FS ngalaksanakeun operasi ioctl ngagantian atom, anu ngamungkinkeun anjeun nyerat data kana file dina hiji operasi atom tunggal. F2FS ogé nambahkeun blok extent cache pikeun mantuan ngaidentipikasi aktip dipake data atawa data nu geus lila teu diakses.
    • Dina ext4 FS ngan ukur koreksi kasalahan anu kacatet.
    • Sistem file ntfs3 nawiskeun sababaraha pilihan mount anyar: "nocase" pikeun ngontrol sensitipitas kasus dina nami file sareng diréktori; windows_name pikeun ngalarang nyiptakeun nami file anu ngandung karakter anu henteu valid pikeun Windows; hide_dot_files pikeun ngadalikeun tugas tina labél file disumputkeun pikeun file dimimitian ku titik.
    • Sistim file Squashfs implements a "threads =" pilihan Gunung, nu ngidinan Anjeun pikeun nangtukeun jumlah threads pikeun parallelize operasi decompression. Squashfs ogé ngawanohkeun kamampuhan pikeun peta ID pamaké tina sistem file dipasang, dipaké pikeun cocog file pamaké husus dina partisi asing dipasang kalawan pamaké séjén dina sistem ayeuna.
    • Palaksanaan daptar kontrol aksés POSIX (POSIX ACLs) geus reworked. Palaksanaan anyar ngaleungitkeun masalah arsitéktur, nyederhanakeun pangropéa basis kode, sareng ngenalkeun jinis data anu langkung aman.
    • Subsistem fscrypt, anu dianggo pikeun énkripsi transparan file sareng diréktori, parantos nambihan dukungan pikeun algoritma enkripsi SM4 (standar Cina GB / T 32907-2016).
    • Kamampuhan pikeun ngawangun kernel tanpa dukungan NFSv2 parantos disayogikeun (di hareup aranjeunna ngarencanakeun pikeun ngeureunkeun ngadukung NFSv2).
    • Organisasi mariksa hak aksés ka alat NVMe parantos dirobih. Nyadiakeun kamampuhan pikeun maca jeung nulis ka alat NVMe lamun prosés nulis boga aksés ka file dedicated alat (saméméhna prosés kudu boga idin CAP_SYS_ADMIN).
    • Dipiceun supir pakét CD/DVD, nu ieu deprecated dina 2016.
  • Virtualisasi sareng Kaamanan
    • Métode panyalindungan anyar ngalawan kerentanan Retbleed parantos dilaksanakeun dina Intel sareng AMD CPUs, ngagunakeun tracking jero telepon, anu henteu ngalambatkeun damel saloba panyalindungan anu ayeuna ayeuna ngalawan Retbleed. Pikeun ngaktipkeun mode anyar, parameter garis paréntah kernel "retbleed = barang" geus diajukeun.
    • Ditambahkeun mékanisme panyalindungan aliran instruksi FineIBT hibrid, ngagabungkeun pamakéan hardware Intel IBT (Cabang Tracking teu langsung) parentah jeung kCFI panyalindungan software (kernel Control Aliran Integritas) pikeun meungpeuk palanggaran urutan palaksanaan normal (aliran kontrol) salaku hasil tina pamakéan tina exploits nu ngaropéa pointer disimpen dina mémori on fungsi. FineIBT ngamungkinkeun palaksanaan ku luncat teu langsung ngan dina kasus luncat kana instruksi ENDBR, nu disimpen dina pisan awal fungsi. Salaku tambahan, ku analogi sareng mékanisme kCFI, hashes teras dipariksa pikeun ngajamin immutability pointer.
    • Nambahkeun larangan pikeun meungpeuk serangan anu ngamanipulasi generasi "aduh" nagara, saatos éta tugas-tugas masalah réngsé sareng kaayaan dibalikeun tanpa ngeureunkeun sistem. Kalayan jumlah telepon anu ageung pisan kana kaayaan "oops", lumangsung overflow counter rujukan (refcount), anu ngamungkinkeun eksploitasi kerentanan anu disababkeun ku NULL pointer dereferences. Pikeun ngajaga ngalawan serangan sapertos kitu, wates parantos ditambahkeun kana kernel pikeun jumlah maksimum pemicu "oops", saatos ngaleuwihan kernel anu bakal ngamimitian transisi ka kaayaan "panik" dituturkeun ku reboot, anu henteu bakal ngijinkeun ngahontal éta. Jumlah iterations diperlukeun pikeun ngabahekeun refcount. Sacara standar, watesna disetel ka 10 rébu "oops", tapi upami hoyong, éta tiasa dirobih ngalangkungan parameter oops_limit.
    • parameter konfigurasi ditambahkeun LEGACY_TIOCSTI na sysctl legacy_tiocsti pikeun nganonaktipkeun kamampuhan pikeun nempatkeun data kana terminal ngagunakeun ioctl TIOCSTI, saprak fungsionalitas ieu bisa dipaké pikeun ngagantikeun karakter sawenang kana panyangga input terminal sarta simulate input pamaké.
    • A tipe anyar struktur internal, encoded_page, diusulkeun, nu bit handap pointer dipaké pikeun nyimpen informasi tambahan dipaké pikeun ngajaga ngalawan dereference kahaja tina pointer (lamun dereference sabenerna diperlukeun, bit tambahan ieu kudu diberesihan heula) .
    • Dina platform ARM64, dina tahap boot, kasebut nyaéta dimungkinkeun pikeun ngaktipkeun atawa nganonaktipkeun palaksanaan software mékanisme Shadow Stack, nu dipaké pikeun ngajaga ngalawan overwriting alamat balik ti fungsi dina acara panyangga mudal dina tumpukan ( hakekat panyalindungan nyaéta pikeun nyimpen alamat balik dina tumpukan "kalangkang" misah sanggeus kontrol ditransferkeun ka fungsi jeung retrieving alamat dibikeun saméméh exiting fungsi). Rojongan pikeun hardware jeung software palaksanaan Shadow Stack dina hiji assembly kernel ngidinan Anjeun pikeun ngagunakeun hiji kernel dina sistem ARM béda, paduli rojongan maranéhna pikeun parentah pikeun auténtikasi pointer. Ngalebetkeun palaksanaan parangkat lunak dilaksanakeun ngaliwatan substitusi paréntah anu diperyogikeun dina kode nalika ngamuat.
    • Ditambahkeun dukungan pikeun ngagunakeun mékanisme béwara kaluar asynchronous dina prosesor Intel, anu ngamungkinkeun pikeun ngadeteksi serangan léngkah tunggal dina kode anu dilaksanakeun dina enclaves SGX.
    • Sakumpulan operasi diusulkeun anu ngamungkinkeun hypervisor pikeun ngadukung pamundut ti sistem tamu Intel TDX (Ekstensi Domain Dipercanten).
    • Setélan ngawangun kernel RANDOM_TRUST_BOOTLOADER na RANDOM_TRUST_CPU geus dihapus, dina ni'mat pilihan garis paréntah pakait random.trust_bootloader na random.trust_cpu.
    • Mékanisme Landlock, anu ngamungkinkeun anjeun ngawatesan interaksi sakelompok prosés sareng lingkungan éksternal, parantos nambihan dukungan pikeun bandéra LANDLOCK_ACCESS_FS_TRUNCATE, anu ngamungkinkeun anjeun ngadalikeun palaksanaan operasi truncation file.
  • Subsistem jaringan
    • Pikeun IPv6, rojongan pikeun PLB (Protective Load Balancing) geus ditambahkeun, mékanisme load balancing antara Tumbu jaringan aimed dina ngurangan titik overload on switch puseur data. Ku cara ngarobah Label Aliran IPv6, PLB sacara acak ngarobah jalur pakét pikeun ngimbangan beban dina port switch. Pikeun ngurangan susunan ulang pakét, operasi ieu dipigawé sanggeus période dianggurkeun sabisana. Pamakéan PLB di puseur data Google geus ngurangan saimbangna beban on switch port ku rata-rata 60%, ngurangan pakét leungitna ku 33%, sarta ngurangan latency ku 20%.
    • Ditambahkeun supir kanggo alat MediaTek anu ngadukung Wi-Fi 7 (802.11be).
    • Ditambahkeun dukungan pikeun tautan 800-gigabit.
    • Ditambahkeun kamampuhan pikeun ngaganti ngaran interfaces jaringan dina laleur nu, tanpa stopping karya.
    • Nyebutkeun alamat IP anu pakét sumping parantos ditambah kana pesen log ngeunaan banjir SYN.
    • Pikeun UDP, kamampuan ngagunakeun tabel hash anu misah pikeun ruang ngaran jaringan anu béda parantos dilaksanakeun.
    • Pikeun sasak jaringan, dukungan pikeun metode auténtikasi MAB (MAC Authentication Bypass) parantos dilaksanakeun.
    • Pikeun protokol CAN (CAN_RAW), rojongan pikeun mode stop kontak SO_MARK geus dilaksanakeun pikeun ngalampirkeun saringan lalulintas basis fwmark.
    • ipset implements parameter bitmask anyar nu ngidinan Anjeun pikeun nyetel mask dumasar kana bit sawenang dina alamat IP (Contona, "ipset nyieun set1 hash: ip bitmask 255.128.255.0").
    • Ditambahkeun dukungan pikeun ngolah header internal di jero pakét anu disaring ka nf_tables.
  • pakakas
    • Subsistem "accel" parantos ditambihan ku palaksanaan kerangka pikeun akselerator komputasi, anu tiasa disayogikeun dina bentuk ASIC individu atanapi dina bentuk blok IP di jero SoC sareng GPU. Akselerator ieu utamina ditujukeun pikeun ngagancangkeun solusi masalah pembelajaran mesin.
    • Supir amdgpu kalebet dukungan pikeun komponén GC, PSP, SMU sareng NBIO IP. Pikeun sistem ARM64, dukungan pikeun DCN (Display Core Next) dilaksanakeun. Palaksanaan kaluaran layar ditangtayungan geus dipindahkeun tina ngagunakeun DCN10 mun DCN21 tur ayeuna bisa dipaké nalika nyambungkeun sababaraha layar.
    • Supir i915 (Intel) parantos nyaimbangkeun dukungan pikeun kartu vidéo Intel Arc (DG2 / Alchemist) diskrit.
    • Supir Nouveau ngadukung GPU NVIDIA GA102 (RTX 30) dumasar kana arsitektur Ampere. Pikeun kartu nva3 (GT215), kamampuan pikeun ngontrol lampu tukang parantos ditambahkeun.
    • Ditambahkeun dukungan pikeun adaptor nirkabel dumasar kana Realtek 8852BE, Realtek 8821CU, 8822BU, 8822CU, 8723DU (USB) sareng chip MediaTek MT7996, Broadcom BCM4377/4378/4387 antar muka Bluetooth, kitu ogé Motorcomm Ethernet yt GE8521.
    • Ditambahkeun ASoC (Sistem ALSA on Chip) rojongan pikeun diwangun-di chip sora HP Stream 8, Advantech MICA-071, Dell SKU 0C11, Intel ALC5682I-VD, Xiaomi Redmi Book Pro 14 2022, i.MX93, Armada 38x, RK3588. Ditambahkeun dukungan pikeun antarmuka audio Focusrite Saffire Pro 40. Ditambahkeun codec audio Realtek RT1318.
    • Ditambahkeun dukungan pikeun smartphone sareng tablet Sony (Xperia 10 IV, 5 IV, X sareng X kompak, OnePlus One, 3, 3T sareng Nord N100, Xiaomi Poco F1 sareng Mi6, Huawei Watch, Google Pixel 3a, Samsung Galaxy Tab 4 10.1.
    • Ditambahkeun dukungan pikeun ARM SoC sareng Apple T6000 (M1 Pro), T6001 (M1 Max), T6002 (M1 Ultra), Qualcomm MSM8996 Pro (Snapdragon 821), SM6115 (Snapdragon 662), SM4250 (Snapdragon 460), SM6375 (Snapdragon 695), SM670 (Snapdragon) dewan , SDM670 (Snapdragon 8976), MSM652 (Snapdragon 8956), MSM650 (Snapdragon 3326), RK351 Odroid-Go / rg310, Zyxel NSA8S, InnoComm i.MXXNUMXMM, Odroid Go Ultra.

Dina waktos anu sami, Yayasan Perangkat Lunak Gratis Amérika Latin ngawangun versi kernel gratis 6.2 - Linux-libre 6.2-gnu, diberesihan tina unsur firmware sareng supir anu ngandung komponén non-gratis atanapi bagian kode, ruang lingkupna nyaéta. diwatesan ku produsén. Pelepasan énggal ngabersihkeun gumpalan énggal dina supir nouveau. Blob loading ditumpurkeun dina mt7622, ​​mt7996 wifi jeung bcm4377 drivers bluetooth. Ngabersihan ngaran blob dina file dts pikeun arsitektur Aarch64. Kode beberesih blob diropéa dina sagala rupa drivers sareng subsistem. Dieureunkeun meresihan supir s5k4ecgx, sabab ieu dikaluarkeun tina kernel.

sumber: opennet.ru

Tambahkeun komentar