Kernel Linux 5.14

Kernel Linux 5.14

Sanggeus dua bulan pangwangunan, Linus Torvalds ngenalkeun ngaleupaskeun kernel Linux Ubuntu 5.14. Diantara parobahan paling kasohor: quotactl_fd anyar () sarta memfd_secret () nelepon sistem, ngaleupaskeun ide jeung supir atah, I anyar / O controller prioritas pikeun cgroup, modeu scheduling tugas SCHED_CORE, infrastruktur pikeun nyieun diverifikasi BPF program loaders.

Versi anyar kalebet 15883 perbaikan tina 2002 pamekar, ukuran patch 69 MB (parobahan anu kapangaruhan 12580 file, 861501 garis kode ditambah, 321654 garis dihapus). Sakitar 47% tina sadaya parobihan anu diwanohkeun dina 5.14 aya hubunganana sareng supir alat, sakitar 14% parobihan aya hubunganana sareng pembaruan kode khusus pikeun arsitéktur hardware, 13% aya hubunganana sareng tumpukan jejaring, 3% aya hubunganana sareng sistem file, sareng 3% aya hubunganana sareng subsistem kernel internal.

utama inovasi:

  • subsistem disk, input/output jeung sistem file:
    • pikeun cgroup dilaksanakeun I anyar / O prioritas controller - rq-qos, nu bisa ngadalikeun prioritas processing requests pikeun meungpeuk alat dihasilkeun ku anggota unggal cgroup. rojongan controller prioritas anyar geus ditambahkeun kana mq-deadline I / O scheduler;
    • dina sistem file ext4 dilaksanakeun paréntah ioctl anyar EXT4_IOC_CHECKPOINT, anu maksakeun sadaya transaksi anu ditangguhkeun tina log sareng panyangga anu aya hubunganana kana disk, sareng nimpa ogé daérah anu dianggo ku panyimpen log. Parobihan ieu disiapkeun salaku bagian tina inisiatif pikeun nyegah bocor inpormasi tina sistem file;
    • dina Btrfs ngenalkeun Optimasi kinerja: Ku ngaleungitkeun logging anu teu dipikabutuh pikeun atribut anu diperpanjang salami palaksanaan fsync, kinerja operasi intensif kalayan atribut anu diperpanjang ningkat dugi ka 17%. Salaku tambahan, nalika ngalakukeun operasi motong anu henteu mangaruhan extents, sinkronisasi pinuh ditumpurkeun, anu ngirangan waktos operasi ku 12%. Setelan geus ditambahkeun kana sysfs pikeun ngawatesan rubakpita I / O nalika mariksa FS. Nambahkeun sauran ioctl pikeun ngabatalkeun pangaturan ukuran sareng ngahapus operasi alat;
    • dina XFS didamel deui palaksanaan cache panyangga, nu ditransferkeun ka alokasi kaca memori dina modeu bets. Ningkatkeun efisiensi cache;
    • F2FS ditambahkeun pilihan pikeun digawé dina modeu baca-hijina tur dilaksanakeun hiji modeu blok cache dikomprés (compress_cache) pikeun ngaronjatkeun kinerja dibaca acak. Rojongan geus dilaksanakeun pikeun compressing file dipetakeun kana mémori maké mmap () operasi. Pikeun selektif nganonaktipkeun komprési file ku topeng, a anyar Gunung pilihan nocompress geus diajukeun;
    • karya geus dipigawé dina supir exFAT pikeun ngaronjatkeun kasaluyuan jeung neundeun sababaraha kaméra digital;
    • ditambahkeun panggero sistem quotactl_fd(), nu ngidinan Anjeun pikeun ngatur kuota teu ngaliwatan file alat husus, tapi ku nangtukeun file descriptor pakait sareng sistem file nu kuota diterapkeun;
    • Supir heubeul pikeun alat blok jeung panganteur IDE geus dihapus tina kernel, aranjeunna geus lila diganti ku subsistem libata. Rojongan pikeun alat-alat anu lami parantos dipikagaduh sacara lengkep, parobihan ngan ukur ngeunaan kamampuan ngagunakeun supir lami, nalika nganggo drive anu disebut / dev / hd *, sareng sanés / dev / sd *;
    • Supir "atah" geus dihapus tina kernel, nyadiakeun aksés unbuffered pikeun meungpeuk alat ngaliwatan / dev / panganteur atah. Fungsionalitas ieu parantos lami dilaksanakeun dina aplikasi nganggo bandéra O_DIRECT;
  • jasa mémori sareng sistem:
    • mode scheduling anyar geus dilaksanakeun dina scheduler tugas SCHED_CORE, nu ngidinan Anjeun pikeun ngadalikeun prosés nu bisa ngajalankeun babarengan dina inti CPU sarua. Tiap prosés bisa ditugaskeun a identifier cookie nu ngahartikeun wengkuan kapercayaan antara prosés (contona, milik pamaké atawa wadahna sarua). Nalika ngatur palaksanaan kode, scheduler nu bisa mastikeun yén hiji inti CPU dibagikeun ngan antara prosés pakait sareng nu boga sarua, nu bisa dipaké pikeun meungpeuk sababaraha serangan Spectre ku nyegah tugas dipercaya jeung teu dipercaya tina ngajalankeun on SMT (Hyper Threading) thread sarua. ;
    • pikeun mékanisme cgroup, rojongan pikeun operasi maéhan geus dilaksanakeun, nu ngidinan Anjeun pikeun maéhan sakabéh prosés pakait sareng grup sakaligus (ngirim SIGKILL) ku nulis "1" kana file maya cgroup.kill;
    • 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 hiji instruksi atom, data crosses dua garis cache CPU. Pameungpeuk sapertos kitu nyababkeun panurunan anu signifikan dina pagelaran, ku kituna sateuacana tiasa sacara paksa ngeureunkeun aplikasi anu nyababkeun blocking. Pelepasan anyar nambihan parameter garis paréntah kernel "split_lock_detect = ratelimit: N", anu ngamungkinkeun anjeun pikeun nangtukeun wates sistem-lebar dina laju operasi ngonci per detik, saatos ngalangkungan prosés naon waé anu janten sumber konci pamisah. kapaksa eureun pikeun 20 mdet tinimbang terminating;
    • The cgroup rubakpita controller CFS (CFS rubakpita controller), nu nangtukeun sabaraha waktos processor bisa disadiakeun pikeun tiap cgroup, mibanda kamampuhan pikeun nangtukeun wates diwatesan ku lilana tina aksi, nu ngamungkinkeun pangaturan hadé tina beban latency-sénsitip. Contona, nyetel cpu.cfs_quota_us ka 50000 jeung cpu.cfs_period_us ka 100000 bakal ngidinan grup prosés runtah 100ms waktu CPU unggal 50ms;
    • ditambahkeun infrastruktur awal pikeun nyieun loaders program BPF, nu salajengna bakal ngidinan download ngan program BPF ditandatanganan ku konci digital dipercaya;
    • ditambahkeun operasi futex anyar FUTEX_LOCK_PI2, nu ngagunakeun timer monotonik keur ngitung timeout, nu nyokot kana akun waktos spent sistem dina mode sare;
    • pikeun arsitéktur RISC-V, pangrojong pikeun halaman mémori ageung (Transparent Huge-Pages) sareng kamampuan ngagunakeun KFENCE pikeun ngaidentipikasi kasalahan nalika damel sareng mémori;
    • kana madvise () Sistim panggero, nu nyadiakeun sarana pikeun ngaoptimalkeun manajemén memori prosés, ditambahkeun Bandéra MADV_POPULATE_READ sareng MADV_POPULATE_WRITE pikeun ngahasilkeun "halaman kasalahan" dina sadaya halaman mémori anu dipetakeun pikeun operasi maca atanapi nyerat, tanpa ngalakukeun maca atanapi nyerat anu leres (prefault). Pamakéan bandéra tiasa mangpaat pikeun ngirangan telat dina palaksanaan program, hatur nuhun kana palaksanaan proaktif panangan "halaman kasalahan" pikeun sadaya halaman anu henteu ditempatkeun sakaligus, tanpa ngantosan aksés anu saleresna ka aranjeunna;
    • dina sistem uji unit kunit ditambahkeun rojongan pikeun ngajalankeun tés di lingkungan QEMU;
    • tracers anyar ditambahkeun: "osnoise" pikeun ngalacak telat aplikasi anu disababkeun ku panangan interupsi, sareng " timerlat " pikeun nampilkeun inpormasi lengkep ngeunaan telat nalika hudang tina sinyal timer;
  • virtualisasi sareng kaamanan:
    • ditambihan panggero sistem memfd_secret(), anu ngamungkinkeun anjeun nyiptakeun daérah mémori pribadi dina rohangan alamat anu terasing, ngan ukur katingali ku prosés anu gaduh, henteu ditingali dina prosés anu sanés sareng henteu langsung diaksés ku kernel;
    • dina sistem nyaring panggero Sistim seccomp, nalika mindahkeun konci pawang kana spasi pamaké, kasebut nyaéta dimungkinkeun pikeun ngagunakeun hiji operasi atom pikeun nyieun file descriptor pikeun tugas terasing sarta balik deui nalika ngolah panggero sistem. Operasi diusulkeun solves masalah kalayan gangguan pawang dina rohangan pangguna nalika sinyal sumping;
    • ditambihan mékanisme anyar pikeun ngatur sumberdaya ngawatesan dina ngaranspasi ID pamaké, nu ngabeungkeut counters rlimit individu ka pamaké dina "spasi pamaké". Parobahan ngarengsekeun masalah ku ngagunakeun counters sumberdaya umum nalika hiji pamaké ngajalankeun prosés dina peti béda;
    • hypervisor KVM pikeun sistem ARM64 geus ditambahkeun kamampuhan pikeun ngagunakeun MTE (MemTag, Memory Tagging Extension) extension dina sistem tamu, nu ngidinan Anjeun pikeun meungkeut tag ka unggal operasi alokasi memori tur ngatur mariksa pamakéan bener tina pointers pikeun meungpeuk eksploitasi tina. vulnerabilities disababkeun ku aksés geus dibébaskeun blok memori, overflows buffers, aksés saméméh initialization sarta pamakéan luar konteks ayeuna;
    • Auténtikasi Pointer anu disayogikeun ku platform ARM64 ayeuna tiasa dikonpigurasi sacara misah pikeun kernel sareng rohangan pangguna. téhnologi nu ngidinan Anjeun pikeun ngagunakeun parentah ARM64 husus pikeun pariksa alamat balik ngagunakeun tanda tangan digital nu disimpen dina bit luhur henteu kapake tina pointer sorangan;
    • dina pamaké-mode Linux ditambahkeun rojongan pikeun pamakéan drivers pikeun alat PCI ku beus PCI virtual, dilaksanakeun ku supir PCI-leuwih-virtio;
    • pikeun sistem x86, ditambahkeun rojongan pikeun alat paravirtualized virtio-iommu, nu ngidinan Anjeun pikeun ngirim requests IOMMU, kayaning ATTACH, DETACH, PETA jeung UNMAP, ngaliwatan angkutan virtio tanpa emulating tabel kaca memori;
    • Pikeun Intel CPUs, ti kulawarga Skylake ka Coffee Lake, pamakéan Intel TSX (Transactional Synchronization Extensions), nu nyadiakeun parabot pikeun ngaronjatkeun kinerja aplikasi multi-threaded ku dinamis ngaleungitkeun operasi sinkronisasi perlu, ditumpurkeun sacara standar. Ekstensi ditumpurkeun kusabab kamungkinan serangan Zombieload, Ngamanipulasi leakage inpormasi ngaliwatan saluran pihak katilu anu lumangsung salila operasi mékanisme pikeun gangguan Asynchronous operasi (TAA, TSX Asynchronous Abort);
  • subsistem jaringan:
    • integrasi terus kana inti MPTCP (MultiPath TCP), extension tina protokol TCP pikeun pangatur operasi sambungan TCP jeung pangiriman pakét sakaligus sapanjang sababaraha ruteu ngaliwatan interfaces jaringan béda pakait sareng alamat IP béda. Dina masalah anyar ditambihan mékanisme pikeun nyetel kawijakan hashing lalulintas sorangan pikeun IPv4 jeung IPv6 (multipath kawijakan hash), sahingga mungkin tina spasi pamaké pikeun nangtukeun mana widang dina pakét, kaasup encapsulated, bakal dipaké nalika ngitung hash nu nangtukeun pilihan jalur. pikeun pakét;
    • rojongan stop kontak geus ditambahkeun kana virtio angkutan maya SOCK_SEQPACKET (transmisi datagrams anu teratur sareng dipercaya);
    • Kamampuhan mékanisme stop kontak SO_REUSEPORT geus dimekarkeun, anu ngamungkinkeun sababaraha sockets déngékeun nyambung ka hiji port sakaligus pikeun nampa sambungan jeung distribusi requests asup sakaligus sakuliah sadaya stop kontak disambungkeun via SO_REUSEPORT, nu simplifies kreasi aplikasi multi-threaded server. . Dina versi anyar ditambahkeun hartosna pikeun nransferkeun kontrol ka stop kontak anu sanés upami gagal nalika ngolah pamundut ku stop kontak anu dipilih (ngarengsekeun masalah leungitna sambungan individu nalika ngamimitian deui jasa);
  • parabot:
    • dina supir amdgpu dilaksanakeun rojongan pikeun AMD Radeon RX 6000 runtuyan GPUs anyar, codenamed "Beige Goby" (Navi 24) jeung "Yellow Carp", kitu ogé ningkat rojongan pikeun Aldebaran GPU (gfx90a) jeung Van Gogh APU. Ditambahkeun kamampuan pikeun sakaligus damel sareng sababaraha panel eDP. Pikeun APU Renoir, dukungan pikeun damel sareng panyangga énkripsi dina mémori pidéo (TMZ, Zona Mémori Dipercanten) parantos dilaksanakeun. Ditambahkeun dukungan pikeun kartu grafik hot-unplug. Pikeun Radeon RX 6000 (Navi 2x) GPUs sarta AMD GPUs heubeul, rojongan pikeun ASPM (Active State Power Management) mékanisme hemat daya diaktipkeun sacara standar, nu saméméhna diaktipkeun ngan pikeun Navi 1x, Vega na Polaris GPUs;
    • pikeun chip AMD, rojongan pikeun memori virtual dibagikeun (SVM, memori virtual dibagikeun) geus ditambahkeun dumasar kana subsistem HMM (manajemén memori hétérogén), nu ngidinan pamakéan alat kalawan Unit manajemén memori sorangan (MMU, Unit manajemén memori), nu bisa ngakses memori utama. Kaasup ngagunakeun HMM, anjeun tiasa ngatur spasi alamat dibagikeun antara GPU na CPU, nu GPU bisa ngakses mémori utama prosés;
    • ditambahkeun rojongan téhnologi awal AMD Smart Shift, nu dinamis ngarobah parameter konsumsi kakuatan tina CPU na GPU on laptop kalawan chipset sarta kartu grafik AMD pikeun naekeun kinerja nalika kaulinan, ngedit video tur rendering 3D;
    • dina supir i915 pikeun kartu vidéo Intel kalebet rojongan pikeun chip Intel Alderlake P;
    • ditambahkeun drm / supir hyperv pikeun adaptor grafik virtual Hyper-V;
    • ditambihan supir grafik simpledrm anu ngagunakeun EFI-GOP atanapi VESA framebuffer disadiakeun ku firmware UEFI atanapi mios pikeun kaluaran. Tujuan utama supir nyaéta pikeun nyayogikeun kamampuan kaluaran grafis salami tahap awal boot, sateuacan supir DRM lengkep tiasa dianggo. Supir ogé tiasa dianggo salaku solusi samentawis pikeun alat anu henteu acan gaduh supir DRM asli;
    • ditambahkeun rojongan komputer sadaya-dina-hiji Buah prambus Pi 400;
    • Ditambahkeun supir dell-wmi-privasi pikeun ngarojong kaméra jeung mikropon hardware switch kaasup dina laptop Dell;
    • pikeun laptop Lenovo ditambihan panganteur WMI pikeun ngarobah parameter mios via sysfs /sys/class/firmware-atribut/;
    • dilegaan rojongan pikeun alat jeung panganteur USB4;
    • ditambahkeun rojongan pikeun kartu sora na codec AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 sarta Texas Instrumén TAS2505. Ningkatkeun dukungan audio dina laptop HP sareng ASUS. Ditambahkeun patch pikeun ngurangan reureuh samemeh audio mimiti diputer dina alat jeung panganteur USB.

Sumber - opennet.ru.

sumber: linux.org.ru