Kaluaran kernel Linux 5.19

Saatos dua bulan pangwangunan, Linus Torvalds nampilkeun sékrési kernel Linux 5.19. Diantara parobahan anu paling penting: dukungan pikeun arsitektur prosesor LoongArch, integrasi patch "BIG TCP", mode on-demand dina fscache, panyabutan kode pikeun ngadukung format a.out, kamampuan ngagunakeun ZSTD pikeun komprési firmware, antarmuka pikeun ngatur pangusir mémori tina rohangan pamaké , ngaronjatkeun reliabiliti jeung kinerja generator angka pseudo-acak, rojongan pikeun Intel IFS (Dina-Lapang Scan), AMD SEV-SNP (Aman Nested Paging), Intel TDX (Dipercanten Domain Extensions) jeung ARM SME (Scalable Matrix Extension) ekstensi.

Dina pengumuman éta, Linus ngomong yén paling dipikaresep release kernel salajengna bakal dinomeran 6.0, saprak cabang 5.x geus akumulasi cukup release pikeun ngarobah angka kahiji dina nomer versi. Parobihan panomeran dilaksanakeun pikeun alesan éstétis sareng mangrupikeun léngkah formal anu ngaleungitkeun ngarareunah kusabab akumulasi sajumlah ageung masalah dina séri.

Linus ogé nyebatkeun yén anjeunna nganggo laptop Apple dumasar kana arsitéktur ARM64 (Apple Silicon) sareng lingkungan Linux dumasar kana distribusi Asahi Linux pikeun nyiptakeun pelepasan. Éta sanés tempat kerja utama Linus, tapi anjeunna nganggo platform éta pikeun nguji kasesuaianna pikeun padamelan kernel sareng pikeun mastikeun yén anjeunna tiasa ngahasilkeun sékrési kernel nalika iinditan nganggo laptop anu hampang. Saméméhna, sababaraha taun ka pengker, Linus ngalaman pangalaman ngagunakeun parabot Apple pikeun ngembangkeun - anjeunna pernah ngagunakeun PC dumasar kana CPU ppc970 jeung laptop Macbook Air.

Versi anyar kalebet 16401 perbaikan tina 2190 pamekar (dina sékrési terakhir aya 16206 perbaikan tina 2127 pamekar), ukuran patch nyaéta 90 MB (parobahan mangaruhan 13847 file, 1149456 baris kode anu ditambahkeun, 349177 baris dihapus). Sakitar 39% tina sadaya parobihan anu diwanohkeun dina 5.19 aya hubunganana sareng supir alat, sakitar 21% parobihan aya hubunganana sareng pembaruan kode khusus pikeun arsitéktur hardware, 11% aya hubunganana sareng tumpukan jejaring, 4% aya hubunganana sareng sistem file, sareng 3% aya hubunganana sareng subsistem kernel internal.

Inovasi konci dina kernel 5.19:

  • Subsistem Disk, I/O sareng Sistem File
    • Sistem file EROFS (Enhanced Read-Only File System), dimaksudkeun pikeun dianggo dina partisi baca wungkul, parantos dirobih janten subsistem fscache, anu nyayogikeun cache data. Parobihan sacara signifikan ningkatkeun kinerja sistem dimana sajumlah ageung wadahna diluncurkeun tina gambar dumasar kana EROFS.
    • Modeu maca dina paménta geus ditambahkeun kana subsistem fscache, nu dipaké pikeun ngaoptimalkeun EROFS. Modeu anyar ngamungkinkeun anjeun pikeun ngatur maca cache tina gambar FS anu aya dina sistem lokal. Kontras jeung mode operasi mimitina sadia, nu museurkeun kana cache dina sistem file lokal data ditransfer ngaliwatan sistem file jaringan, mode "on-demand" delegates fungsi retrieving data jeung nulis ka cache ka misah. prosés latar tukang jalan dina spasi pamaké.
    • XFS nyadiakeun kamampuhan pikeun nyimpen milyaran atribut nambahan dina i-node. Jumlah maksimum extents pikeun hiji file geus ngaronjat tina 4 milyar mun 247. A mode geus dilaksanakeun pikeun atom ngamutahirkeun sababaraha atribut file nambahan sakaligus.
    • Sistem file Btrfs parantos ngaoptimalkeun padamelan sareng konci, anu ngamungkinkeun paningkatan kirang langkung 7% dina pagelaran nalika nyerat langsung dina modeu ngantosan. Kinerja operasi dina modeu NOCOW (tanpa copy-on-write) ningkat sakitar 3%. Beban dina cache halaman nalika ngajalankeun paréntah "ngirim" parantos dikirangan. Ukuran minimum subkaca geus diréduksi tina 64K jadi 4K (subkaca leuwih leutik batan kaca kernel bisa dipaké). Transisi parantos dilakukeun tina ngagunakeun tangkal radix kana algoritma XArrays.
    • A mode geus ditambahkeun kana server NFS pikeun manjangkeun pelestarian tina kaayaan ngonci diatur ku klien nu geus dieureunkeun ngarespon kana requests. Modeu anyar ngamungkinkeun anjeun pikeun ngalambatkeun ngabersihan konci dugi ka sadinten upami klien sanés menta konci anu bersaing. Dina modeu normal, blocking diberesihan 90 detik saatos klien eureun ngaréspon.
    • Subsistem tracking acara dina fanotify FS implements FAN_MARK_EVICTABLE bandéra, kalawan nu bisa nganonaktipkeun pinning target i-titik dina cache, Contona, malire sub-cabang tanpa pinning bagian maranéhanana dina cache nu.
    • Supir pikeun sistem file FAT32 geus ditambahkeun rojongan pikeun meunangkeun inpo ngeunaan waktos file kreasi ngaliwatan panggero sistem statx kalawan palaksanaan versi leuwih efisien sarta fungsi stat (), nu mulih informasi nambahan ngeunaan file.
    • Optimasi anu penting parantos dilakukeun ka supir exFAT pikeun ngamungkinkeun ngabersihan sakaligus tina grup séktor nalika mode 'dirsync' aktip, sanés ngabersihan séktor-demi-sektor anu berurutan. Ku ngurangan jumlah requests block sanggeus optimasi, kinerja nyieun angka nu gede ngarupakeun directories dina kartu SD ngaronjat ku leuwih ti 73-85%, gumantung kana ukuran klaster.
    • Kernel kalebet pembaruan koréksi munggaran pikeun supir ntfs3. Kusabab ntfs3 kalebet dina kernel 5.15 Oktober kamari, supirna teu acan diropéa sareng komunikasi sareng pamekar parantos leungit, tapi pamekar ayeuna parantos neraskeun parobihan penerbitan. Patch anu diusulkeun ngaleungitkeun kasalahan anu nyababkeun bocor sareng ngadat memori, ngarengsekeun masalah sareng palaksanaan xfstests, ngabersihkeun kode anu henteu dianggo, sareng ngalereskeun kasalahan.
    • Pikeun OverlayFS, kamampuan pikeun peta ID pangguna tina sistem file anu dipasang parantos dilaksanakeun, anu dianggo pikeun cocog sareng file pangguna khusus dina partisi asing anu dipasang sareng pangguna sanés dina sistem ayeuna.
  • Mémori sareng jasa sistem
    • Ditambahkeun dukungan awal pikeun arsitéktur set instruksi LoongArch anu dianggo dina prosesor Loongson 3 5000, anu ngalaksanakeun RISC ISA énggal, sami sareng MIPS sareng RISC-V. Arsitéktur LoongArch sayogi dina tilu rasa: 32-bit (LA32R), 32-bit biasa (LA32S), sareng 64-bit (LA64).
    • Dihapus kode pikeun ngarojong format file laksana a.out, nu ieu deprecated dina release 5.1. 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é.
    • Rojongan pikeun pilihan boot x86-spésifik parantos dileungitkeun: nosp, nosmap, nosmep, noexec sareng noclflush).
    • Rojongan pikeun arsitektur CPU h8300 luntur (Renesas H8/300), nu geus lila ditinggalkeun tanpa rojongan, geus dieureunkeun.
    • Kamampuhan dimekarkeun patali ngarespon kana deteksi pamisah konci ("konci pamisah") anu lumangsung nalika ngakses data unaligned dina mémori alatan kanyataan yén nalika executing instruksi atom, data crosses dua garis cache CPU. Sumbatan sapertos kitu nyababkeun panurunan anu signifikan dina pagelaran. Upami sateuacana, sacara standar, kernel bakal ngaluarkeun peringatan kalayan inpormasi ngeunaan prosés anu nyababkeun blocking, ayeuna prosés anu bermasalah bakal langkung laun pikeun ngawétkeun kinerja sesa sistem.
    • Ditambahkeun dukungan pikeun mékanisme IFS (In-Field Scan) anu dilaksanakeun dina prosesor Intel, anu ngamungkinkeun anjeun ngajalankeun tés diagnostik CPU tingkat rendah anu tiasa ngaidentipikasi masalah anu henteu dideteksi ku alat standar dumasar kana kode koreksi kasalahan (ECC) atanapi bit parity. . Tés anu dilakukeun nyaéta dina bentuk firmware anu tiasa diunduh, dirancang sami sareng apdet microcode. Hasil tés sayogi via sysfs.
    • Ditambahkeun kamampuhan pikeun embed file bootconfig kana kernel, anu ngamungkinkeun, sajaba pilihan garis paréntah, pikeun nangtukeun parameter tina kernel ngaliwatan file setélan. Embedding dilaksanakeun nganggo pilihan assembly 'CONFIG_BOOT_CONFIG_EMBED_FILE=»/PATH/TO/BOOTCONFIG/FILE»'. Saméméhna, bootconfig ditangtukeun ku ngagantelkeun kana gambar initrd. Integrasi kana kernel ngamungkinkeun bootconfig dipaké dina konfigurasi tanpa initrd.
    • Kamampuhan pikeun ngundeur firmware dikomprés nganggo algoritma Zstandard parantos dilaksanakeun. Hiji set file kontrol /sys/class/firmware/* geus ditambahkeun kana sysfs, ngidinan Anjeun pikeun initiate firmware loading ti spasi pamaké.
    • Io_uring Asynchronous I / O panganteur nawarkeun bandéra anyar, IORING_RECVSEND_POLL_FIRST, nu, nalika diatur, bakal mimiti ngirim operasi jaringan pikeun diolah ngagunakeun polling, nu bisa ngahemat sumberdaya dina situasi dimana ngolah operasi kalawan sababaraha reureuh téh bisa ditarima. io_uring ogé ditambahkeun rojongan pikeun stop kontak () Sistim panggero, ngajukeun umbul anyar pikeun simplify manajemén file descriptors, ditambahkeun "multi-shot" mode pikeun nampa sababaraha sambungan sakaligus dina nampa () panggero, sarta operasi ditambahkeun pikeun diteruskeun NVMe. paréntah langsung ka alat.
    • Arsitéktur Xtensa nyayogikeun pangrojong pikeun alat debugging KCSAN (Kernel Concurrency Sanitizer), dirancang pikeun sacara dinamis ngadeteksi kaayaan balapan dina kernel. Ogé ditambahkeun rojongan pikeun mode sare na coprocessors.
    • Pikeun arsitéktur m68k (Motorola 68000), mesin virtual (simulator platform) dumasar kana émulator Android Goldfish parantos dilaksanakeun.
    • Pikeun arsitéktur AArch64, dukungan pikeun ekstensi Armv9-A SME (Scalable Matrix Extension) parantos dilaksanakeun.
    • Subsistem eBPF ngamungkinkeun nyimpen pointer diketik dina struktur peta, sareng ogé nambihan dukungan pikeun petunjuk dinamis.
    • A mékanisme ulang memori proaktif anyar diajukeun nu ngarojong kadali pamaké-spasi ngagunakeun file memory.reclaim. Nulis angka kana file nu tangtu bakal nyobian nundung jumlah pakait tina bait ti set pakait sareng cgroup nu.
    • Ningkatkeun akurasi pamakean memori nalika ngompres data dina partisi swap nganggo mékanisme zswap.
    • Pikeun arsitéktur RISC-V disadiakeun rojongan pikeun ngajalankeun executables 32-bit dina sistem 64-bit, mode ditambahkeun pikeun meungkeut atribut restrictive ka kaca memori (Contona, pikeun nganonaktipkeun cache), sarta fungsi kexec_file_load () dilaksanakeun. .
    • Palaksanaan dukungan pikeun sistem Armv32T sareng Armv4 5-bit diadaptasi pikeun dianggo dina ngawangun kernel multi-platform universal anu cocog pikeun sistem ARM anu béda.
  • Virtualisasi sareng Kaamanan
    • Subsistem EFI implements kamampuhan pikeun rahasia mindahkeun informasi rusiah ka sistem tamu tanpa disclosing kana sistem host. Data disadiakeun ngaliwatan diréktori kaamanan/coco di securityfs.
    • Modeu panyalindungan Lockdown, anu ngabatesan aksés pangguna akar kana kernel sareng meungpeuk jalur bypass UEFI Secure Boot, parantos ngaleungitkeun celah anu ngamungkinkeun panyalindungan dilewatan ku ngamanipulasi debugger kernel.
    • Kaasup patch anu ditujukeun pikeun ningkatkeun reliabilitas sareng kinerja generator nomer pseudo-acak.
    • Nalika ngawangun ngagunakeun Clang 15, rojongan pikeun mékanisme pikeun randomizing struktur kernel dilaksanakeun.
    • Mékanisme Landlock, anu ngamungkinkeun anjeun ngawatesan interaksi sakelompok prosés sareng lingkungan éksternal, nyayogikeun pangrojong pikeun aturan anu ngamungkinkeun anjeun ngadalikeun palaksanaan operasi ngaganti ngaran file.
    • Subsistem IMA (Integrity Measurement Architecture), dirancang pikeun pariksa integritas komponén sistem operasi nganggo tanda tangan digital sareng hashes, parantos dialihkeun ngagunakeun modul fs-verity pikeun verifikasi file.
    • Logika lampah nalika nganonaktipkeun aksés unprivileged kana subsistem eBPF geus robah - saméméhna sagala paréntah pakait sareng bpf () Sistim panggero ditumpurkeun, sarta mimitian ti versi 5.19, aksés ka paréntah nu teu ngakibatkeun kreasi objék ditinggalkeun. . Paripolah ieu ngabutuhkeun prosés anu istimewa pikeun ngamuat program BPF, tapi prosés anu henteu dipikabutuh tiasa berinteraksi sareng program éta.
    • Ditambahkeun dukungan pikeun ekstensi AMD SEV-SNP (Secure Nested Paging), anu nyayogikeun padamelan anu aman sareng tabel halaman mémori anu disarangkeun sareng ngajagi tina serangan "undeSErVed" sareng "SEVerity" dina prosesor AMD EPYC, anu ngamungkinkeun ngalangkungan AMD SEV (Secure Encrypted Virtualization). ) mékanisme panyalindungan.
    • Ditambahkeun dukungan pikeun mékanisme Intel TDX (Ekstensi Domain Dipercanten), anu ngamungkinkeun anjeun pikeun meungpeuk usaha pihak katilu pikeun ngaksés mémori énkripsi mesin virtual.
    • Supir virtio-blk, dipaké pikeun emulate alat block, geus ditambahkeun rojongan pikeun I / O ngagunakeun polling, nu, nurutkeun tés, geus ngurangan latency ku ngeunaan 10%.
  • Subsistem jaringan
    • iket ngawengku runtuyan patch BIG TCP nu ngidinan Anjeun pikeun ngaronjatkeun ukuran pakét maksimum hiji pakét TCP ka 4GB pikeun ngaoptimalkeun operasi jaringan puseur data internal-speed tinggi. Paningkatan anu sami dina ukuran pakét kalayan ukuran médan header 16-bit dihontal ku palaksanaan pakét "jumbo", ukuran dina header IP disetél ka 0, sareng ukuran saleresna dikirimkeun dina 32-bit anu misah. widang dina header napel misah. Dina nguji kinerja, netepkeun ukuran pakét ka 185 KB ngaronjat throughput ku 50% sarta nyata ngurangan latency mindahkeun data.
    • Gawé dituluykeun dina ngahijikeun alat kana tumpukan jaringan pikeun ngalacak alesan pikeun ngaleupaskeun pakét (kode alesan). Kode alesan dikirim nalika mémori pakait sareng pakét dibébaskeun tur ngamungkinkeun pikeun situasi kayaning pakét Piceun alatan kasalahan lulugu, deteksi spoofing rp_filter, checksum teu valid, kaluar memori, aturan IPSec XFRM dipicu, angka runtuyan teu valid TCP, jsb.
    • Ditambahkeun rojongan pikeun ragrag deui MPTCP (MultiPath TCP) sambungan ngagunakeun TCP biasa, dina kaayaan dimana fitur MPTCP tangtu teu bisa dipaké. MPTCP mangrupa extension tina protokol TCP pikeun ngatur operasi sambungan TCP jeung pangiriman pakét sakaligus sapanjang sababaraha ruteu ngaliwatan interfaces jaringan béda pakait sareng alamat IP béda. Ditambahkeun API pikeun ngadalikeun aliran MPTCP ti rohangan pamaké.
  • pakakas
    • Ditambahkeun leuwih 420k garis kode patali supir amdgpu, nu ngeunaan 400k garis mangrupakeun file lulugu otomatis-dihasilkeun pikeun ASIC register data dina supir AMD GPU, sarta 22.5k garis séjén nyadiakeun palaksanaan awal rojongan pikeun AMD SoC21. Ukuran supir total pikeun AMD GPU ngaleuwihan 4 juta garis kode. Salian SoC21, supir AMD kalebet dukungan pikeun SMU 13.x (System Management Unit), diropéa dukungan pikeun USB-C sareng GPUVM, sareng siap ngadukung generasi RDNA3 (RX 7000) sareng CDNA (AMD Instinct). platform.
    • Supir i915 (Intel) parantos ngalegaan kamampuan anu aya hubunganana sareng manajemén kakuatan. Identifiers ditambahkeun pikeun Intel DG2 (Arc Alchemist) GPUs dipaké dina laptop, nyadiakeun rojongan awal pikeun platform Intel Raptor Lake-P (RPL-P), nambahan informasi ngeunaan kartu grafik Arctic Sora-M), dilaksanakeun ABI pikeun mesin ngitung, ditambahkeun pikeun Kartu DG2 ngadukung format Tile4; pikeun sistem dumasar kana microarchitecture Haswell, dukungan DisplayPort HDR dilaksanakeun.
    • Supir Nouveau parantos ngalih ka panangan drm_gem_plane_helper_prepare_fb; alokasi mémori statik parantos dilarapkeun kana sababaraha struktur sareng variabel. Sedengkeun pikeun pamakéan modul kernel open source ku NVIDIA di Nouveau, karya sajauh datang ka handap pikeun ngaidentipikasi sarta ngaleungitkeun kasalahan. Ka hareupna, firmware anu diterbitkeun direncanakeun bakal dianggo pikeun ningkatkeun kinerja supir.
    • Ditambahkeun supir pikeun NVMe controller dipaké dina komputer Apple dumasar kana chip M1.

Dina waktos anu sami, Latin American Free Software Foundation ngawangun versi kernel gratis 5.19 - Linux-libre 5.19-gnu, dibersihkeun tina unsur firmware sareng supir anu ngandung komponén atanapi bagian kode anu henteu gratis, ruang lingkupna nyaéta diwatesan ku produsén. Pelepasan énggal ngabersihkeun panggerak pikeun pureLiFi X / XL / XC sareng TI AMx3 Wkup-M3 IPC. Kode beberesih blob diropéa di Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Periferal Gambar Loader, Realtek Bluetooth, Mellanox Spéktrum, Marvell WiFi-Ex, Intel AVS, IFS, supir pu3-imgu jeung subsistem. Ngolah file Qualcomm AArch64 devicetree parantos dilaksanakeun. Ditambahkeun dukungan pikeun skéma ngaran komponén Sound Open Firmware énggal. Dieureunkeun meresihan supir Duta ATM, nu dikaluarkeun tina kernel. Manajemén beberesih blob di HDCP na Mellanox Core geus dipindahkeun ka misahkeun tag kconfig.

sumber: opennet.ru

Tambahkeun komentar