Kaluaran kernel Linux 5.3

Sanggeus dua bulan pangwangunan, Linus Torvalds ngenalkeun ngaleupaskeun kernel Linux Ubuntu 5.3. Diantara parobihan anu paling penting: dukungan pikeun AMD Navi GPUs, prosesor Zhaoxi sareng téknologi manajemén kakuatan Intel Speed ​​​​Select, kamampuan ngagunakeun paréntah umwait ngantosan tanpa nganggo siklus,
Mode 'utilization clamping' anu ningkatkeun interaktivitas pikeun CPU asimétri, panggero sistem pidfd_open, kamampuan ngagunakeun alamat IPv4 tina subnet 0.0.0.0/8, kamungkinan akselerasi hardware nftables, dukungan HDR dina subsistem DRM, integrasi ACRN. hypervisor.

В pangumuman release anyar, Linus ngingetkeun sadayana pamekar aturan utama ngembangkeun kernel - ngajaga kabiasaan anu sarua pikeun komponén pamaké-spasi. Parobahan kana kernel teu kudu sagala cara megatkeun geus ngajalankeun aplikasi atawa ngakibatkeun regressions di tingkat pamaké. Dina hal ieu, palanggaran paripolah tiasa nyababkeun henteu ngan ukur parobihan dina ABI, ngaleungitkeun kode anu luntur, atanapi munculna kasalahan, tapi ogé dampak henteu langsung tina perbaikan anu mangpaat anu tiasa dianggo leres. Salaku conto illustrative aya dipiceun mangpaat optimasi dina kode Ext4, nu ngurangan jumlah aksés drive ku nganonaktipkeun pre-maca tabel inode pikeun I / requests O leutik.

Optimasi ngabalukarkeun kanyataan yén, alatan panurunan dina aktivitas disk, éntropi pikeun getrandom () generator angka acak mimiti ngumpulkeun leuwih laun sarta dina sababaraha konfigurasi, dina kaayaan nu tangtu, freezes bisa dititénan salila loading nepi ka kolam renang éntropi éta. dieusian. Kusabab optimasi nu bener mangpaat, timbul diskusi diantara pamekar nu ieu diusulkeun pikeun ngalereskeun masalah ku nganonaktipkeun mode blocking standar tina getrandom () panggero jeung nambahkeun hiji bandéra pilihan pikeun ngadagoan éntropi, tapi parobahan sapertos bakal mangaruhan kualitas angka acak dina tahap awal loading.

Versi anyar kalebet 15794 perbaikan tina 1974 pamekar,
ukuran patch - 92 MB (parobahan kapangaruhan 13986 file, 258419 baris kode ditambahkeun,
599137 baris dipiceun). Ngeunaan 39% sadaya dibere dina 5.3
parobahan nu patali jeung drivers alat, kira-kira 12% parobahanana
sikep kana ngamutahirkeun kode khusus pikeun arsitéktur hardware, 11%
patali jeung tumpukan jaringan, 3% mun sistem file na 3% mun internal
subsistem kernel.

utama inovasi:

  • Mémori sareng jasa sistem
    • Terus ngembangkeun fungsionalitas 'pidfd' pikeun mantuan nanganan situasi dipake deui PID (pidfd pakait sareng prosés husus sarta henteu robah, sedengkeun PID bisa pakait jeung prosés séjén sanggeus prosés ayeuna pakait sareng PID terminates). Ieu saméméhna ditambahkeun kana kernel
      nelepon sistem pidfd_send_signal () jeung bandéra CLONE_PIDFD di clone () nelepon pikeun ménta pidfd pikeun pamakéan dina idfd_send_signal (). Ngagunakeun clone () jeung bandéra CLONE_PIDFD bisa ngabalukarkeun masalah sareng manajer jasa atawa sistem terminasi gaya kaluar-of-memori platform Android urang. Dina hal ieu, panggero pikeun garpu () atanapi clone () tanpa CLONE_PIDFD dipaké pikeun ngamimitian.

      Kernel 5.3 ngenalkeun panggero sistem pidfd_open(), nu ngidinan Anjeun pikeun meunangkeun pidfd checkable pikeun prosés sawenang aya nu teu dijieun ku nelepon clone () jeung bandéra CLONE_PIDFD. Ogé ditambahkeun rojongan pikeun polling pidfd maké polling () sarta epoll (), nu ngidinan manajer prosés lagu terminasi prosés sawenang tanpa sieun kaayaan lomba lamun PID a ditugaskeun ka prosés anyar. Mékanisme pikeun ngabéjaan yén prosés anu aya hubunganana sareng pidfd parantos réngsé sami sareng ngabéjaan yén prosés anakna parantos réngsé;

    • Rojongan pikeun mékanisme pinning beban geus ditambahkeun kana scheduler tugas (Pamakéan clamping), ngamungkinkeun Anjeun pikeun taat kana rentang frékuénsi minimum atawa maksimum, gumantung kana tugas aktip dina CPU. Mékanisme anu disayogikeun nyepetkeun tugas anu langsung mangaruhan kualitas pangalaman pangguna ku ngajalankeun tugas ieu sahenteuna dina tungtung handap tina frékuénsi "dipénta". Tugas-prioritas rendah anu henteu mangaruhan pagawéan pangguna diluncurkeun nganggo wates luhur frékuénsi "diidinan". Watesan diatur via sched_uclamp_util_min jeung sched_uclamp_util_max atribut dina sched_setattr () Sistim panggero.
    • Ditambahkeun dukungan pikeun téknologi manajemén énergi Intel Speed ​​Pilih, sadia dina pilih server kalawan prosesor Intel Xeon. Téknologi ieu ngamungkinkeun anjeun nyetél kinerja sareng partisi throughput setélan pikeun inti CPU anu béda, anu ngamungkinkeun anjeun pikeun prioritas kinerja pikeun tugas-tugas anu dilakukeun dina inti-inti anu tangtu, ngorbankeun kinerja dina inti anu sanés;
    • Prosés dina spasi pamaké disadiakeun kamampuhan pikeun ngadagoan waktu anu singget tanpa ngagunakeun loop ngagunakeun instruksi umwait. Parentah ieu, babarengan jeung umonitor na tpause parentah, bakal ditawarkeun dina upcoming Intel "Tremont" chip, sarta bakal ngidinan palaksanaan reureuh anu énergi efisien sarta henteu mangaruhan kinerja threads séjén nalika maké hyper Threading;
    • Pikeun arsitéktur RISC-V, rojongan pikeun kaca mémori badag geus ditambahkeun;
    • Mékanisme nyukcruk kprobes geus ditambahkeun kamampuhan pikeun dereference pointers kernel ka spasi pamaké, nu bisa dipaké, contona, pikeun evaluate eusi struktur dibikeun ka panggero sistem. Kamampuhan pikeun masang cék dina tahap boot ogé parantos ditambah.
    • Ditambahkeun pilihan PREEMPT_RT kana file konfigurasi pikeun operasi sacara real-time. Kodeu sorangan pikeun ngarojong mode real-time teu acan ditambahkeun kana kernel, tapi penampilan pilihan mangrupa tanda alus yen epik jangka panjang. integrasi Realtime-Preempt patch anu nearing parantosan;
    • Ditambahkeun clone3 () Sistim panggero kalawan palaksanaan versi langkung extensible of clone () panganteur, nu ngidinan nangtukeun jumlah badag bandéra;
    • Ditambahkeun bpf_send_signal () Handler, ngamungkinkeun program BPF ngirim sinyal ka prosés sawenang;
    • Pikeun acara perf di lingkungan hypervisor KVM, mékanisme nyaring acara anyar geus ditambahkeun, sahingga administrator pikeun nangtukeun jenis acara anu diwenangkeun atawa teu diwenangkeun pikeun ngawas dina sisi sistem tamu;
    • Kamampuhan pikeun ngolah program sareng puteran parantos ditambahkeun kana mékanisme verifikasi aplikasi eBPF upami palaksanaan loop diwatesan sareng teu tiasa ngakibatkeun ngaleuwihan wates dina jumlah maksimum paréntah;
  • Subsistem Disk, I/O sareng Sistem File
    • Sistem file XFS ayeuna ngadukung bypass inode multi-threaded (contona, nalika mariksa kuota). ioctls BULKSTAT na INUMBERS anyar geus ditambahkeun, nyadiakeun aksés ka fitur nu mucunghul dina édisi kalima tina format FS, kayaning waktos kalahiran inode sarta kamampuhan pikeun nyetél parameter BULKSTAT na INUMBERS pikeun tiap grup AG (Grup Alokasi);
    • Dina Ext4 rojongan ditambahkeun voids dina directories (blok unlinked).
      Ngolah disadiakeun Bandéra "i" (teu bisa dirobah) pikeun file anu kabuka (tulisan dilarang dina kaayaan upami bandéra disetél dina waktos file parantos dibuka);

    • Btrfs nyayogikeun definisi palaksanaan gancang crc32c dina sadaya arsitéktur;
    • Dina CIFS, kodeu pikeun rojongan smbdirect geus dihapus salaku ngembangkeun eksperimen. SMB3 nambihan kamampuan ngagunakeun algoritma kriptografi dina modeu GCM. Ditambahkeun pilihan Gunung anyar pikeun nimba parameter mode tina ACE (Access Control Entry) éntri. Dioptimalkeun kinerja buka () panggero;
    • Ditambahkeun pilihan pikeun F2FS pikeun ngawatesan kolektor sampah nalika ngajalankeun dina pamariksaan = modeu mareuman. Nambahkeun ioctl pikeun ngahapus rentang blok tina F2FS, ngamungkinkeun panyesuaian ukuran partisi on-the-fly. Ditambahkeun kamampuhan pikeun nempatkeun file swap di F2FS pikeun nyadiakeun langsung I / O. Ditambahkeun dukungan pikeun pinning file sareng alokasi blok pikeun file anu sami pikeun sadaya pangguna;
    • Ditambahkeun rojongan pikeun operasi Asynchronous sendmsg () sarta recvmsg () kana panganteur pikeun input Asynchronous / output io_uring;
    • Rojongan pikeun komprési nganggo algoritma zstd sareng kamampuan pikeun pariksa gambar FS anu ditandatanganan parantos ditambahkeun kana sistem file UBIFS;
    • Ceph FS ayeuna ngadukung labél kaamanan SELinux pikeun file;
    • Pikeun NFSv4, hiji pilihan Gunung anyar "nconnect =" geus dilaksanakeun, nu nangtukeun jumlah sambungan ngadegkeun kalawan server. Lalu lintas antara sambungan ieu bakal disebarkeun nganggo balancing beban. Salaku tambahan, server NFSv4 ayeuna nyiptakeun diréktori /proc/fs/nfsd/klién kalayan inpormasi ngeunaan klien ayeuna, kalebet inpormasi ngeunaan file anu dibuka;
  • Virtualisasi sareng Kaamanan
    • Kernel kalebet hypervisor pikeun alat anu dipasang ACRN, nu ditulis kalawan hiji panon pikeun kesiapan pikeun tugas real-time jeung suitability pikeun pamakéan dina sistem misi-kritis. ACRN nyadiakeun overhead minimal, ngajamin latency lemah sareng responsiveness nyukupan nalika interacting jeung alat. Ngarojong virtualization sumberdaya CPU, I / O, subsistem jaringan, grafik jeung operasi sora. ACRN tiasa dianggo pikeun ngajalankeun sababaraha mesin virtual terasing dina unit kontrol éléktronik, dasbor, sistem inpormasi otomotif, alat IoT konsumen sareng téknologi anu dipasang;
    • Dina pamaké-mode Linux ditambihan Modeu perjalanan waktos, anu ngamungkinkeun anjeun ngalambatkeun atanapi nyepetkeun waktos di lingkungan UML virtual pikeun ngagampangkeun debug kode anu aya hubunganana sareng waktos. Sajaba ti éta, parameter geus ditambahkeun
      waktos-travel-mimitian, anu ngamungkinkeun jam sistem pikeun ngamimitian ti momen anu ditangtukeun dina format epoch;

    • Pilihan garis paréntah kernel anyar "init_on_alloc" jeung "init_on_free" geus ditambahkeun, lamun dieusian, zeroing wewengkon memori dialokasikeun tur dibébaskeun diaktipkeun (ngeusian enol pikeun malloc na bebas ), nu ngamungkinkeun pikeun ngaronjat kaamanan alatan overhead initialization tambahan;
    • supir anyar ditambahkeun virtio-iommu kalawan palaksanaan hiji alat paravirtualized nu ngidinan Anjeun pikeun ngirim requests IOMMU kayaning ATTACH, DETACH, PETA jeung UNMAP ngaliwatan angkutan virtio tanpa emulating tabel kaca memori;
    • supir anyar ditambahkeun virtio-pmem, ngagambarkeun aksés ka alat panyimpen anu dipetakeun kana rohangan alamat fisik, sapertos NVDIMM;
    • Dilaksanakeun kamampuhan pikeun ngagantelkeun konci cryptographic ka pamaké atawa ngaranspasi jaringan (konci jadi inaccessible luar namespace dipilih), kitu ogé ngajaga konci maké ACLs;
    • Pikeun subsistem crypto ditambahkeun rojongan pikeun algoritma hashing non-cryptographic pisan gancang xxhash, laju nu gumantung kana kinerja memori;
  • Subsistem jaringan
    • Diaktipkeun ngolah alamat IPv4 dina rentang 0.0.0.0/8, nu saméméhna teu sadia pikeun pamakéan. Bubuka subnet ieu bakal ngidinan ngadistribusikaeun sejen 16 juta alamat IPv4;
    • Dina Netfilter pikeun nftables ditambahkeun rojongan pikeun mékanisme akselerasi hardware pikeun pakét nyaring ngaliwatan pamakéan supir ditambahkeun Aliran Blok API. Sakabéh tabel aturan kalayan sagala ranté bisa ditempatkeun di sisi adapters jaringan. Aktipkeun dilakukeun ku ngabeungkeut bandéra NFT_TABLE_F_HW kana tabél. Ngarojong metadata protokol Lapisan 3 sareng Lapisan 4 basajan, nampi / nampik tindakan, pemetaan ku IP sareng palabuhan jaringan pangirim / panampi sareng jinis protokol;
    • Ditambahkeun diwangun-di rojongan tracking sambungan pikeun sasak jaringan, nu teu merlukeun pamakéan br_netfilter emulating lapisan;
    • Dina nf_tables ditambahkeun rojongan pikeun modul SYNPROXY, nu replicates fungsionalitas sarupa ti iptables, sarta kamampuhan pikeun pariksa dina aturan pikeun pilihan individu dina header IPv4 ogé dilaksanakeun;
    • Ditambahkeun kamampuhan pikeun ngagantelkeun program BPF kana setsockopt () sarta getsockopt () nelepon sistem, nu, contona, ngidinan Anjeun pikeun ngagantelkeun pawang aksés sorangan mun nelepon ieu. Sajaba ti éta, hiji titik panggero anyar (hook) geus ditambahkeun, kalawan nu bisa ngatur panggero pikeun program BPF sakali pikeun tiap interval RTT (round-lalampahan-waktos, waktos ping);
    • Pikeun IPv4 sareng IPv6 ditambihan mékanisme gudang data routing nexthop anyar aimed dina ngaronjatkeun scalability tabel routing. Tés nunjukkeun yén nalika nganggo sistem énggal, sakumpulan 743 rébu rute dimuat kana kernel dina ngan 4.3 detik;
    • Pikeun Bluetooth dilaksanakeun fungsionalitas diperlukeun pikeun ngarojong LE ping;
  • pakakas
    • Ditambahkeun rojongan pikeun prosesor x86-cocog parusahaan Zhaoxin, dikembangkeun salaku hasil tina proyék gabungan antara VIA Technologies sareng Kotamadya Shanghai. Kulawarga ZX CPU diwangun dina x86-64 arsitéktur Yesaya, nuluykeun ngembangkeun téhnologi VIA Centaur;
    • Subsistem DRM (Direct Rendering Manager), ogé supir grafik amdgpu sareng i915, parantos nambihan dukungan pikeun parsing, ngolah sareng ngirim metadata HDR (kisaran dinamis anu luhur) ngalangkungan port HDMI, ngamungkinkeun panggunaan panél sareng layar HDR anu sanggup. mintonkeun rentang kacaangan tambahan;
    • Supir amdgpu parantos nambihan dukungan awal pikeun AMD NAVI GPU (RX5700), anu kalebet supir dasar, kode interaksi layar (DCN2), GFX sareng dukungan komputasi (GFX10),
      SDMA 5 (System DMA0), manajemén kakuatan sarta multimédia encoders / decoders (VCN2). amdgpu ogé ngaronjatkeun rojongan pikeun kartu dumasar kana Vega12 na Vega20 GPUs, nu memori tambahan sarta kamampuhan manajemén kakuatan geus ditambahkeun;

    • Ditambahkeun dukungan pikeun kartu dumasar kana VegaM GPU ka supir amdkfd (pikeun GPU diskrit, sapertos Fiji, Tonga, Polaris);
    • Dina supir DRM pikeun kartu vidéo Intel pikeun chip Icelake dilaksanakeun modeu koreksi gamma multi-segmén anyar. Ditambahkeun kamampuan pikeun kaluaran via DisplayPort dina format YCbCr4:2:0. firmware anyar ditambahkeun GuC pikeun SKL, BXT, KBL, GLK jeung ICL. Kamampuhan pikeun mareuman kakuatan layar dina modeu Asynchronous parantos dilaksanakeun. Ditambahkeun rojongan pikeun ngahemat tur malikkeun konteks Rendering pikeun Ironlake (gen5) sarta gen4 (Broadwater - Cantiga) chip, nu ngidinan Anjeun pikeun balikkeun kaayaan GPU ti spasi pamaké nalika pindah ti hiji operasi bets ka séjén;
    • Supir Nouveau nyayogikeun deteksi chipset NVIDIA Turing TU116;
    • Kamampuhan supir DRM / KMS pikeun akselerator layar ARM Komeda (Mali D71) parantos dilegaan, dukungan pikeun skala, pamisah / ngagabung lapisan, rotasi, nyerat nunggak, AFBC, SMMU sareng format encoding warna Y0L2, P010, YUV420_8 / 10BIT gaduh geus ditambahkeun;
    • Supir MSM nambihan dukungan pikeun séri A540 GPU Adreno anu dianggo dina prosesor Qualcomm, ogé dukungan pikeun pangontrol DSI MSM8998 pikeun Snapdragon 835;
    • Supir tambahan pikeun panel LCD Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS,
      Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 jeung VXT VL050-8048NT-C01;

    • Ditambahkeun supir pikeun ngaktipkeun alat akselerasi decoding
      video sadia dina Amlogic Meson SoC;

    • Dina supir v3d (pikeun Broadcom Video Core V GPU dipaké dina buah prambus Pi) mucunghul sokongan ngirimkeun shaders komputasi;
    • Ditambahkeun supir keur kibor SPI jeung trackpads dipaké dina model modern Apple MacBook jeung laptop MacBookPro;
    • Ditambahkeun panyalindungan tambahan pikeun panggero ioctl pakait sareng supir ngagantung, jeung supir sorangan ditandaan salaku unmaintained
      ("yatim"), anu hartosna ngeureunkeun tésna. Supir masih disimpen dina kernel, tapi operasi anu leres henteu dijamin. Supir dianggap tinggaleun jaman, sabab sesah milarian alat anu tiasa dianggo pikeun nguji éta - sadaya drive éksternal ayeuna, biasana nganggo antarmuka USB.

    • Ditambahkeun supir cpufreq pikeun papan buah prambus Pi, nu ngidinan Anjeun pikeun dinamis ngadalikeun parobahan frékuénsi processor;
    • Ditambahkeun dukungan pikeun ARM SoC Mediatek mt8183 anyar (4x Cortex-A73 + 4x Cortex-A53), TI J721E (2x Cortex-A72 + 3x Cortex-R5F + 3 DSPs + MMA) sareng Amlogic G12B (4x Cortex-A73 + 2x Cortex- A53), ogé papan:
      • Purisme Librem5,
      • Aspeed BMC,
      • Microsoft Olympus BMC,
      • Kontron SMARC,
      • Novtech Meerkat96 (i.MX7),
      • ST Micro Avenger96,
      • Google Cheza (Qualcomm SDM845),
      • Qualcomm Dragonboard 845c (Qualcomm SDM845),
      • Hugsun X99 TV Box (Rockchip RK3399),
      • Khadas Edge/Edge-V/Kaptén (Rockchip RK3399),
      • HiHope RZ/G2M,
      • NXP LS1021A-TSN.

Dina waktos anu sami, Yayasan Perangkat Lunak Gratis Amérika Latin kabentuk
pilihan lengkep bebas kernel 5.3 - Linux-bébas 5.3-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 qcom, hdcp drm, allegro-dvt jeung drivers meson-vdec.
Kode beberesih blob diropéa dina drivers sarta subsistem amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, supir sora pikeun skylake, kitu ogé dina dokuméntasi microcode.

sumber: opennet.ru

Tambahkeun komentar