Rilis kernel Linux 5.1

Sawise rong sasi pembangunan, Linus Torvalds ngenalake release kernel Linux 5.1. Antarane owah-owahan paling kacathet: antarmuka anyar kanggo bedo I / O io_uring, kemampuan kanggo nggunakake NVDIMM minangka RAM, support kanggo memori virtual sambungan ing Nouveau, support kanggo ngawasi keukur saka sistem file gedhe banget liwat fanotify, kemampuan kanggo ngatur kompresi Zstd. tingkat ing Btrfs, handler TEO cpuidle anyar, implementasine saka sistem telpon kanggo ngatasi masalah 2038, kemampuan kanggo boot saka piranti-mapper piranti tanpa initramfs, modul SafeSetID LSM, support kanggo patches urip gabungan.

Utama inovasi:

  • Subsistem disk, I/O lan sistem file
    • Dilaksanakake antarmuka anyar kanggo Asynchronous I/O - io_uring, sing misuwur amarga dhukungan kanggo polling I / O lan kemampuan kanggo nggarap utawa tanpa buffering. Ayo kita kelingan sing sadurunge ngajokaken asynchronous I / O mekanisme "aio" ora ndhukung buffered I / O, mung bisa ing mode O_DIRECT (tanpa buffering lan bypassing cache), wis masalah karo ngunci amarga nunggu kasedhiyan metadata, lan dipamerake biaya overheads gedhe amarga nyalin data ing memori.

      Ing API
      pangembang io_uring nyoba ngilangi kekurangan antarmuka aio lawas. Miturut produktivitas io_uring cedhak banget SPDK lan luwih maju tinimbang libaio nalika nggarap polling diaktifake. Perpustakaan wis disiapake kanggo nggunakake io_uring ing aplikasi pungkasan sing mlaku ing ruang pangguna libur, sing nyedhiyakake kerangka tingkat dhuwur liwat antarmuka kernel;

    • Ing mekanisme nelusuri acara ing FS fanotify () ditambahake dhukungan kanggo nelusuri superblock lan kahanan owah-owahan struktur langsung (acara nggawe, mbusak lan mindhah direktori). Fitur sing disedhiyakake mbantu ngatasi masalah skalabilitas sing muncul nalika nggawe pelacakan pangowahan rekursif ing sistem file sing gedhe banget nggunakake mekanisme inotify (owah-owahan langsung sadurunge mung bisa dilacak liwat inotify, nanging
      kinerja ing kahanan nelusuri rekursif saka direktori bersarang gedhe ninggalake akeh sing dikarepake). Saiki pemantauan kasebut bisa ditindakake kanthi efektif liwat fanotify;

    • Ing sistem file Btrfs ditambahake kemampuan kanggo ngatur tingkat komprèsi kanggo algoritma zstd, sing bisa dianggep minangka kompromi optimal antarane lz4 cepet nanging ora efektif lan xz komprèsi alon nanging apik. Kanthi analogi karo carane sadurunge bisa nyetel tingkat komprèsi nalika nggunakake zlib, dhukungan kanggo "-o compress = zstd: level" opsi gunung wis ditambahake kanggo zstd. Sajrone tes, tingkat pertama minimal nyedhiyakake kompresi data kaping 2.658 kanthi kecepatan kompresi 438.47 MB ​​/ s, kacepetan dekompresi 910.51 MB / s lan konsumsi memori 780 MB, lan level maksimal 15 kasedhiya kaping 3.126, nanging kanthi kompresi. kacepetan 37.30 MB / s. unpacking 878.84 MB / s lan konsumsi memori 2547 MB;
    • Ditambahake kemampuan kanggo boot saka sistem file dumunung ing piranti-mapper piranti, tanpa nggunakake initramfs. Miwiti karo release kernel saiki, piranti-mapper piranti bisa langsung digunakake nalika proses boot, contone, minangka partisi karo sistem file ROOT. Pemisahan diatur nggunakake parameter boot "dm-mod.create". Modul piranti-mapper diijini kanggo loading kalebu: "crypt", "tundha", "linear", "snapshot-asal" lan "verity";
    • Gendéra F2FS_NOCOW_FL wis ditambahake menyang sistem file F2FS sing ngarahake Flash drive, sing ngidini sampeyan mateni mode copy-on-write kanggo file tartamtu;
    • Sistem file dibusak saka kernel Exofs, yaiku varian saka ext2, diadaptasi kanggo nggarap panyimpenan obyek OSD (Panyimpenan Berbasis Objek). Dhukungan kanggo protokol SCSI kanggo piranti panyimpenan obyek kasebut uga wis dibusak;
  • Virtualisasi lan Keamanan
    • Added PR_SPEC_DISABLE_NOEXEC pilihan kanggo prctl () kanggo kontrol eksekusi spekulatif instruksi kanggo proses sing dipilih. Opsi anyar ngidini sampeyan mateni eksekusi spekulatif kanthi selektif kanggo proses sing bisa diserang dening serangan Spectre. Kunci tahan nganti telpon pisanan kanggo exec ();
    • Modul LSM dileksanakake SafeSetID, sing ngidini layanan sistem ngatur pangguna kanthi aman tanpa nambah hak istimewa (CAP_SETUID) lan tanpa entuk hak istimewa root. Hak istimewa diwènèhaké kanthi nemtokake aturan ing securityfs adhedhasar daftar putih saka bindings sah (ing wangun "UID1:UID2");
    • Nambahake owah-owahan tingkat rendah sing dibutuhake kanggo ngemot modul keamanan berbasis tumpukan (LSM). Ngenalake opsi boot kernel "lsm" kanggo ngontrol modul sing dimuat lan ing urutan apa;
    • Dhukungan kanggo ruang jeneng berkas wis ditambahake menyang subsistem audit;
    • Digedhekake Kapabilitas structleak plugin GCC, sing ngijini sampeyan kanggo mblokir potensial bocor isi memori Initialization saka sembarang variabel sing digunakake ing kode liwat akses referensi ing tumpukan kasedhiya;
  • Subsistem jaringan
    • Kanggo soket dileksanakake pilihan anyar "SO_BINDTOIFINDEX" padha karo
      "SO_BINDTODEVICE", nanging njupuk minangka argumen nomer indeks antarmuka jaringan tinimbang jeneng antarmuka;

    • Tumpukan mac80211 wis nambahake kemampuan kanggo nemtokake sawetara BSSID (alamat MAC) menyang piranti siji. Minangka bagéan saka proyek kanggo ngoptimalake kinerja WiFi, tumpukan mac80211 wis nambah accounting airtime lan kemampuan kanggo nyebarke airtime antarane sawetara stasiun (nalika operasi ing mode titik akses, allocating kurang wektu transmisi kanggo alon stasiun nirkabel, tinimbang nyebarke wektu roto-roto antarane kabeh. stasiun);
    • Tambah mekanisme "kesehatan devlink", sing menehi kabar nalika ana masalah karo antarmuka jaringan;
  • Layanan memori lan sistem
    • Dilaksanakake pangiriman sinyal aman sing ngidini kanggo PID digunakake maneh. Contone, nalika nelpon mateni sadurunge, kahanan bisa njedhul ngendi, sanalika sawise ngirim sinyal, target PID bisa dibebaske amarga proses mandap lan dikuwasani dening proses liyane, lan sinyal bakal mungkasi munggah menyang proses liyane. Kanggo ngilangi kahanan kaya mengkono, telpon sistem anyar pidfd_send_signal wis ditambahake, sing nggunakake deskriptor file saka /proc/pid kanggo njamin proses stabil. Sanajan PID digunakake maneh sajrone pangolahan panggilan sistem, deskriptor file ora bakal diganti lan bisa digunakake kanthi aman kanggo ngirim sinyal menyang proses kasebut;
    • Ditambahake kemampuan kanggo nggunakake piranti memori permanen (persistent-memori, contone NVDIMMs) minangka RAM. Nganti saiki, kernel ndhukung piranti kayata piranti panyimpenan, nanging saiki uga bisa digunakake minangka RAM tambahan. Fitur kasebut dileksanakake kanggo nanggepi kepinginan pangguna sing gelem ngetrapake kinerja lan pengin nggunakake API manajemen memori kernel Linux asli tinimbang nggunakake sistem alokasi memori ruang pangguna sing ana ing ndhuwur mmap kanggo file dax. ;
    • Nambahake panangan nganggur CPU anyar (cpuidle, mutusake kapan CPU bisa dilebokake ing mode hemat daya sing jero; mode sing luwih jero, luwih akeh tabungan, nanging uga butuh wektu sing suwe kanggo metu saka mode kasebut) - TEO (Gubernur Berorientasi Acara Timer ). Nganti saiki, loro panangan cpuidle wis diusulake - "menu" lan "tangga", beda-beda ing heuristik. Handler "menu" wis ngerti masalah karo nggawe pancasan heuristik, kanggo ngilangke kang wis mutusaké kanggo nyiyapake handler anyar. TEO dipanggonke minangka alternatif kanggo handler "menu", saéngga kinerja sing luwih dhuwur nalika njaga tingkat konsumsi daya sing padha.
      Sampeyan bisa ngaktifake handler anyar nggunakake parameter boot "cpuidle.governor = teo";

    • Minangka bagéan saka karya kanggo ngilangke masalah 2038, disebabake overflow saka jinis time_t 32-dicokot, kalebu telpon sistem sing nawakake counter wektu 32-dicokot kanggo arsitektur 64-dicokot. Akibaté, struktur time_t 64-bit saiki bisa digunakake ing kabeh arsitektur. Owah-owahan sing padha uga wis ditindakake ing subsistem jaringan kanggo opsi wektu soket jaringan;
    • Menyang sistem patching panas kanggo inti (patching langsung) ditambahake Fitur "Ganti Atom" kanggo ngetrapake serangkaian owah-owahan ing sawijining fungsi kanthi atom. Fitur iki ngidini sampeyan nyebarake patches ringkesan sing nyakup sawetara owah-owahan bebarengan, tinimbang proses aplikasi tataran-tataran saka patch langsung ing urutan sing ditetepake kanthi ketat, sing cukup angel kanggo njaga. Nalika sadurunge saben owah-owahan sakteruse kudu adhedhasar status fungsi sawise owah-owahan pungkasan, saiki bisa kanggo propagate sawetara owah-owahan sing disambungake menyang siji negara wiwitan bebarengan (ie, maintainers bisa njaga siji patch gabungan relatif kanggo kernel dhasar tinimbang. saka chain patch sing gumantung ing siji liyane);
    • Diumumake support deprecated kanggo format file eksekusi a.out lan
      dibusak kode kanggo ngasilaken file inti ing format a.out, kang ing negara nilar. Format a.out wis suwe ora digunakake ing sistem Linux, lan nggawe file a.out wis suwe ora didhukung dening piranti modern ing konfigurasi Linux standar. Kajaba iku, loader kanggo file a.out bisa dileksanakake kabeh ing ruang panganggo;

    • Kemampuan kanggo ngenali lan mbusak kode sing ora digunakake wis ditambahake menyang mekanisme verifikasi program BPF. Kernel uga kalebu patch kanthi dhukungan spinlock kanggo subsistem BPF, nyedhiyakake kapabilitas tambahan kanggo ngatur eksekusi paralel program BPF;
  • Peralatan
    • Ing driver Nouveau ditambahake Dhukungan kanggo manajemen memori heterogen, ngidini CPU lan GPU ngakses area memori sing diselarasake umum. Sistem memori virtual sing dienggo bareng (SVM, memori virtual sing dienggo bareng) dileksanakake ing basis subsistem HMM (Manajemen memori heterogen), sing ngidini panggunaan piranti karo 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. Dhukungan SVM saiki mung diaktifake kanggo GPU kulawarga Pascal, sanajan dhukungan uga kasedhiya kanggo GPU Volta lan Turing. Kajaba iku, ing Nouveau ditambahake ioctl anyar kanggo ngontrol migrasi area memori proses menyang memori GPU;
    • Ing driver Intel DRM kanggo GPU Skylake lan mengko (gen9+) klebu Kanthi gawan, mode fastboot ngilangi owah-owahan mode sing ora perlu nalika boot. Ditambahake новые pengenal piranti adhedhasar microarchitectures Coffelake lan Ice Lake. Kanggo Kripik Coffelake ditambahake Dhukungan GVT (virtualisasi GPU). Kanggo GPU virtual dileksanakake Dhukungan VFIO EDID. Kanggo panel LCD MIPI/DSI ditambahake dhukungan kanggo unsur ACPI / PMIC. Dilaksanakake mode TV anyar 1080p30/50/60 TV;
    • Ditambahake dhukungan kanggo Vega10/20 BACO GPU menyang driver amdgpu. Dileksanakake Vega 10/20 Manajemen daya lan Tabel kontrol adhem Vega 10. Added anyar pengenal piranti PCI kanggo Picasso GPUs. Ditambahake antarmuka kanggo ngatur dependensi sing bisa dijadwal kanggo ngindhari deadlocks;
    • Ditambahake Pembalap DRM/KMS kanggo akselerator layar ARM Komeda (Mali D71);
    • Dhukungan ditambahake kanggo Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 lan panel layar Kingdisplay kd097d04;
    • Dhukungan tambahan kanggo codec audio Rockchip RK3328, Cirrus Logic CS4341 lan CS35L36, MediaTek MT6358, Qualcomm WCD9335 lan Ingenic JZ4725B, uga platform audio Mediatek MT8183;
    • Dhukungan tambahan kanggo pengontrol NAND Flash STMicroelectronics FMC2, Amlogic Meson;
    • Dhukungan akselerator ditambahake kanggo sistem hardware Habana AI;
    • Dhukungan ditambahake kanggo pengontrol Ethernet gigabit NXP ENETC lan antarmuka nirkabel MediaTek MT7603E (PCIe) lan MT76x8.

Ing wektu sing padha, Latin American Free Software Foundation kawangun
pilihan rampung free kernel 5.1 - Linux-bebas 5.1-gnu, dibusak saka perangkat kukuh lan driver unsur ngemot non-free komponen utawa kode bagean, orane katrangan diwatesi dening Produsèn. Ing release anyar, loading blob dipatèni ing driver mt7603 lan goya. Kode reresik blob sing dianyari ing driver lan subsistem wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifix, btmrvl, btmtk lan touchscreen_dmi. Reresik blob ing loader firmware lantiq xrx200 wis mandheg amarga dibusak saka kernel.

Source: opennet.ru

Add a comment