Kernel Linux 5.14

Kernel Linux 5.14

Sawise rong sasi pembangunan, Linus Torvalds ngenalake release 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.

Utama inovasi:

  • subsistem disk, input/output lan sistem file:
    • kanggo cgroup dipun ginakaken anyar I / O prioritas controller - rq-qos, kang bisa ngontrol prioritas panjalukan Processing kanggo mblokir piranti kui dening anggota saben cgroup. Dhukungan pengontrol prioritas anyar wis ditambahake menyang panjadwal mq-deadline I / O;
    • ing sistem file ext4 dileksanakake printah ioctl anyar EXT4_IOC_CHECKPOINT, sing meksa kabeh transaksi sing ditundha saka log lan buffer sing digandhengake menyang disk, lan uga nimpa wilayah sing digunakake ing panyimpenan log. Owah-owahan iki disiapake minangka bagéan saka inisiatif kanggo nyegah bocor informasi saka sistem file;
    • ing btrfs dikenalake Optimisasi kinerja: Kanthi ngilangi logging atribut tambahan sing ora perlu sajrone eksekusi fsync, kinerja operasi intensif kanthi atribut lengkap mundhak 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 telpon ioctl kanggo mbatalake ukuran lan mbusak operasi piranti;
    • ing XFS digarap maneh implementasine saka cache buffer, sing ditransfer menyang alokasi kaca memori ing mode kumpulan. Efisiensi cache sing luwih apik;
    • F2FS nambahake pilihan kanggo bisa 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 kanthi topeng, opsi mount anyar nocompress wis diusulake;
    • karya wis rampung ing driver exFAT kanggo nambah kompatibilitas karo panyimpenan saka sawetara kamera digital;
    • telpon sistem ditambahake quotactl_fd(), sing ngidini sampeyan ngatur kuota ora liwat file piranti khusus, nanging kanthi nemtokake deskriptor file sing digandhengake karo sistem file sing ditrapake kuota;
    • Pembalap lawas kanggo piranti pamblokiran kanthi antarmuka IDE wis dibusak saka kernel; padha wis suwe diganti dening subsistem libata. Dhukungan kanggo piranti lawas wis disimpen kanthi lengkap, owah-owahan mung babagan kemampuan nggunakake driver lawas, nalika nggunakake drive kasebut diarani / dev / hd *, lan ora / dev / sd *;
    • 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;
  • memori lan layanan sistem:
    • mode jadwal anyar wis dipun ginakaken ing panjadwal tugas SCHED_CORE, sing ngidini sampeyan ngontrol proses sing bisa mlaku 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 bisa dipercaya lan ora bisa dipercaya supaya ora bisa mlaku ing benang SMT (Hyper Threading) sing padha. ;
    • kanggo mekanisme cgroup, support kanggo operasi matèni wis dipun ginakaken, sing ngijini sampeyan kanggo matèni kabeh pangolahan gadhah grup bebarengan (ngirim SIGKILL) dening nulis "1" kanggo 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 dadi sumber kunci pamisah bakal. dipeksa mandheg kanggo 20 ms tinimbang mungkasi;
    • Pengontrol bandwidth cgroup CFS (kontroler bandwidth CFS), sing nemtokake wektu prosesor bisa diparengake kanggo saben cgroup, nduweni kemampuan kanggo nemtokake watesan sing diwatesi kanthi wektu tartamtu, sing ngidini angger-angger sing luwih apik babagan beban 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;
    • ditambahake prasarana awal kanggo nggawe loader program BPF, sing bakal ngidini download mung program BPF sing ditandatangani nganggo kunci digital sing bisa dipercaya;
    • ditambahake operasi futex anyar FUTEX_LOCK_PI2, sing nggunakake timer monotoni kanggo ngetung wektu entek, kang 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 KFENCE kanggo ngenali kesalahan nalika nggarap memori;
    • menyang madvise () sistem telpon, kang menehi liya kanggo ngoptimalake Manajemen memori proses, ditambahake MADV_POPULATE_READ lan MADV_POPULATE_WRITE gendéra 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 dialokasikan bebarengan, tanpa ngenteni akses nyata menyang wong-wong mau;
    • ing sistem testing unit kuning ditambahake dhukungan kanggo mbukak tes ing lingkungan QEMU;
    • tracer anyar ditambahake: "osnoise" kanggo nglacak telat aplikasi sing disebabake dening interrupting penanganan, lan " timerlat " kanggo nampilake informasi rinci babagan wektu tundha nalika tangi saka sinyal timer;
  • virtualisasi lan keamanan:
    • ditambahake telpon sistem memfd_secret(), sing ngidini sampeyan nggawe area memori pribadi ing papan alamat sing terisolasi, mung katon kanggo proses pemilik, ora dibayangke ing proses liyane lan ora bisa diakses langsung menyang kernel;
    • ing sistem nyaring panggilan sistem seccomp, nalika mindhah panangan kunci menyang ruang panganggo, bisa nggunakake siji operasi atom kanggo nggawe deskriptor file kanggo tugas terisolasi lan bali nalika proses telpon sistem. Operasi ngajokaken solves masalahipun kanthi gangguan pawang ing ruang pangguna nalika sinyal teka;
    • ditambahake mekanisme anyar kanggo ngatur sumber daya matesi ing user ID namespace, kang njiret counters rlimit individu kanggo pangguna ing "usernamespace". Owah-owahan solves masalah karo nggunakake counters sumber umum nalika siji pangguna mbukak pangolahan ing wadhah beda;
    • hypervisor KVM kanggo sistem ARM64 wis nambahake kemampuan kanggo nggunakake extension MTE (MemTag, Memory Tagging Extension) ing sistem tamu, sing ngijini sampeyan kanggo naleni tag kanggo saben operasi alokasi memori lan ngatur mriksa nggunakake bener penunjuk kanggo mblokir eksploitasi saka kerentanan sing disebabake dening ngakses pamblokiran memori sing wis dibebasake, overflows buffer, akses sadurunge initialization lan nggunakake njaba konteks saiki;
    • Otentikasi Pointer sing diwenehake dening platform ARM64 saiki bisa dikonfigurasi kanthi kapisah kanggo ruang kernel lan pangguna. Teknologi iki ngidini sampeyan nggunakake instruksi ARM64 khusus kanggo verifikasi alamat bali nggunakake teken digital sing disimpen ing bit ndhuwur sing ora digunakake ing pointer dhewe;
    • ing pangguna-mode Linux ditambahake support kanggo nggunakake driver kanggo piranti PCI karo bis PCI virtual, dipun ginakaken dening driver PCI-over-virtio;
    • kanggo sistem x86, ditambahaké support kanggo piranti paravirtualized virtio-iommu, sing ngijini sampeyan kanggo ngirim panjalukan IOMMU, kayata ATTACH, DETACH, MAP lan UNMAP, liwat transportasi virtio tanpa emulating 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, ngapusi kebocoran informasi liwat saluran pihak katelu sing kedadeyan sajrone operasi mekanisme kanggo gangguan operasi bedo (TAA, TSX Asynchronous Abort);
  • sub sistem jaringan:
    • integrasi terus 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. Ing masalah anyar ditambahake mekanisme kanggo nyetel kabijakan hashing lalu lintas dhewe kanggo IPv4 lan IPv6 (kabijakan hash multipath), saéngga saka ruang pangguna bisa nemtokake lapangan ing paket, kalebu sing dienkapsulasi, bakal digunakake nalika ngetung hash sing nemtokake pilihan dalan. kanggo paket;
    • dhukungan soket wis ditambahake menyang virtio transportasi virtual SOCK_SEQPACKET (transmisi datagram sing tertib lan dipercaya);
    • 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. . Ing versi anyar ditambahake tegese kanggo nransfer kontrol menyang soket liyane yen gagal nalika ngolah panjalukan dening soket sing dipilih pisanan (ngrampungake masalah karo kelangan sambungan individu nalika miwiti maneh layanan);
  • peralatan:
    • ing driver amdgpu dileksanakake support kanggo anyar AMD Radeon RX 6000 seri GPUs, codenamed "Beige Goby" (Navi 24) lan "Kuning Carp", uga apik support kanggo Aldebaran GPU (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, ndhukung mekanisme irit daya ASPM (Manajemen Daya Negara Aktif) kanthi standar, sing sadurunge mung diaktifake kanggo GPU Navi 1x, Vega lan Polaris;
    • kanggo Kripik AMD, support kanggo memori virtual sambungan (SVM, memori virtual sambungan) wis ditambahaké adhedhasar HMM (manajemen memori heterogen) subsistem, sing ngidini nggunakake piranti karo Unit Manajemen memori dhewe (MMU, Unit Manajemen memori), sing bisa ngakses memori utama. Kalebu nggunakake HMM, sampeyan bisa ngatur papan alamat sambungan antarane GPU lan CPU, kang GPU bisa ngakses memori utama proses;
    • ditambahaké support teknologi dhisikan AMD Smart Shift, sing dinamis ngganti paramèter konsumsi daya saka CPU lan GPU ing laptop karo chipset lan kertu grafis AMD kanggo ngedongkrak kinerja nalika game, editing video lan rendering 3D;
    • ing driver i915 kanggo kertu video Intel klebu dhukungan kanggo chip Intel Alderlake P;
    • nambah driver drm / hyperv kanggo adaptor grafis virtual Hyper-V;
    • ditambahake driver grafis simpledrm sing nggunakake EFI-GOP utawa VESA framebuffer diwenehake dening perangkat kukuh UEFI utawa BIOS kanggo output. Tujuan utama driver yaiku nyedhiyakake kemampuan output grafis sajrone tahap wiwitan boot, sadurunge driver DRM lengkap bisa digunakake. Pembalap uga bisa digunakake minangka solusi sementara kanggo peralatan sing durung duwe driver DRM asli;
    • ditambahake dhukungan komputer kabeh-ing-siji Raspberry Pi 400;
    • Added driver dell-wmi-privasi kanggo ndhukung kamera lan mikropon hardware ngalih klebu ing laptop Dell;
    • kanggo laptop Lenovo ditambahake Antarmuka WMI kanggo ngganti paramèter BIOS liwat sysfs /sys/class/firmware-atribut/;
    • ditambahi dhukungan kanggo piranti kanthi antarmuka USB4;
    • ditambahake dhukungan kanggo kertu swara lan codec AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 lan Texas Instruments TAS2505. Dhukungan audio sing luwih apik ing laptop HP lan ASUS. Ditambahake patch kanggo nyuda wektu tundha sadurunge audio wiwit muter ing piranti karo antarmuka USB.

Sumber – opennet.ru.

Source: linux.org.ru