Keluaran kernel Linux 5.17

Selepas dua bulan pembangunan, Linus Torvalds membentangkan keluaran kernel Linux 5.17. Antara perubahan yang paling ketara: sistem pengurusan prestasi baharu untuk pemproses AMD, keupayaan untuk memetakan ID pengguna secara rekursif dalam sistem fail, sokongan untuk program BPF tersusun mudah alih, peralihan penjana nombor pseudo-rawak kepada algoritma BLAKE2s, utiliti RTLA untuk analisis pelaksanaan masa nyata, bahagian belakang fscache baharu untuk caching sistem fail rangkaian, keupayaan untuk melampirkan nama pada operasi mmap tanpa nama.

Versi baharu termasuk 14203 pembaikan daripada 1995 pembangun, saiz tampalan ialah 37 MB (perubahan mempengaruhi 11366 fail, 506043 baris kod telah ditambahkan, 250954 baris telah dipadamkan). Kira-kira 44% daripada semua perubahan yang diperkenalkan dalam 5.17 adalah berkaitan dengan pemacu peranti, kira-kira 16% perubahan berkaitan dengan pengemaskinian kod khusus untuk seni bina perkakasan, 15% berkaitan dengan susunan rangkaian, 4% berkaitan dengan sistem fail dan 4% adalah berkaitan dengan subsistem kernel dalaman.

Inovasi utama dalam kernel 5.17:

  • Subsistem cakera, I/O dan sistem fail
    • Melaksanakan kemungkinan pemetaan bersarang bagi ID pengguna sistem fail yang dipasang, digunakan untuk membandingkan fail pengguna tertentu pada partition asing yang dipasang dengan pengguna lain pada sistem semasa. Ciri tambahan membolehkan anda menggunakan pemetaan secara rekursif di atas sistem fail yang pemetaan telah digunakan.
    • Subsistem fscache, yang digunakan untuk mengatur caching dalam sistem fail tempatan data yang dipindahkan melalui sistem fail rangkaian, telah ditulis semula sepenuhnya. Pelaksanaan baharu ini dibezakan oleh penyederhanaan kod yang ketara dan penggantian operasi kompleks perancangan dan keadaan objek penjejakan dengan mekanisme yang lebih mudah. Sokongan untuk fscache baharu dilaksanakan dalam sistem fail CIFS.
    • Subsistem penjejakan acara dalam fanotify FS melaksanakan jenis acara baharu, FAN_RENAME, yang membolehkan anda memintas serta-merta operasi menamakan semula fail atau direktori (sebelum ini, dua acara berasingan FAN_MOVED_FROM dan FAN_MOVED_TO telah digunakan untuk memproses penamaan semula).
    • Sistem fail Btrfs telah mengoptimumkan operasi pengelogan dan fsync untuk direktori besar, dilaksanakan dengan hanya menyalin kunci indeks dan mengurangkan jumlah metadata yang dilog. Sokongan untuk mengindeks dan mencari mengikut saiz rekod ruang kosong telah disediakan, yang telah mengurangkan kependaman sebanyak kira-kira 30% dan mengurangkan masa carian. Dibenarkan untuk mengganggu operasi defragmentasi. Keupayaan untuk menambah peranti apabila mengimbangi antara pemacu dilumpuhkan, i.e. apabila memasang sistem fail dengan pilihan skip_balance.
    • Sintaks baharu untuk memasang sistem fail Ceph telah dicadangkan, menyelesaikan masalah sedia ada yang berkaitan dengan mengikat alamat IP. Selain alamat IP, anda kini boleh menggunakan pengecam kluster (FSID) untuk mengenal pasti pelayan: mount -t ceph [e-mel dilindungi]_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Sistem fail Ext4 telah berpindah ke API pelekap baharu yang memisahkan langkah penghuraian pilihan pelekap dan konfigurasi superblock. Kami telah menggugurkan sokongan untuk pilihan pemasangan lazytime dan nolazytime, yang telah ditambah sebagai perubahan sementara untuk memudahkan peralihan util-linux untuk menggunakan bendera MS_LAZYTIME. Menambah sokongan untuk menetapkan dan membaca label dalam FS (ioctl FS_IOC_GETFSLABEL dan FS_IOC_SETFSLABEL).
    • NFSv4 menambah sokongan untuk bekerja dalam sistem fail yang tidak peka huruf besar-kecil dalam nama fail dan direktori. NFSv4.1+ menambah sokongan untuk menentukan sesi agregat (trunking).
  • Perkhidmatan memori dan sistem
    • Menambah pemacu amd-pstate untuk menyediakan kawalan frekuensi dinamik untuk prestasi optimum. Pemacu menyokong CPU dan APU AMD bermula dari generasi Zen 2, dibangunkan bersama dengan Valve dan bertujuan untuk meningkatkan kecekapan pengurusan tenaga. Untuk perubahan frekuensi penyesuaian, mekanisme CPPC (Kawalan Prestasi Pemproses Kolaboratif) digunakan, yang membolehkan anda menukar penunjuk dengan lebih tepat (tidak terhad kepada tiga tahap prestasi) dan bertindak balas dengan lebih cepat untuk menyatakan perubahan berbanding keadaan P berasaskan ACPI yang digunakan sebelum ini. pemacu (CPUFreq).
    • Subsistem eBPF menawarkan pengendali bpf_loop(), yang menyediakan cara alternatif untuk mengatur gelung dalam program eBPF, lebih cepat dan lebih mudah untuk pengesahan oleh pengesah.
    • Pada peringkat kernel, mekanisme CO-RE (Compile Once - Run Everywhere) dilaksanakan, yang membolehkan anda menyusun kod program eBPF sekali sahaja dan menggunakan pemuat universal khas yang menyesuaikan program yang dimuatkan kepada jenis kernel dan BTF semasa (Format Jenis BPF).
    • Adalah mungkin untuk memberikan nama kepada kawasan memori tanpa nama peribadi (diperuntukkan melalui malloc), yang boleh memudahkan penyahpepijatan dan pengoptimuman penggunaan memori dalam aplikasi. Nama diberikan melalui prctl dengan bendera PR_SET_VMA_ANON_NAME dan dipaparkan dalam /proc/pid/maps dan /proc/pid/smaps dalam bentuk "[anon: ]".
    • Penjadual tugas menyediakan penjejakan dan paparan dalam /proc/PID/jadual masa yang dibelanjakan oleh proses dalam keadaan terbiar paksa, digunakan, sebagai contoh, untuk mengurangkan beban apabila pemproses terlalu panas.
    • Menambah modul gpio-sim, direka bentuk untuk mensimulasikan cip GPIO untuk ujian.
    • Menambahkan subperintah "kependaman" pada perintah "perf ftrace" untuk menjana histogram dengan maklumat kependaman.
    • Menambah satu set utiliti "RTLA" untuk menganalisis kerja dalam masa nyata. Ia termasuk utiliti seperti osnoise (menentukan pengaruh sistem pengendalian pada pelaksanaan tugas) dan timerlat (menukar kelewatan yang berkaitan dengan pemasa).
    • Tampalan siri kedua telah disepadukan dengan pelaksanaan konsep folio halaman, yang menyerupai halaman majmuk, tetapi telah meningkatkan semantik dan organisasi kerja yang lebih jelas. Menggunakan tomes membolehkan anda mempercepatkan pengurusan memori dalam beberapa subsistem kernel. Tampalan yang dicadangkan melengkapkan penukaran cache halaman kepada penggunaan buku besar dan menambah sokongan awal untuk buku besar dalam sistem fail XFS.
    • Menambah mod binaan "make mod2noconfig", yang menjana konfigurasi yang mengumpulkan semua subsistem yang dilumpuhkan dalam bentuk modul kernel.
    • Keperluan untuk versi LLVM/Clang yang boleh digunakan untuk membina kernel telah dinaikkan. Binaan sekarang memerlukan sekurang-kurangnya keluaran LLVM 11.
  • Maya dan Keselamatan
    • Pelaksanaan kemas kini bagi penjana nombor pseudo-rawak RDRAND, yang bertanggungjawab untuk pengendalian peranti /dev/random dan /dev/urandom, dicadangkan, yang ketara untuk peralihan kepada menggunakan fungsi cincang BLAKE2s dan bukannya SHA1 untuk operasi pencampuran entropi. Perubahan itu meningkatkan keselamatan penjana nombor pseudo-rawak dengan menghapuskan algoritma SHA1 yang bermasalah dan menghapuskan tiruan bagi vektor permulaan RNG. Memandangkan algoritma BLAKE2s lebih unggul daripada SHA1 dalam prestasi, penggunaannya juga mempunyai kesan positif terhadap prestasi.
    • Perlindungan tambahan terhadap kelemahan dalam pemproses yang disebabkan oleh pelaksanaan arahan spekulatif selepas operasi lompat ke hadapan tanpa syarat. Masalah berlaku disebabkan oleh pemprosesan awal arahan serta-merta selepas arahan cawangan dalam ingatan (SLS, Spekulasi Garis Lurus). Mendayakan perlindungan memerlukan pembinaan dengan keluaran GCC 12 yang sedang diuji.
    • Menambahkan mekanisme untuk menjejak pengiraan rujukan (kiraan semula, kiraan rujukan), bertujuan untuk mengurangkan bilangan ralat dalam pengiraan rujukan yang membawa kepada akses kepada ingatan selepas ia dibebaskan. Mekanisme ini pada masa ini terhad kepada subsistem rangkaian, tetapi pada masa hadapan ia boleh disesuaikan dengan bahagian lain kernel.
    • Pemeriksaan lanjutan bagi entri baharu dalam jadual halaman memori proses telah dilaksanakan, membolehkan untuk mengesan jenis kerosakan tertentu dan menghentikan sistem, menyekat serangan pada peringkat awal.
    • Menambah keupayaan untuk membongkar modul kernel secara langsung oleh kernel itu sendiri, dan bukan oleh pengendali dalam ruang pengguna, yang membenarkan penggunaan modul LoadPin LSM untuk memastikan modul kernel dimuatkan ke dalam memori daripada peranti storan yang disahkan.
    • Disediakan pemasangan dengan bendera "-Wcast-function-type", yang membolehkan amaran tentang menghantar penunjuk fungsi kepada jenis yang tidak serasi.
    • Menambah pvUSB pemacu hos maya untuk hipervisor Xen, menyediakan akses kepada peranti USB yang dimajukan kepada sistem tetamu (membolehkan sistem tetamu mengakses peranti USB fizikal yang diberikan kepada sistem tetamu).
    • Satu modul telah ditambah yang membolehkan anda berinteraksi melalui Wi-Fi dengan subsistem IME (Intel Management Engine), yang terdapat dalam kebanyakan papan induk moden dengan pemproses Intel dan dilaksanakan sebagai mikropemproses berasingan yang beroperasi secara bebas daripada CPU.
    • Untuk seni bina ARM64, sokongan telah dilaksanakan untuk alat penyahpepijatan KCSAN (Kernel Concurrency Sanitizer), direka bentuk untuk mengesan keadaan perlumbaan secara dinamik dalam kernel.
    • Untuk sistem ARM 32-bit, keupayaan untuk menggunakan mekanisme KFENCE untuk mengesan ralat apabila bekerja dengan memori telah ditambah.
    • Hipervisor KVM menambah sokongan untuk arahan AMX (Advanced Matrix Extensions) yang dilaksanakan dalam pemproses pelayan Intel Xeon Scalable yang akan datang.
  • Subsistem rangkaian
    • Menambahkan sokongan untuk operasi pemunggahan yang berkaitan dengan pengurusan trafik ke sisi peranti rangkaian.
    • Menambahkan keupayaan untuk menggunakan MCTP (Protokol Pengangkutan Komponen Pengurusan) melalui peranti bersiri. MCTP boleh digunakan untuk berkomunikasi antara pengawal pengurusan dan peranti berkaitannya (pemproses hos, persisian, dsb.).
    • Tindanan TCP telah dioptimumkan, sebagai contoh, untuk meningkatkan prestasi panggilan recvmsg, pelepasan tertunda penimbal soket telah dilaksanakan.
    • Pada peringkat kuasa CAP_NET_RAW, menetapkan mod SO_PRIORITY dan SO_MARK melalui fungsi setsockopt dibenarkan.
    • Untuk IPv4, soket mentah dibenarkan untuk diikat ke alamat IP bukan tempatan menggunakan pilihan IP_FREEBIND dan IP_TRANSPARENT.
    • Menambah sysctl arp_missed_max untuk mengkonfigurasi bilangan ambang kegagalan semasa pemeriksaan monitor ARP, selepas itu antara muka rangkaian diletakkan dalam keadaan dilumpuhkan.
    • Dengan syarat keupayaan untuk mengkonfigurasi sysctl min_pmtu dan nilai mtu_expires yang berasingan untuk ruang nama rangkaian.
    • Menambahkan keupayaan untuk menetapkan dan menentukan saiz penimbal untuk paket masuk dan keluar ke API ethtool.
    • Netfilter telah menambah sokongan untuk menapis trafik pppoe transit dalam jambatan rangkaian.
    • Modul ksmbd, yang melaksanakan pelayan fail menggunakan protokol SMB3, telah menambah sokongan untuk pertukaran kunci, mendayakan port rangkaian 445 untuk smbdirect dan menambah sokongan untuk parameter "smb2 max credit".
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Sokongan untuk skrin untuk memaparkan maklumat sulit telah ditambahkan pada subsistem drm (Pengurus Rendering Langsung) dan pemacu i915, sebagai contoh, sesetengah komputer riba dilengkapi dengan skrin dengan mod tontonan sulit terbina dalam, menjadikannya sukar untuk dilihat dari luar . Perubahan tambahan membolehkan anda menyambungkan pemacu khusus untuk skrin sedemikian dan mengawal mod penyemakan imbas sulit dengan menetapkan sifat dalam pemacu KMS biasa.
    • Pemacu amdgpu termasuk sokongan untuk teknologi penyahpepijatan STB (Smart Trace Buffer) untuk semua GPU AMD yang menyokongnya. STB menjadikannya lebih mudah untuk menganalisis kegagalan dan mengenal pasti punca masalah dengan menyimpan dalam maklumat penimbal khas tentang fungsi yang dilakukan sebelum kegagalan terakhir.
    • Pemacu i915 menambah sokongan untuk cip Intel Raptor Lake S dan membolehkan sokongan untuk subsistem grafik cip Intel Alder Lake P secara lalai. Anda boleh mengawal lampu latar skrin melalui antara muka VESA DPCD.
    • Sokongan untuk pecutan menatal perkakasan dalam konsol telah dikembalikan dalam pemacu fbcon/fbdev.
    • Penyepaduan berterusan perubahan untuk menyokong cip Apple M1. Melaksanakan keupayaan untuk menggunakan pemacu simpledrm pada sistem dengan cip Apple M1 untuk output melalui framebuffer yang disediakan oleh perisian tegar.
    • Sokongan tambahan untuk ARM SoΠ‘, peranti dan papan Snapdragon 7c, 845 dan 888 (Sony Xperia XZ2 / XZ2C / XZ3, Xperia 1 III / 5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek MT8183 ( Acer Chromebook 314), Mediatek MT7986a/b (digunakan dalam penghala Wi-fi), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEAr320s, NXP8 i. , Aspeed AST8/AST2500, Engicam i.Core STM2600MP32, Allwinner Tanix TX1, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t6/t6000 MacBook Pro 6001/14.
    • Menambah sokongan untuk pemproses ARM Cortex-M55 dan Cortex-M33.
    • Sokongan tambahan untuk peranti berdasarkan CPU MIPS: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Menambah sokongan untuk StarFive JH7100 SoC berdasarkan seni bina RISC-V.
    • Menambahkan pemandu lenovo-yogabook-wmi untuk mengawal lampu latar papan kekunci dan mengakses pelbagai penderia dalam Lenovo Yoga Book.
    • Menambah pemacu asus_wmi_sensors untuk mengakses penderia yang digunakan pada papan induk Asus X370, X470, B450, B550 dan X399 berdasarkan pemproses AMD Ryzen.
    • Menambah pemacu x86-android-tablets untuk PC tablet berasaskan x86 yang dihantar dengan platform Android.
    • Sokongan tambahan untuk skrin sentuh TrekStor SurfTab duo W1 dan pen elektronik untuk tablet Chuwi Hi10 Plus dan Pro.
    • Pemacu untuk SoC Tegra 20/30 telah menambah sokongan untuk pengurusan kuasa dan voltan. Mendayakan but pada peranti Tegra SoC 32-bit yang lebih lama seperti ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 dan Pad TF300TG.
    • Menambah pemacu untuk komputer industri Siemens.
    • Sokongan tambahan untuk Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA dan Panel LCD Sumber Pasukan TST043015XXNUMX
    • Sokongan tambahan untuk sistem bunyi dan codec AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, sistem Intel menggunakan NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320ADC3xxx. Masalah dengan Tegra194 HD-audio telah diselesaikan. Menambah sokongan HDA untuk codec CS35L41. Sokongan yang dipertingkatkan untuk sistem bunyi untuk komputer riba Lenovo dan HP, serta papan induk Gigabyte.

Sumber: opennet.ru

Tambah komen