Rilis kernel Linux 5.7

Sawise rong sasi pembangunan, Linus Torvalds ngenalake release kernel Linux 5.7. Antarane owah-owahan sing paling penting: implementasi anyar saka sistem file exFAT, modul bareudp kanggo nggawe trowongan UDP, proteksi adhedhasar bukti asli pointer kanggo ARM64, kemampuan kanggo masang program BPF menyang panangan LSM, implementasi anyar Curve25519, pamisah- detector kunci, kompatibilitas BPF karo PREEMPT_RT, njabut watesan ing ukuran baris 80-karakter ing kode, njupuk menyang akun pratondho suhu CPU ing panjadwal tugas, kemampuan kanggo nggunakake Klone () kanggo ngasilake pangolahan ing cgroup liyane, pangayoman marang nulis menyang memori nggunakake userfaultfd.

Versi anyar kalebu 15033 ndandani saka 1961 pangembang,
ukuran tembelan - 39 MB (pangowahan kena pengaruh 11590 file, ditambahake 570560 baris kode,
297401 larik dibusak). Udakara 41% kabeh ditampilake ing 5.7
owah-owahan related kanggo driver piranti, kira-kira 16% saka owah-owahan sing
sikap kanggo nganyari kode khusus kanggo arsitektur hardware, 13%
related kanggo tumpukan jaringan, 4% kanggo sistem file lan 4% kanggo internal
subsistem kernel.

Utama inovasi:

  • Subsistem disk, I/O lan sistem file
    • Nambahake implementasi driver exFAT anyar, didegaké adhedhasar basis kode "sdfat" (2.x) saiki sing dikembangake dening Samsung kanggo smartphone Android. Pembalap sing sadurunge ditambahake menyang kernel adhedhasar kode Samsung warisan (versi 1.2.9) lan udakara 10% ing mburi driver anyar ing kinerja. Elinga yen nambah dhukungan exFAT menyang kernel bisa ditindakake sawise Microsoft diterbitake spesifikasi umum lan nggawe paten exFAT kasedhiya kanggo panggunaan bebas royalti ing Linux.
    • Btrfs ngleksanakake printah ioctl anyar () - BTRFS_IOC_SNAP_DESTROY_V2, sing ngijini sampeyan kanggo mbusak subbagean dening pengenal sawijining. Dhukungan lengkap kanggo cloning inline extents kasedhiya. Jumlah TCTerms pembatalan kanggo operasi redistribusi wis ditambahi, kang wis suda ngenteni dawa nalika nglakokaké printah 'balance mbatalake'. Penentuan backlinks menyang extents wis digawe cepet (contone, wektu eksekusi script test wis suda saka jam kanggo sawetara menit). Nambahake kemampuan kanggo masang ukuran file menyang saben inode wit. Skema pamblokiran sing digunakake nalika nulis subpartisi lan nalika ora kalebu NOCOW wis didesain ulang. Efisiensi eksekusi fsync kanggo rentang.
    • XFS wis nambah pamriksa metadata lan fsck kanggo partisi aktif. A perpustakaan wis ngajokaken kanggo mbangun maneh struktur btree, kang ing mangsa bakal digunakake kanggo rework xfs_repair lan ngleksanakake kamungkinan Recovery tanpa unmounting pemisahan.
    • Dhukungan eksperimen kanggo nempatake partisi swap ing panyimpenan SMB3 wis ditambahake menyang CIFS. Dileksanakake ekstensi POSIX kanggo readdir, ditetepake ing SMB3.1.1 specification. Ngapikake kinerja nulis kanggo kaca 64KB nalika cache = mode ketat diaktifake lan protokol versi 2.1+ digunakake.
    • FS EXT4 wis ditransfer saka bmap lan iopoll kanggo nggunakake iomap.
    • F2FS nyedhiyakake dhukungan opsional kanggo kompresi data nggunakake algoritma zstd. Kanthi gawan, algoritma LZ4 digunakake kanggo komprèsi. Nambahake dhukungan kanggo printah "chattr -c commit". Tampilan wektu dipasang diwenehake. Nambahake ioctl F2FS_IOC_GET_COMPRESS_BLOCKS kanggo entuk informasi babagan jumlah blok sing dikompres. Nambahake output data komprèsi liwat statx.
    • Sistem file Ceph nambahake kemampuan kanggo nindakake operasi nggawe lan mbusak file sacara lokal (unlink) tanpa ngenteni respon saka server (makarya ing mode asinkron). Owah-owahan kasebut, umpamane, bisa ningkatake kinerja kanthi signifikan nalika mbukak sarana rsync.
    • Kemampuan kanggo nggunakake virtiofs minangka sistem file tingkat paling dhuwur wis ditambahake menyang OVERLAYFS.
    • Ditulis maneh kode traversal path ing VFS, kode parsing link simbolis wis reworked, lan gunung titik traversal wis manunggal.
    • Ing subsistem scsi kanggo pangguna sing ora duwe hak istimewa diijini eksekusi printah ZBC.
    • Ing dm_writecache dileksanakake kemampuan kanggo mbusak cache mboko sithik adhedhasar parameter max_age, sing nyetel umur maksimum pemblokiran.
    • Ing dm_integrity ditambahake dhukungan kanggo operasi "discard".
    • Ing null_blk ditambahake dhukungan kanggo substitusi kesalahan kanggo simulasi kegagalan sajrone tes.
    • Ditambahake kemampuan kanggo ngirim kabar udev babagan owah-owahan ukuran piranti pamblokiran.
  • Subsistem jaringan
    • Netfilter kalebu ganti, Ngartekno nyepetake pangolahan dhaptar pertandhingan gedhe (nftables sets), sing mbutuhake mriksa kombinasi subnet, port jaringan, protokol lan alamat MAC.
      Optimizations dikenalake menyang modul nft_set_pipapo (PIle PAcket POlicies), sing ngrampungake masalah sing cocog karo isi paket kanthi kisaran negara lapangan sing sewenang-wenang digunakake ing aturan nyaring, kayata kisaran IP lan port jaringan (nft_set_rbtree lan nft_set_hash ngapusi pencocokan interval lan bayangan langsung saka nilai. ). Versi pipapo vektorisasi nggunakake instruksi AVX256 2-bit ing sistem kanthi prosesor AMD Epyc 7402 nuduhake peningkatan kinerja 420% nalika ngurai 30 ewu rekaman kalebu kombinasi port-protokol. Tambah nalika mbandhingake kombinasi subnet lan nomer port nalika parsing 1000 cathetan ana 87% kanggo IPv4 lan 128% kanggo IPv6.

    • Ditambahake modul bareudp, sing ngijini sampeyan kanggo encapsulate macem-macem protokol L3, kayata MPLS, IP lan NSH, menyang trowongan UDP.
    • Integrasi komponen MPTCP (MultiPath TCP), extension saka protokol TCP kanggo ngatur operasi sambungan TCP karo pangiriman paket bebarengan ing sawetara rute liwat antarmuka jaringan beda disambungake menyang alamat IP beda.
    • Ditambahake support kanggo mekanisme akselerasi hardware kanggo encapsulating pigura Ethernet ing 802.11 (Wi-Fi).
    • Nalika mindhah piranti saka siji spasi jeneng jaringan menyang liyane, hak akses lan kepemilikan file sing cocog ing sysfs diatur.
    • Nambahake kemampuan kanggo nggunakake flag SO_BINDTODEVICE kanggo pangguna non-root.
    • Bagian katelu saka patch wis ditampa, ngowahi toolkit ethtool saka ioctl () kanggo nggunakake antarmuka netlink. Antarmuka anyar nggampangake kanggo nambah ekstensi, mbenakake kesalahan, ngidini kabar dikirim nalika owah-owahan negara, simplifies interaksi antarane kernel lan ruang panganggo, lan nyuda nomer dhaptar jeneng sing kudu diselarasake.
    • Ditambahake kemampuan kanggo nggunakake akselerator hardware khusus kanggo nindakake operasi nelusuri sambungan.
    • Ing netfilter ditambahake pancing kanggo nyambungake classifiers saka paket metu (egress), kang nglengkapi pancing sadurunge saiki kanggo paket mlebu (ingress).
  • Virtualisasi lan Keamanan
    • Nambahake implementasi hardware saka otentikasi pointer (Otentikasi Pointer), sing nggunakake instruksi CPU ARM64 khusus kanggo nglindhungi serangan kanthi nggunakake teknik pemrograman berorientasi bali (ROP), ing ngendi panyerang ora nyoba nyelehake kode kasebut ing memori, nanging ngoperasikake instruksi mesin sing wis kasedhiya ing perpustakaan sing dimuat, pungkasane. karo instruksi bali kontrol. Keamanan mudhun kanggo nggunakake tandha digital kanggo verifikasi alamat bali ing tingkat kernel. Tandha kasebut disimpen ing bit ndhuwur sing ora digunakake ing pointer kasebut. Ora kaya implementasine piranti lunak, nggawe lan verifikasi tandha digital ditindakake kanthi nggunakake instruksi CPU khusus.
    • Ditambahake kemampuan kanggo nglindhungi area memori saka nulis nggunakake userfaultfd () telpon sistem, dirancang kanggo nangani kesalahan kaca (akses menyang kaca memori unallocated) ing papan pangguna. Ide iki nggunakake userfaultfd () loro kanggo ndeteksi pelanggaran akses menyang kaca sing ditandhani minangka dilindhungi nulis lan nelpon pawang sing bisa nanggapi upaya nulis kasebut (contone, kanggo nangani owah-owahan sajrone nggawe gambar langsung saka proses sing mlaku, negara. dijupuk nalika mbuwang dumps memori kanggo disk, ngleksanakake memori sambungan, nelusuri owah-owahan ing memori). Fungsionalitas padha karo nggunakake mprotect () magepokan karo handler sinyal SIGSEGV, nanging kerjane noticeably luwih cepet.
    • SELinux wis deprecated parameter "checkreqprot", sing ngijini sampeyan kanggo mateni mriksa pangayoman memori nalika aturan Processing (ngidini nggunakake wilayah memori eksekusi, preduli saka aturan kasebut ing aturan). Symlink Kernfs diijini oleh warisan konteks direktori induk.
    • Komposisi kasebut klebu modul KRSI, sing ngidini sampeyan masang program BPF menyang pancingan LSM ing kernel. Owah-owahan ngidini sampeyan nggawe modul LSM (Linux Security Module) ing wangun program BPF kanggo ngatasi masalah audit lan kontrol akses wajib.
    • Dilaksanakake Ngoptimalake kinerja / dev / acak kanthi nglumpukake nilai CRNG tinimbang nelpon instruksi RNG kanthi individu. Peningkatan kinerja getrandom lan / dev / acak ing sistem ARM64 nyedhiyakake instruksi RNG.
    • Implementasi kurva eliptik Kurva25519 diganti kanggo pilihan saka perpustakaan HACL, kanggo kang diwenehi bukti matematis verifikasi linuwih formal.
    • Ditambahake mekanisme kanggo informasi bab free memori kaca. Nggunakake mekanisme iki, sistem tamu bisa ngirim informasi bab kaca sing ora digunakake maneh kanggo sistem host, lan host bisa njupuk maneh data kaca.
    • Ing vfio/pci ditambahake dhukungan kanggo SR-IOV (Single-Root I/O Virtualization).
  • Layanan memori lan sistem
    • Saka 80 nganti 100 karakter mundhak watesan ing dawa baris maksimum ing teks sumber. Ing wektu sing padha, pangembang isih dianjurake kanggo tetep ing 80 karakter saben baris, nanging iki ora maneh watesan hard. Kajaba iku, ngluwihi wates ukuran baris saiki bakal nyebabake bebaya mbangun mung yen checkpatch diluncurake kanthi pilihan '--strict'. Owah-owahan kasebut bakal ngidini para pangembang ora ngganggu manipulasi karo spasi lan aran luwih bebas nalika aligning kode, uga bakal nyegah garis putus sing berlebihan, ngganggu pangerten kode lan telusuran.
    • Ditambahake dhukungan kanggo mode boot campuran EFI, sing ngidini sampeyan mbukak kernel 64-bit saka firmware 32-bit sing mlaku ing CPU 64-bit tanpa nggunakake bootloader khusus.
    • diaktifake sistem kanggo ngenali lan debugging kunci pamisah ("kunci pamisah"), sing kedadeyan nalika ngakses data sing ora ana ing memori amarga kasunyatane nalika nindakake instruksi atom, data kasebut ngliwati rong garis cache CPU. Pamblokiran kasebut nyebabake kinerja sing signifikan (1000 siklus luwih alon tinimbang operasi atom ing data sing ana ing siji baris cache). Gumantung ing parameter boot "split_lock_detect", kernel bisa ndeteksi kunci kasebut kanthi cepet lan ngetokake bebaya utawa ngirim sinyal SIGBUS menyang aplikasi sing nyebabake kunci kasebut.
    • Penjadwal tugas nyedhiyakake pelacakan sensor suhu (Tekanan Thermal) lan dileksanakake njupuk overheating akun nalika manggonke tugas. Nggunakake statistik sing disedhiyakake, gubernur termal bisa nyetel frekuensi CPU maksimum nalika overheated, lan panjadwal tugas saiki nganggep pangurangan daya komputasi amarga nyuda frekuensi nalika ngjadwalake tugas (sadurunge, panjadwal nanggapi owah-owahan. ing frekuensi karo wektu tundha tartamtu, kanggo sawetara wektu nggawe pancasan adhedhasar asumsi inflated babagan sumber daya komputerisasi kasedhiya).
    • Penjadwal tugas kalebu indikator invarian ranging mbukak, ngijini sampeyan kanggo bener ngira beban, preduli saka frekuensi operasi CPU saiki. Owah-owahan kasebut ngidini sampeyan luwih akurat prédhiksi prilaku tugas ing kahanan owah-owahan dinamis ing voltase lan frekuensi CPU. Contone, tugas sing nggunakake 1/3 saka sumber daya CPU ing 1000 MHz bakal nggunakake 2/3 saka sumber daya nalika frekuensi mudhun kanggo 500 MHz, sing sadurunge nggawe asumsi palsu sing mlaku ing kapasitas lengkap (yaiku, tugas muncul. luwih gedhe kanggo panjadwal mung kanthi nyuda frekuensi, sing nyebabake keputusan sing ora bener ing gubernur cpufreq schedutil).
    • Pembalap Intel P-negara, sing tanggung jawab kanggo milih mode kinerja, wis diuripake kanggo nggunakake jadwale.
    • Kemampuan kanggo nggunakake subsistem BPF nalika kernel mlaku ing wektu nyata (PREEMPT_RT) wis dipun ginakaken. Sadurunge, nalika PREEMPT_RT diaktifake, BPF kudu dipateni.
    • A jinis anyar program BPF wis ditambahake - BPF_MODIFY_RETURN, kang bisa ditempelake menyang fungsi ing kernel lan ngganti nilai bali dening fungsi iki.
    • Ditambahake kesempatan Nggunakake clone3 () telpon sistem kanggo nggawe proses ing cgroup sing beda saka cgroup tiyang sepah, ngidini proses tiyang sepah kanggo aplikasi Watesan lan ngaktifake accounting sanalika sawise spawning proses anyar utawa thread. Contone, manajer layanan bisa langsung nyedhiakke layanan anyar kanggo misahake cgroups, lan pangolahan anyar, nalika diselehake ing "beku" cgroups, bakal langsung mandheg.
    • ing Kbuild ditambahake support kanggo variabel lingkungan "LLVM = 1" kanggo ngalih menyang Clang / LLVM toolkit nalika mbangun kernel. Syarat kanggo versi binutils wis diangkat (2.23).
    • Bagean /sys/kernel/debug/kunit/ wis ditambahake menyang debugfs kanthi asil tes kunit.
    • Nambahake parameter boot kernel pm_debug_messages (analog karo /sys/power/pm_debug_messages), sing ngidini output informasi debug babagan operasi sistem manajemen daya (migunani nalika debugging masalah karo mode hibernasi lan siyaga).
    • Kanggo antarmuka I/O asinkron io_uring dhukungan ditambahake sambatan() и pilihan buffer atom.
    • Ngapikake profil cgroup nggunakake toolkit perf. Sadurunge, perf mung bisa nggawe profil tugas ing cgroup tartamtu lan ora bisa ngerteni cgroup sing saiki dadi sampel. perf saiki nampa informasi cgroup kanggo saben sampel, ngijini sampeyan kanggo profil luwih saka siji cgroup lan aplikasi ngurutake dening
      cgroup ing laporan.

    • cgroupfs, pseudo-FS kanggo ngatur cgroups, wis ditambahaké support kanggo atribut lengkap (xattrs), karo kang, contone, sampeyan bisa ninggalake informasi tambahan kanggo panangan ing ruang panganggo.
    • Ing controller memori cgroup ditambahakelan dhukungan kanggo pangayoman rekursif saka "memory.low" Nilai, kang ngatur jumlah minimal RAM kasedhiya kanggo anggota grup. Nalika masang hirarki cgroup karo "memory_recursiveprot" pilihan, Nilai "memory.low" sing disetel kanggo kelenjar ngisor bakal kanthi otomatis mbagekke kanggo kabeh kelenjar anak.
    • Ditambahake Framework Uacce (Unified/User-space-access-intended Accelerator Framework) kanggo nuduhake alamat virtual (SVA, Shared Virtual Addressing) antarane CPU lan piranti periferal, ngidini akselerator hardware ngakses struktur data ing CPU utama.
  • Arsitektur hardware
    • Kanggo arsitektur ARM, kemampuan kanggo njupuk memori panas ditindakake.
    • Kanggo arsitektur RISC-V, dhukungan kanggo plugging panas lan mbusak CPU (CPU hotplug) wis ditambahake. Kanggo RISC-V 32-bit, eBPF JIT dileksanakake.
    • Kemampuan kanggo nggunakake sistem ARM 32-bit kanggo mbukak lingkungan tamu KVM wis dibusak.
    • Mbusak implementasi NUMA "goblok" kanggo arsitektur s390, sing ora ditemokake kasus panggunaan kanggo entuk perbaikan kinerja.
    • Kanggo ARM64, ditambahaké support kanggo extension AMU (Activity Monitor Unit), ditetepake ing ARMv8.4 lan menehi counter kinerja sing digunakake kanggo ngitung faktor koreksi skala frekuensi ing panjadwal tugas.
  • Peralatan
    • Ditambahake dhukungan kanggo piranti vDPA sing nggunakake saluran exchange data sing tundhuk karo specifications virtio. Piranti vDPA bisa dadi piranti sing disambungake kanthi fisik utawa piranti virtual sing ditiru piranti lunak.
    • Ing subsistem GPIO muncul printah ioctl anyar () kanggo ngawasi owah-owahan, ngijini sampeyan kanggo ngandhani proses bab owah-owahan ing negara sembarang baris GPIO. Minangka conto nggunakake printah anyar disaranake utilitas gpio-watch.
    • Ing driver DRM i915 kanggo kertu video Intel klebu dhukungan standar kanggo chip Tigerlake ("Gen12") lan nambah dhukungan awal kanggo kontrol lampu latar OLED. Dhukungan apik kanggo Ice Lake, Elkhart Lake, Baytrail lan chip Haswell.
    • Ing driver amdgpu ditambahake kemampuan kanggo mbukak perangkat kukuh menyang chip USBC kanggo ASIC. Dhukungan apik kanggo chip AMD Ryzen 4000 "Renoir". Saiki ana dhukungan kanggo ngontrol panel OLED. Diwenehi tampilan status firmware ing debugfs.
    • Kemampuan kanggo nggunakake OpenGL 4 ing sistem tamu wis ditambahake menyang driver DRM vmwgfx kanggo sistem virtualisasi VMware (sadurunge OpenGL 3.3 didhukung).
    • Nambahake tidss driver DRM anyar kanggo sistem tampilan platform TI Keystone.
    • Pembalap tambahan kanggo panel LCD: Feixin K101 IM2BA02, Samsung s6e88a0-ams452ef01, Novatek NT35510, Elida KD35T133, EDT, NewEast Optoelektronik WJFH116008A, Rocktech RK101II01D350CT
    • Kanggo sistem manajemen daya ditambahake dhukungan kanggo platform Intel Jasper Lake (JSL) basis Atom.
    • Dhukungan tambahan kanggo laptop Pinebook Pro adhedhasar Rockchip RK3399, tablet lan smartphone Pine64 PineTab PinePhone adhedhasar Allwinner A64.
    • Dhukungan tambahan kanggo codec lan chip audio anyar:
      Amlogic AIU, Amlogic T9015, Texas Instruments TLV320ADCX140, Realtek RT5682, ALC245, Broadcom BCM63XX I2S, Maxim MAX98360A, Presonus Studio 1810c, MOTU MicroBook IIc.

    • Dhukungan ditambahake kanggo papan lan platform ARM Qualcomm Snapdragon 865 (SM8250), IPQ6018, NXP i.MX8M Plus, Kontron "sl28", 11 opsi papan i.MX6 TechNexion Pico, telung opsi Toradex Colibri anyar, Samsung S7710 Galaxy Xcover 2 adhedhasar ST -Ericsson u8500, DH Electronics DHCOM SoM lan PDK2, Renesas M3ULCB, Hoperun HiHope, Linutronix Testbox v2, PocketBook Touch Lux 3.

Source: opennet.ru

Add a comment