Kaluaran kernel Linux 5.1

Sanggeus dua bulan pangwangunan, Linus Torvalds ngenalkeun ngaleupaskeun kernel Linux Ubuntu 5.1. Diantara parobahan paling kasohor: panganteur anyar pikeun Asynchronous I / O io_uring, kamampuhan pikeun ngagunakeun NVDIMM salaku RAM, rojongan pikeun memori virtual dibagikeun di Nouveau, rojongan pikeun ngawaskeun scalable sistem file kacida gedéna via fanotify, kamampuhan pikeun ngonpigurasikeun Zstd komprési. tingkat di Btrfs, a cpuidle TEO Handler anyar, palaksanaan sistem nelepon pikeun ngajawab masalah 2038, kamampuhan pikeun boot ti alat-mapper alat tanpa initramfs, modul SafeSetID LSM, rojongan pikeun patch live digabungkeun.

utama inovasi:

  • Subsistem Disk, I/O sareng Sistem File
    • Dilaksanakeun panganteur anyar pikeun Asynchronous I/O - io_uring, anu kasohor pikeun dukunganna pikeun polling I/O sareng kamampuan damel sareng atanapi henteu nganggo buffering. Hayu urang ngelingan yén Asynchronous saméméhna / mékanisme O "aio" teu ngarojong buffered I / O, ngan bisa beroperasi dina mode O_DIRECT (tanpa buffering na bypassing cache nu), ngalaman masalah sareng ngonci alatan ngantosan kasadiaan metadata, sarta exhibited waragad overheads badag alatan nyalin data dina mémori.

      Dina API
      io_uring pamekar diusahakeun ngaleungitkeun shortcomings tina panganteur aio heubeul. Ku produktivitas io_uring deukeut pisan SPDK sareng sacara signifikan payuneun libaio nalika damel sareng polling diaktipkeun. A perpustakaan geus disiapkeun pikeun ngagunakeun io_uring dina aplikasi tungtung ngajalankeun dina spasi pamaké libur, anu nyayogikeun kerangka tingkat luhur dina antarmuka kernel;

    • Dina mékanisme tracking acara dina fanotify FS () ditambahkeun rojongan pikeun nyukcruk superblock jeung kaayaan robah struktur dirent (kajadian nyieun, mupus jeung mindahkeun directories). Fitur anu disayogikeun ngabantosan ngarengsekeun masalah skalabilitas anu timbul nalika nyiptakeun pelacakan parobahan rekursif dina sistem file anu ageung pisan nganggo mékanisme inotify (parobahan dirent sateuacana tiasa dilacak ngalangkungan inotify, tapi
      kinerja dina kaayaan tracking recursive tina directories nested badag ditinggalkeun loba kahayang). Ayeuna ngawaskeun sapertos tiasa sacara efektif dilakukeun ngaliwatan fanotify;

    • Dina sistem file Btrfs ditambahkeun kamampuhan pikeun ngaluyukeun tingkat komprési pikeun algoritma zstd, nu bisa dianggap salaku kompromi optimal antara lz4 gancang tapi teu epektip jeung slow tapi alus komprési xz. Ku analogi sareng kumaha saacanna tiasa nyetél tingkat komprési nalika nganggo zlib, dukungan pikeun pilihan "-o compress = zstd: level" parantos ditambah pikeun zstd. Salila tés, tingkat kahiji minimum nyadiakeun komprési data ku 2.658 kali kalayan laju komprési 438.47 MB ​​/ s, laju decompression 910.51 MB / s sarta konsumsi memori 780 MB, sarta tingkat maksimum 15 disadiakeun 3.126 kali, tapi kalawan komprési a. speed 37.30 MB / s. unpacking 878.84 MB / s jeung konsumsi memori 2547 MB;
    • Ditambahkeun kamampuhan pikeun boot ti sistem file lokasina dina alat-mapper alat, tanpa ngagunakeun initramfs. Dimimitian ku sékrési kernel ayeuna, alat-alat-mapper tiasa langsung dianggo nalika prosés boot, contona, salaku partisi sareng sistem file akar. partisi ieu ngonpigurasi ngagunakeun parameter boot "dm-mod.create". modul Alat-mapper diwenangkeun pikeun loading ngawengku: "crypt", "reureuh", "linier", "snapshot-asal" jeung "verity";
    • Bandéra F2FS_NOCOW_FL geus ditambahkeun kana sistem file F2FS berorientasi ka Flash drive, nu ngidinan Anjeun pikeun mareuman mode copy-on-write pikeun file dibikeun;
    • Sistem file dipiceun tina kernel Exofs, nu mangrupakeun varian ext2, diadaptasi pikeun gawé bareng OSD (Objék basis Panyimpenan Alat) storages objék. Rojongan pikeun protokol SCSI pikeun alat panyimpen objék sapertos ogé parantos dipupus;
  • Virtualisasi sareng Kaamanan
    • Ditambahkeun PR_SPEC_DISABLE_NOEXEC pilihan pikeun prctl () pikeun ngadalikeun palaksanaan spekulatif parentah pikeun prosés nu dipilih. Pilihan anyar ngamungkinkeun anjeun sacara selektif nganonaktipkeun palaksanaan spekulatif pikeun prosés anu berpotensi diserang ku serangan Spectre. Konci lumangsung nepi ka panggero kahiji ka exec ();
    • Dilaksanakeun modul LSM SafeSetID, anu ngamungkinkeun jasa sistem pikeun ngatur pangguna sacara aman tanpa ningkatkeun hak istimewa (CAP_SETUID) sareng tanpa kéngingkeun hak istimewa akar. Hak husus ditugaskeun ku nangtukeun aturan dina securityfs dumasar kana daptar bodas tina bindings valid (dina formulir "UID1:UID2");
    • Ditambahkeun parobahan-tingkat low diperlukeun pikeun loading basis tumpukan modul kaamanan (LSMs). Ngenalkeun pilihan boot kernel "lsm" pikeun ngontrol modul mana anu dimuat sareng dina urutan naon;
    • Rojongan pikeun spasi ngaran file geus ditambahkeun kana subsistem audit;
    • Dilegaan kamampuhan structleak plugin GCC, nu ngidinan Anjeun pikeun meungpeuk poténsi bocor eusi mémori Initialization tina sagala variabel nu dipaké dina kode ngaliwatan aksés rujukan dina tumpukan disadiakeun;
  • Subsistem jaringan
    • Pikeun sockets dilaksanakeun pilihan anyar "SO_BINDTOIFINDEX" sarupa
      "SO_BINDTODEVICE", tapi nyokot salaku argumen angka indéks panganteur jaringan tinimbang ngaran panganteur;

    • tumpukan mac80211 geus ditambahkeun kamampuhan pikeun napelkeun sababaraha BSSIDs (alamat MAC) ka hiji alat. Salaku bagian tina proyék pikeun ngaoptimalkeun kinerja WiFi, tumpukan mac80211 geus ditambahkeun airtime akuntansi jeung kamampuhan pikeun ngadistribusikaeun airtime diantara sababaraha stasiun (lamun operasi dina modeu titik aksés, allocating kirang waktos pangiriman pikeun ngalambatkeun stasiun nirkabel, tinimbang ngadistribusikaeun waktu merata diantara sakabeh. stasion);
    • mékanisme ditambahkeun "kaséhatan devlink", anu nyayogikeun béwara nalika aya masalah sareng antarmuka jaringan;
  • Mémori sareng jasa sistem
    • Dilaksanakeun pangiriman sinyal aman anu ngamungkinkeun pikeun PID dipake deui. Contona, nalika nelepon maéhan saméméhna, hiji kaayaan bisa timbul dimana, langsung saatos ngirim sinyal, target PID bisa dibébaskeun alatan prosés terminasi sarta dikawasaan ku prosés sejen, sarta sinyal bakal mungkas nepi ka dikirim ka prosés sejen. Pikeun ngaleungitkeun kaayaan kitu, sistem panggero anyar pidfd_send_signal geus ditambahkeun, nu ngagunakeun deskriptor file ti /proc/pid pikeun mastikeun prosés stabil mengikat. Sanaos PID dianggo deui nalika ngolah sauran sistem, deskriptor file moal robih sareng tiasa aman dianggo pikeun ngirim sinyal kana prosés;
    • Ditambahkeun kamampuh ngagunakeun alat memori permanén (persistent-memori, contona NVDIMM) salaku RAM. Nepi ka ayeuna, kernel ngadukung alat sapertos alat panyimpen, tapi ayeuna aranjeunna ogé tiasa dianggo salaku RAM tambahan. Fitur ieu dilaksanakeun pikeun ngaréspon kana kahayang pangguna anu daék nahan lag kinerja sareng hoyong nganggo API manajemén mémori kernel Linux asli tinimbang nganggo sistem alokasi mémori ruang-pamaké anu aya di luhur mmap pikeun dax. file;
    • Ditambahkeun panangan dianggurkeun CPU anyar (cpuidle, mutuskeun iraha CPU tiasa dilebetkeun kana modeu hemat daya jero; modeu anu langkung jero, langkung ageung tabungan, tapi ogé langkung lami pikeun kaluar tina modeu) - TEO (Gubernur Berorientasi Acara Timer ). Nepi ka ayeuna, dua pawang cpuidle parantos diajukeun - "menu" sareng "tangga", béda dina heuristik. The "menu" Handler geus dipikawanoh masalah jeung nyieun kaputusan heuristik, pikeun ngaleungitkeun mana eta ieu mutuskeun pikeun nyiapkeun Handler anyar. TEO diposisikan salaku alternatif pikeun panangan "menu", ngamungkinkeun pikeun pagelaran anu langkung luhur bari ngajaga tingkat konsumsi kakuatan anu sami.
      Anjeun tiasa ngaktipkeun pawang anyar ngagunakeun parameter boot "cpuidle.governor = teo";

    • Salaku bagian tina karya ngaleungitkeun masalah 2038, disababkeun ku ngabahekeun tipe time_t 32-bit, ngawengku panggero sistem nu nawiskeun counters waktos 32-bit pikeun arsitéktur 64-bit. Hasilna, struktur time_t 64-bit ayeuna tiasa dianggo dina sadaya arsitéktur. Parobihan anu sami ogé parantos dilaksanakeun dina subsistem jaringan pikeun pilihan timestamp sockets jaringan;
    • Kana sistem patching panas pikeun inti (live patching) ditambahkeun Fitur "Ganti Atom" pikeun nerapkeun saruntuyan parobihan kana hiji fungsi sacara atom. Fitur ieu ngidinan Anjeun pikeun ngadistribusikaeun patch kasimpulan ngawengku sababaraha parobahan sakaligus, tinimbang prosés aplikasi tahap-demi-tahap tina patch live dina urutan diartikeun ketat, nu rada hese ngajaga. Padahal saméméhna unggal parobahan saterusna kudu dumasar kana kaayaan fungsi sanggeus robah panungtungan, ayeuna mungkin keur propagate sababaraha parobahan dihijikeun ka hiji kaayaan awal sakaligus (ie, maintainers bisa ngajaga hiji patch konsolidasi relatif ka kernel dasar. tina ranté patch anu silih gumantung);
    • Ngumumkeun rojongan deprecated pikeun format file laksana a.out na
      dipupus kode pikeun ngahasilkeun file inti dina format a.out, nu dina kaayaan ditinggalkeun. Format a.out tos lami teu dianggo dina sistem Linux, sareng generasi file a.out parantos lami teu dirojong ku alat modéren dina konfigurasi Linux standar. Sajaba ti, loader pikeun file a.out bisa dilaksanakeun sagemblengna dina spasi pamaké;

    • Kamampuhan pikeun ngaidentipikasi sareng ngahapus kodeu anu henteu dianggo parantos ditambah kana mékanisme verifikasi program BPF. Kernel ogé kalebet patches kalayan dukungan spinlock pikeun subsistem BPF, nyayogikeun kamampuan tambahan pikeun ngatur palaksanaan paralel program BPF;
  • pakakas
    • Dina supir Nouveau ditambahkeun rojongan pikeun manajemén memori hétérogén, sahingga CPU na GPU ngakses wewengkon memori umum nyingkronkeun. Sistim memori virtual dibagikeun (SVM, memori virtual dibagikeun) dilaksanakeun dina dasar HMM (manajemén memori hétérogén) subsistem, nu ngidinan pamakéan alat jeung Unit manajemén memori sorangan (MMU, Unit manajemén memori), nu bisa ngakses. mémori utama. Khususna, nganggo HMM, anjeun tiasa ngatur rohangan alamat anu dibagi antara GPU sareng CPU, dimana GPU tiasa ngaksés mémori utama prosésna. Pangrojong SVM ayeuna ngan ukur diaktipkeun pikeun GPU kulawarga Pascal, sanaos dukungan disayogikeun pikeun Volta sareng Turing GPU ogé. Leuwih ti éta, di Nouveau ditambihan ioctl anyar pikeun ngadalikeun migrasi wewengkon memori prosés ka memori GPU;
    • Dina supir Intel DRM pikeun GPU Skylake sareng engké (gen9+) kaasup Sacara standar, modeu fastboot ngaleungitkeun parobahan modeu anu teu perlu nalika boot. Ditambahkeun новые identifiers alat dumasar kana Coffelake na Ice Lake microarchitectures. Pikeun chip Coffelake ditambahkeun rojongan GVT (virtualisasi GPU). Pikeun GPUs virtual dilaksanakeun rojongan VFIO EDID. Pikeun panel LCD MIPI / DSI ditambahkeun rojongan pikeun ACPI / elemen PMIC. Dilaksanakeun modeu TV anyar 1080p30/50/60 TV;
    • Ditambahkeun dukungan pikeun Vega10/20 BACO GPU ka supir amdgpu. Dilaksanakeun Vega 10/20 manajemén kakuatan sarta tabel kontrol cooler Vega 10. Ditambahkeun identifiers alat PCI anyar pikeun Picasso GPUs. Ditambahkeun panganteur pikeun ngatur kagumantungan schedulable pikeun nyegah deadlocks;
    • Ditambahkeun DRM / supir KMS pikeun akselerator layar ARM Koméda (Mali D71);
    • Ditambahkeun rojongan pikeun Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 sarta panels layar Kingdisplay kd097d04;
    • Ditambahkeun dukungan pikeun Rockchip RK3328, Cirrus Logic CS4341 sareng CS35L36, MediaTek MT6358, Qualcomm WCD9335 sareng Ingenic JZ4725B codec audio, ogé platform audio Mediatek MT8183;
    • Ditambahkeun rojongan pikeun NAND controller Flash STMicroelectronics FMC2, Amlogic Meson;
    • Ditambahkeun dukungan akselerator pikeun sistem hardware Habana AI;
    • Ditambahkeun rojongan pikeun NXP ENETC gigabit Ethernet controller sarta MediaTek MT7603E (PCIe) sarta panganteur nirkabel MT76x8.

Dina waktos anu sami, Yayasan Perangkat Lunak Gratis Amérika Latin kabentuk
pilihan lengkep bebas kernel 5.1 - Linux-bébas 5.1-gnu, diberesihan tina firmware sareng elemen supir anu ngandung komponén non-gratis atanapi bagian kode, ruang lingkup anu diwatesan ku produsén. Dina release anyar, blob loading ditumpurkeun dina supir mt7603 na goya. Kode beberesih blob diropéa dina panggerak sareng subsistem wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifix, btmrvl, btmtk sareng touchscreen_dmi. Blob beberesih dina lantiq xrx200 firmware loader geus dieureunkeun alatan panyabutan na tina kernel.

sumber: opennet.ru

Tambahkeun komentar