Rilis kernel Linux 5.14

Sawise rong wulan pangembangan, Linus Torvalds nampilake rilis kernel Linux 5.14. Antarane owah-owahan paling kacathet: anyar quotactl_fd () lan memfd_secret () telpon sistem, aman saka ide lan pembalap mentahan, I anyar / O prioritas controller kanggo cgroup, mode jadwal tugas SCHED_CORE, infrastruktur kanggo nggawe diverifikasi loader program BPF.

Versi anyar kalebu 15883 mbenakake saka 2002 pangembang, ukuran tembelan 69 MB (pangowahan kena 12580 file, 861501 baris kode ditambahake, 321654 baris dibusak). Udakara 47% saka kabeh owah-owahan sing dikenalake ing 5.14 ana gandhengane karo driver piranti, kira-kira 14% owah-owahan ana gandhengane karo nganyari kode khusus kanggo arsitektur hardware, 13% ana gandhengane karo tumpukan jaringan, 3% ana gandhengane karo sistem file, lan 3% ana hubungane karo subsistem kernel internal.

Inovasi utama:

  • Subsistem disk, I/O lan sistem file
    • A anyar I / O prioritization controller wis dipun ginakaken kanggo cgroups, rq-qos, kang bisa ngontrol prioritas Processing panjalukan kanggo mblokir piranti kui dening anggota saben cgroup. Dhukungan pengontrol prioritas anyar wis ditambahake menyang panjadwal I / O deadline mq.
    • Sistem file ext4 ngetrapake perintah ioctl anyar, EXT4_IOC_CHECKPOINT, sing meksa kabeh transaksi sing ditundha saka jurnal lan buffer sing gegandhengan bakal disiram menyang disk, lan uga nimpa area sing digunakake dening jurnal ing panyimpenan. Owah-owahan kasebut disiapake minangka bagean saka inisiatif kanggo nyegah bocor informasi saka sistem file.
    • Optimisasi kinerja wis digawe kanggo Btrfs: kanthi ngilangi logging atribut sing ditambahi sing ora perlu sajrone eksekusi fsync, kinerja operasi intensif kanthi atribut lengkap wis tambah nganti 17%. Kajaba iku, nalika nindakake operasi trim sing ora mengaruhi ukuran, sinkronisasi lengkap dipateni, sing nyuda wektu operasi nganti 12%. Setelan wis ditambahake menyang sysfs kanggo matesi bandwidth I / O nalika mriksa FS. Nambahake panggilan ioctl kanggo mbatalake ukuran lan mbusak operasi piranti.
    • Ing XFS, implementasine saka cache buffer wis dirancang maneh, kang wis diuripake kanggo allocating kaca memori ing mode kumpulan. Ngapikake efisiensi cache.
    • F2FS nambah opsi kanggo operate ing mode mung diwaca lan ngleksanakake mode cache pemblokiran compressed (compress_cache) kanggo nambah kinerja maca acak. Dhukungan wis dipun ginakaken kanggo compressing file dipetakan menyang memori nggunakake mmap () operasi. Kanggo mateni kompresi file kanthi selektif adhedhasar topeng, pilihan nocompress anyar wis diusulake.
    • Karya wis rampung ing driver exFAT kanggo nambah kompatibilitas karo sawetara panyimpenan kamera digital.
    • Added quotactl_fd () sistem telpon, sing ngijini sampeyan kanggo ngatur kuota ora liwat file piranti khusus, nanging kanthi nemtokake file descriptor gadhah sistem berkas sing kuota wis Applied.
    • Pembalap lawas kanggo piranti pamblokiran kanthi antarmuka IDE wis dibusak saka kernel; padha wis suwe diganti dening subsistem libata.
    • Driver "mentah" wis dibusak saka kernel, nyedhiyakake akses unbuffered kanggo mblokir piranti liwat antarmuka / dev / raw. Fungsi iki wis suwe dileksanakake ing aplikasi nggunakake flag O_DIRECT.
  • Layanan memori lan sistem
    • Penjadwal tugas ngetrapake mode jadwal anyar, SCHED_CORE, sing ngidini sampeyan ngontrol proses sing bisa ditindakake bebarengan ing inti CPU sing padha. Saben proses bisa diwenehi pengenal cookie sing nemtokake orane katrangan saka kapercayan antarane pangolahan (contone, kagungane pangguna utawa wadhah padha). Nalika ngatur eksekusi kode, panjadwal bisa mesthekake yen siji inti CPU mung dienggo bareng ing antarane proses sing ana gandhengane karo pemilik sing padha, sing bisa digunakake kanggo mblokir sawetara serangan Spectre kanthi nyegah tugas sing dipercaya lan ora dipercaya supaya ora bisa mlaku ing benang SMT (Hyper Threading) sing padha. .
    • Kanggo cgroup, dhukungan kanggo operasi mateni wis dileksanakake, sing ngidini sampeyan mateni kabeh proses sing ana gandhengane karo grup kasebut bebarengan (ngirim SIGKILL) kanthi nulis "1" menyang file virtual cgroup.kill.
    • Kapabilitas ditambahi related kanggo nanggepi deteksi kunci pamisah ("kunci pamisah") sing dumadi nalika ngakses data unaaligned ing memori amarga kasunyatan sing nalika nglakokakΓ© instruksi atom, data nyabrang loro garis cache CPU. Pamblokiran kasebut nyebabake penurunan kinerja sing signifikan, saengga sadurunge bisa mungkasi aplikasi sing nyebabake pamblokiran kasebut. Rilis anyar nambahake parameter baris perintah kernel "split_lock_detect = ratelimit: N", sing ngidini sampeyan nemtokake watesan sistem ing tingkat operasi ngunci saben detik, sawise ngluwihi proses apa wae sing wis dadi sumber kunci pamisah. bakal dipeksa mandheg kanggo 20 ms tinimbang mungkasi.
    • Pengontrol bandwidth cgroup CFS (pengontrol bandwidth CFS), sing nemtokake wektu prosesor sing bisa dialokasikan kanggo saben cgroup, ngetrapake kemampuan kanggo nemtokake watesan winates wektu, sing ngidini kanggo ngatur beban kerja sing sensitif latency. Contone, nyetel cpu.cfs_quota_us kanggo 50000 lan cpu.cfs_period_us kanggo 100000 bakal ngidini klompok pangolahan sampah 100ms wektu CPU saben 50ms.
    • Nambahake infrastruktur awal kanggo nggawe loader program BPF, sing bakal ngidini mung mbukak program BPF sing ditandatangani nganggo kunci digital sing dipercaya.
    • Nambahake operasi futex anyar FUTEX_LOCK_PI2, sing nggunakake timer monoton kanggo ngetung wektu entek sing njupuk menyang akun wektu ngginakaken sistem ing mode turu.
    • Kanggo arsitektur RISC-V, dhukungan kanggo kaca memori gedhe (Transparent Huge-Pages) lan kemampuan kanggo nggunakake mekanisme KFENCE kanggo ndeteksi kesalahan nalika nggarap memori dileksanakake.
    • Telpon sistem madvise (), sing menehi sarana kanggo ngoptimalake manajemen memori proses, wis nambahake MADV_POPULATE_READ lan MADV_POPULATE_WRITE panji kanggo generate "kaca fault" ing kabeh kaca memori dipetakan kanggo maca utawa nulis operasi, tanpa nindakake maca utawa nulis nyata. (prefault). Panggunaan gendera bisa migunani kanggo nyuda wektu tundha ing eksekusi program, amarga eksekusi proaktif saka panangan "kaca fault" kanggo kabeh kaca sing ora disedhiyakake bebarengan, tanpa ngenteni akses nyata.
    • Sistem pengujian unit unit wis nambahake dhukungan kanggo tes sing mlaku ing lingkungan QEMU.
    • Tracers anyar wis ditambahake: "osnoise" kanggo trek telat aplikasi disebabake interrupting penanganan, lan "timerlat" kanggo nampilake informasi rinci babagan telat nalika tangi saka sinyal timer.
  • Virtualisasi lan Keamanan
    • Telpon sistem memfd_secret () wis ditambahake kanggo nggawe area memori pribadi ing papan alamat terisolasi, katon mung kanggo proses duwe, ora dibayangke kanggo pangolahan liyane, lan ora langsung diakses kanggo kernel.
    • Ing sistem panyaring panggilan sistem seccomp, nalika mindhah pawang pamblokiran menyang ruang pangguna, bisa nggunakake operasi atom siji kanggo nggawe deskriptor file kanggo tugas terisolasi lan bali nalika ngolah panggilan sistem. Operasi sing diusulake ngatasi masalah ngganggu pawang ing ruang pangguna nalika sinyal teka.
    • Added mekanisme anyar kanggo ngatur watesan sumber ing user ID namespace, kang njiret counters rlimit individu kanggo pangguna ing "usernamespace". Owah-owahan solves masalah karo nggunakake counter sumber umum nalika siji pangguna mbukak pangolahan ing wadhah beda.
    • Hypervisor KVM kanggo sistem ARM64 wis nambahake kemampuan kanggo nggunakake ekstensi MTE (MemTag, Memory Tagging Extension) ing sistem tamu, sing ngidini sampeyan ngiket tag ing saben operasi alokasi memori lan ngatur mriksa panggunaan penunjuk sing bener kanggo mblokir eksploitasi. vulnerabilities disebabake ngakses wis dibebaske pamblokiran memori, overflows buffer, akses sadurunge initialization lan nggunakake njaba konteks saiki.
    • Fasilitas Otentikasi Pointer platform ARM64 saiki bisa dikonfigurasi kanthi kapisah kanggo ruang kernel lan pangguna. Teknologi kasebut ngidini sampeyan nggunakake instruksi ARM64 khusus kanggo verifikasi alamat bali nggunakake tandha digital sing disimpen ing bit ndhuwur sing ora digunakake ing pointer kasebut.
    • User-mode Linux wis nambah support kanggo nggunakake driver kanggo piranti PCI karo bis PCI virtual, dipun ginakaken dening driver PCI-over-virtio.
    • Kanggo sistem x86, nambah dhukungan kanggo piranti paravirtualized virtio-iommu, ngidini panjalukan IOMMU kayata ATTACH, DETACH, MAP lan UNMAP dikirim liwat transportasi virtio tanpa niru tabel kaca memori.
    • Kanggo CPU Intel, saka kulawarga Skylake nganti Coffee Lake, panggunaan Intel TSX (Ekstensi Sinkronisasi Transaksional), sing nyedhiyakake alat kanggo ningkatake kinerja aplikasi multi-Utas kanthi ngilangake operasi sinkronisasi sing ora perlu kanthi dinamis, dipateni kanthi standar. Ekstensi dipateni amarga kemungkinan serangan Zombieload sing ngapusi kebocoran informasi liwat saluran pihak katelu sing kedadeyan sajrone operasi mekanisme TAA (TSX Asynchronous Abort).
  • Subsistem jaringan
    • Integrasi menyang inti saka MPTCP (MultiPath TCP), extension saka protokol TCP kanggo ngatur operasi sambungan TCP karo pangiriman paket bebarengan sawetara rute liwat antarmuka jaringan beda gadhah alamat IP beda. Rilis anyar nambahake mekanisme kanggo nyetel kabijakan hashing lalu lintas dhewe kanggo IPv4 lan IPv6 (kabijakan hash multipath), supaya bisa nemtokake saka papan pangguna sing kolom ing paket, kalebu sing dienkapsulasi, bakal digunakake nalika ngitung hash sing nemtokake pilihan path kanggo paket.
    • Dhukungan kanggo soket SOCK_SEQPACKET (transmisi datagram sing dipesen lan dipercaya) wis ditambahake menyang transportasi virtual virtio.
    • Kapabilitas mekanisme soket SO_REUSEPORT wis ditambahi, sing ngidini sawetara soket ngrungokake bisa nyambung menyang siji port bebarengan kanggo nampa sambungan karo distribusi panjalukan sing mlebu bebarengan ing kabeh soket sing disambungake liwat SO_REUSEPORT, sing nyederhanakake nggawe aplikasi server multi-threaded. . Versi anyar nambahake alat kanggo nransfer kontrol menyang soket liyane yen gagal nalika ngolah panyuwunan dening soket sing dipilih wiwitan (ngrampungake masalah karo kelangan sambungan individu nalika miwiti maneh layanan).
  • Peralatan
    • Pembalap amdgpu nyedhiyakake dhukungan kanggo seri GPU AMD Radeon RX 6000 anyar, kanthi jeneng kode "Beige Goby" (Navi 24) lan "Carp Kuning", uga dhukungan kanggo GPU Aldebaran (gfx90a) lan Van Gogh APU. Nambahake kemampuan kanggo nggarap sawetara panel eDP bebarengan. Kanggo APU Renoir, dhukungan kanggo nggarap buffer sing dienkripsi ing memori video (TMZ, Zona Memori Dipercaya) wis ditindakake. Dhukungan ditambahake kanggo kertu grafis panas-copot. Kanggo GPU Radeon RX 6000 (Navi 2x) lan GPU AMD lawas, dhukungan ASPM (Manajemen Daya Negara Aktif) diaktifake kanthi standar, sing sadurunge mung diaktifake kanggo GPU Navi 1x, Vega lan Polaris.
    • Kanggo Kripik AMD, dhukungan kanggo memori virtual sing dienggo bareng (SVM, memori virtual sing dienggo bareng) wis ditambahake adhedhasar subsistem HMM (Manajemen memori heterogen), sing ngidini panggunaan piranti kanthi unit manajemen memori dhewe (MMU, unit manajemen memori), sing bisa ngakses memori utama. Utamane, nggunakake HMM, sampeyan bisa ngatur papan alamat sing dituduhake ing antarane GPU lan CPU, ing ngendi GPU bisa ngakses memori utama proses kasebut.
    • Nambahake dhukungan awal kanggo teknologi AMD Smart Shift, sing ngganti setelan daya CPU lan GPU kanthi dinamis ing laptop kanthi chipset AMD lan kertu grafis kanggo ngedongkrak kinerja kanggo game, editing video, lan rendering 3D.
    • Pembalap i915 kanggo kertu grafis Intel kalebu dhukungan kanggo chip Intel Alderlake P.
    • Added drm / driver hyperv kanggo adaptor grafis virtual Hyper-V.
    • Ditambahake dhukungan kanggo komputer kabeh-ing-siji Raspberry Pi 400.
    • Added driver dell-wmi-privacy kanggo ndhukung kamera hardware lan ngalih mikropon klebu ing laptop Dell.
    • Kanggo laptop Lenovo, antarmuka WMI wis ditambahake kanggo ngganti setelan BIOS liwat sysfs /sys/class/firmware-attributes/.
    • Dhukungan ditambahi kanggo piranti kanthi antarmuka USB4.
    • Dhukungan tambahan kanggo AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 lan Texas Instruments TAS2505 kertu swara lan codec. Dhukungan audio sing luwih apik ing laptop HP lan ASUS. Nambahake patch kanggo nyuda wektu tundha sadurunge audio wiwit diputer ing piranti USB.

Source: opennet.ru

Add a comment