Rilis kernel Linux 5.17

Setelah dua bulan pengembangan, Linus Torvalds meluncurkan rilis kernel Linux 5.17. Di antara perubahan yang paling menonjol: sistem manajemen kinerja baru untuk prosesor AMD, kemampuan untuk memetakan ID pengguna secara rekursif dalam sistem file, dukungan untuk program BPF terkompilasi portabel, transisi generator angka pseudo-acak ke algoritma BLAKE2s, utilitas RTLA untuk analisis eksekusi real-time, backend fscache baru untuk caching sistem file jaringan, kemampuan untuk melampirkan nama ke operasi mmap anonim.

Versi baru mencakup 14203 perbaikan dari 1995 pengembang, ukuran patch adalah 37 MB (perubahan mempengaruhi 11366 file, 506043 baris kode ditambahkan, 250954 baris dihapus). Sekitar 44% dari semua perubahan yang diperkenalkan di 5.17 terkait dengan driver perangkat, sekitar 16% perubahan terkait dengan pembaruan kode khusus untuk arsitektur perangkat keras, 15% terkait dengan tumpukan jaringan, 4% terkait dengan sistem file, dan 4% terkait dengan subsistem kernel internal.

Inovasi utama dalam kernel 5.17:

  • Subsistem Disk, I/O dan Sistem File
    • Menerapkan kemungkinan pemetaan bersarang ID pengguna dari sistem file yang dipasang, digunakan untuk membandingkan file pengguna tertentu di partisi asing yang dipasang dengan pengguna lain di sistem saat ini. Fitur tambahan memungkinkan Anda menggunakan pemetaan secara rekursif di atas sistem file yang pemetaannya sudah diterapkan.
    • Subsistem fscache, yang digunakan untuk mengatur cache dalam sistem file lokal dari data yang ditransfer melalui sistem file jaringan, telah sepenuhnya ditulis ulang. Implementasi baru ini dibedakan dengan penyederhanaan kode yang signifikan dan penggantian operasi kompleks perencanaan dan pelacakan status objek dengan mekanisme yang lebih sederhana. Dukungan untuk fscache baru diimplementasikan dalam sistem file CIFS.
    • Subsistem pelacakan peristiwa di fanotify FS mengimplementasikan jenis peristiwa baru, FAN_RENAME, yang memungkinkan Anda untuk segera mencegat operasi penggantian nama file atau direktori (sebelumnya, dua peristiwa terpisah FAN_MOVED_FROM dan FAN_MOVED_TO digunakan untuk memproses penggantian nama).
    • Sistem file Btrfs telah mengoptimalkan operasi logging dan fsync untuk direktori besar, diterapkan dengan hanya menyalin kunci indeks dan mengurangi jumlah metadata yang dicatat. Dukungan untuk pengindeksan dan pencarian berdasarkan ukuran catatan ruang kosong telah disediakan, yang telah mengurangi latensi sekitar 30% dan mengurangi waktu pencarian. Diizinkan untuk menghentikan operasi defragmentasi. Kemampuan untuk menambahkan perangkat saat keseimbangan antar drive dinonaktifkan, mis. saat memasang sistem file dengan opsi skip_balance.
    • Sintaks baru untuk memasang sistem file Ceph telah diusulkan, memecahkan masalah yang ada terkait dengan pengikatan ke alamat IP. Selain alamat IP, Anda sekarang dapat menggunakan pengidentifikasi cluster (FSID) untuk mengidentifikasi server: mount -t ceph [email dilindungi]_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Sistem file Ext4 telah dipindahkan ke API pemasangan baru yang memisahkan langkah penguraian opsi pemasangan dan konfigurasi superblok. Kami telah menghentikan dukungan untuk opsi pemasangan lazytime dan nolazytime, yang ditambahkan sebagai perubahan sementara untuk memudahkan transisi util-linux untuk menggunakan flag MS_LAZYTIME. Menambahkan dukungan untuk mengatur dan membaca label di FS (ioctl FS_IOC_GETFSLABEL dan FS_IOC_SETFSLABEL).
    • NFSv4 menambahkan dukungan untuk bekerja dalam sistem file yang tidak membedakan huruf besar dan kecil dalam nama file dan direktori. NFSv4.1+ menambahkan dukungan untuk mendefinisikan sesi gabungan (trunking).
  • Layanan memori dan sistem
    • Menambahkan driver amd-pstate untuk menyediakan kontrol frekuensi dinamis untuk kinerja optimal. Driver tersebut mendukung CPU dan APU AMD mulai dari generasi Zen 2, dikembangkan bersama dengan Valve dan ditujukan untuk meningkatkan efisiensi manajemen energi. Untuk perubahan frekuensi adaptif, digunakan mekanisme CPPC (Collaborative Processor Performance Control), yang memungkinkan Anda mengubah indikator dengan lebih akurat (tidak terbatas pada tiga tingkat kinerja) dan merespons perubahan status lebih cepat daripada P-state berbasis ACPI yang digunakan sebelumnya driver (CPUFreq).
    • Subsistem eBPF menawarkan pengendali bpf_loop(), yang menyediakan cara alternatif untuk mengatur loop dalam program eBPF, lebih cepat dan mudah untuk verifikasi oleh verifikator.
    • Di tingkat kernel, mekanisme CO-RE (Kompilasi Sekali - Jalankan Di Mana Saja) diterapkan, yang memungkinkan Anda mengkompilasi kode program eBPF hanya sekali dan menggunakan pemuat universal khusus yang menyesuaikan program yang dimuat dengan jenis kernel dan BTF saat ini. (Format Tipe BPF).
    • Dimungkinkan untuk menetapkan nama ke area memori anonim pribadi (dialokasikan melalui malloc), yang dapat menyederhanakan proses debug dan optimalisasi konsumsi memori dalam aplikasi. Nama ditetapkan melalui prctl dengan flag PR_SET_VMA_ANON_NAME dan ditampilkan di /proc/pid/maps dan /proc/pid/smaps dalam bentuk "[anon: ]".
    • Penjadwal tugas menyediakan pelacakan dan tampilan di /proc/PID/sched waktu yang dihabiskan oleh proses dalam keadaan idle paksa, digunakan, misalnya, untuk mengurangi beban saat prosesor terlalu panas.
    • Menambahkan modul gpio-sim, yang dirancang untuk mensimulasikan chip GPIO untuk pengujian.
    • Menambahkan subperintah "latensi" ke perintah "perf ftrace" untuk menghasilkan histogram dengan informasi latensi.
    • Menambahkan serangkaian utilitas β€œRTLA” untuk menganalisis pekerjaan secara real time. Ini mencakup utilitas seperti osnoise (menentukan pengaruh sistem operasi pada pelaksanaan tugas) dan timerlat (mengubah penundaan yang terkait dengan pengatur waktu).
    • Serangkaian tambalan kedua telah diintegrasikan dengan penerapan konsep halaman folio, yang menyerupai halaman majemuk, namun telah meningkatkan semantik dan organisasi kerja yang lebih jelas. Menggunakan buku tebal memungkinkan Anda mempercepat manajemen memori di beberapa subsistem kernel. Tambalan yang diusulkan menyelesaikan konversi cache halaman menjadi penggunaan buku tebal dan menambahkan dukungan awal untuk buku tebal di sistem file XFS.
    • Menambahkan mode build β€œmake mod2noconfig”, yang menghasilkan konfigurasi yang mengumpulkan semua subsistem yang dinonaktifkan dalam bentuk modul kernel.
    • Persyaratan untuk versi LLVM/Clang yang dapat digunakan untuk membangun kernel telah ditingkatkan. Build sekarang memerlukan setidaknya rilis LLVM 11.
  • Virtualisasi dan Keamanan
    • Implementasi terbaru dari generator bilangan acak semu RDRAND, yang bertanggung jawab atas pengoperasian perangkat /dev/random dan /dev/urandom, diusulkan, yang terkenal karena transisi penggunaan fungsi hash BLAKE2s alih-alih SHA1 untuk operasi pencampuran entropi. Perubahan tersebut meningkatkan keamanan generator bilangan pseudo-acak dengan menghilangkan algoritma SHA1 yang bermasalah dan menghilangkan penimpaan vektor inisialisasi RNG. Karena algoritma BLAKE2s lebih unggul dari SHA1 dalam hal kinerja, penggunaannya juga memiliki efek positif pada kinerja.
    • Menambahkan perlindungan terhadap kerentanan pada prosesor yang disebabkan oleh eksekusi instruksi spekulatif setelah operasi lompatan maju tanpa syarat. Masalah terjadi karena pemrosesan instruksi pre-emptive segera mengikuti instruksi cabang di memori (SLS, Spekulasi Garis Lurus). Mengaktifkan perlindungan memerlukan pengembangan dengan rilis GCC 12 yang sedang diuji.
    • Menambahkan mekanisme untuk melacak penghitungan referensi (refcount, reference-count), yang bertujuan untuk mengurangi jumlah kesalahan dalam penghitungan referensi yang mengarah pada akses ke memori setelah dibebaskan. Mekanismenya saat ini terbatas pada subsistem jaringan, namun kedepannya dapat disesuaikan dengan bagian kernel lainnya.
    • Pemeriksaan yang diperluas terhadap entri baru dalam tabel halaman memori proses telah diterapkan, memungkinkan untuk mendeteksi jenis kerusakan tertentu dan menghentikan sistem, memblokir serangan pada tahap awal.
    • Menambahkan kemampuan untuk membongkar modul kernel secara langsung oleh kernel itu sendiri, dan bukan oleh pengendali di ruang pengguna, yang memungkinkan penggunaan modul LoadPin LSM untuk memastikan bahwa modul kernel dimuat ke dalam memori dari perangkat penyimpanan terverifikasi.
    • Menyediakan rakitan dengan tanda "-Wcast-function-type", yang mengaktifkan peringatan tentang casting penunjuk fungsi ke tipe yang tidak kompatibel.
    • Menambahkan driver host virtual pvUSB untuk hypervisor Xen, menyediakan akses ke perangkat USB yang diteruskan ke sistem tamu (memungkinkan sistem tamu mengakses perangkat USB fisik yang ditugaskan ke sistem tamu).
    • Sebuah modul telah ditambahkan yang memungkinkan Anda berinteraksi melalui Wi-Fi dengan subsistem IME (Intel Management Engine), yang terdapat di sebagian besar motherboard modern dengan prosesor Intel dan diimplementasikan sebagai mikroprosesor terpisah yang beroperasi secara independen dari CPU.
    • Untuk arsitektur ARM64, dukungan telah diterapkan untuk alat debugging KCSAN (Kernel Concurrency Sanitizer), yang dirancang untuk mendeteksi kondisi balapan di dalam kernel secara dinamis.
    • Untuk sistem ARM 32-bit, kemampuan untuk menggunakan mekanisme KFENCE untuk mendeteksi kesalahan saat bekerja dengan memori telah ditambahkan.
    • Hypervisor KVM menambahkan dukungan untuk instruksi AMX (Advanced Matrix Extensions) yang diterapkan pada prosesor server Intel Xeon Scalable yang akan datang.
  • Subsistem jaringan
    • Menambahkan dukungan untuk operasi pembongkaran yang terkait dengan manajemen lalu lintas ke sisi perangkat jaringan.
    • Menambahkan kemampuan untuk menggunakan MCTP (Management Component Transport Protocol) melalui perangkat serial. MCTP dapat digunakan untuk berkomunikasi antara pengontrol manajemen dan perangkat terkaitnya (prosesor host, periferal, dll.).
    • Tumpukan TCP telah dioptimalkan, misalnya, untuk meningkatkan kinerja panggilan recvmsg, pelepasan buffer soket yang tertunda telah diterapkan.
    • Pada tingkat otoritas CAP_NET_RAW, pengaturan mode SO_PRIORITY dan SO_MARK melalui fungsi setockopt diperbolehkan.
    • Untuk IPv4, soket mentah diperbolehkan untuk diikat ke alamat IP non-lokal menggunakan opsi IP_FREEBIND dan IP_TRANSPARENT.
    • Menambahkan sysctl arp_missed_max untuk mengonfigurasi jumlah ambang kegagalan selama pemeriksaan monitor ARP, setelah itu antarmuka jaringan ditempatkan dalam keadaan nonaktif.
    • Memberikan kemampuan untuk mengonfigurasi nilai sysctl min_pmtu dan mtu_expires yang terpisah untuk namespace jaringan.
    • Menambahkan kemampuan untuk mengatur dan menentukan ukuran buffer untuk paket masuk dan keluar ke ethtool API.
    • Netfilter telah menambahkan dukungan untuk memfilter lalu lintas transit pppoe di jembatan jaringan.
    • Modul ksmbd, yang mengimplementasikan server file menggunakan protokol SMB3, telah menambahkan dukungan untuk pertukaran kunci, mengaktifkan port jaringan 445 untuk smbdirect, dan menambahkan dukungan untuk parameter β€œsmb2 max credit”.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Dukungan layar untuk menampilkan informasi rahasia telah ditambahkan pada subsistem drm (Direct Renderering Manager) dan driver i915, misalnya beberapa laptop dilengkapi dengan layar dengan mode tampilan rahasia bawaan, sehingga sulit untuk melihat dari luar. . Perubahan yang ditambahkan memungkinkan Anda menghubungkan driver khusus untuk layar tersebut dan mengontrol mode penjelajahan rahasia dengan mengatur properti di driver KMS biasa.
    • Driver amdgpu menyertakan dukungan untuk teknologi debugging STB (Smart Trace Buffer) untuk semua GPU AMD yang mendukungnya. STB mempermudah analisis kegagalan dan mengidentifikasi sumber masalah dengan menyimpan informasi buffer khusus tentang fungsi yang dilakukan sebelum kegagalan terakhir.
    • Driver i915 menambahkan dukungan untuk chip Intel Raptor Lake S dan mengaktifkan dukungan untuk subsistem grafis chip Intel Alder Lake P. Dimungkinkan untuk mengontrol lampu latar layar melalui antarmuka VESA DPCD.
    • Dukungan untuk akselerasi pengguliran perangkat keras di konsol telah dikembalikan di driver fbcon/fbdev.
    • Integrasi perubahan yang berkelanjutan untuk mendukung chip Apple M1. Menerapkan kemampuan untuk menggunakan driver simpledrm pada sistem dengan chip Apple M1 untuk output melalui framebuffer yang disediakan oleh firmware.
    • Menambahkan dukungan untuk ARM SoΠ‘, perangkat 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 di router Wi-fi), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEAr320s, NXP i.MX8 ULP8 , Aspeed AST2500/AST2600, Engicam i.Core STM32MP1, Allwinner Tanix TX6, Facebook Bletchley BMC, Goramo MultiLink, Titik Akses JOZ, Y Soft IOTA Crux/Crux+, t6000/t6001 MacBook Pro 14/16.
    • Menambahkan dukungan untuk prosesor ARM Cortex-M55 dan Cortex-M33.
    • Menambahkan dukungan untuk perangkat berdasarkan CPU MIPS: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Menambahkan dukungan untuk SoC StarFive JH7100 berdasarkan arsitektur RISC-V.
    • Menambahkan driver lenovo-yogabook-wmi untuk mengontrol lampu latar keyboard dan mengakses berbagai sensor di Lenovo Yoga Book.
    • Menambahkan driver asus_wmi_sensors untuk mengakses sensor yang digunakan pada motherboard Asus X370, X470, B450, B550 dan X399 berbasis prosesor AMD Ryzen.
    • Menambahkan driver x86-android-tablets untuk PC tablet berbasis x86 yang dikirimkan bersama platform Android.
    • Menambahkan dukungan untuk layar sentuh TrekStor SurfTab duo W1 dan pena elektronik untuk tablet Chuwi Hi10 Plus dan Pro.
    • Driver untuk SoC Tegra 20/30 telah menambahkan dukungan untuk manajemen daya dan tegangan. Memungkinkan booting pada perangkat SoC Tegra 32-bit lama seperti ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101, dan Pad TF300TG.
    • Menambahkan driver untuk komputer industri Siemens.
    • Dukungan tambahan untuk Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA dan panel LCD Team Source Display TST043015CMHX.
    • Menambahkan dukungan untuk sistem suara dan codec AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, sistem Intel yang menggunakan NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320ADC3xxx. Masalah dengan audio HD Tegra194 telah teratasi. Menambahkan dukungan HDA untuk codec CS35L41. Peningkatan dukungan untuk sistem suara untuk laptop Lenovo dan HP, serta motherboard Gigabyte.

Sumber: opennet.ru

Tambah komentar