Rilis kernel Linux 5.3

Sawise rong sasi pembangunan, Linus Torvalds ngenalake release kernel Linux 5.3. Antarane owah-owahan sing paling penting: dhukungan kanggo GPU AMD Navi, prosesor Zhaoxi lan teknologi manajemen daya Intel Speed ​​​​Select, kemampuan kanggo nggunakake instruksi umwait kanggo ngenteni tanpa nggunakake siklus,
mode 'utilization clamping' sing nambah interaktivitas kanggo CPU asimetris, telpon sistem pidfd_open, kemampuan kanggo nggunakake alamat IPv4 saka subnet 0.0.0.0/8, kamungkinan akselerasi hardware nftables, dhukungan HDR ing subsistem DRM, integrasi ACRN hypervisor.

В pengumuman release anyar, Linus ngilingake kabeh pangembang saka aturan utama pembangunan kernel - ngramut prilaku padha kanggo komponen pangguna-ruang. Owah-owahan ing kernel ora kudu ngilangi aplikasi sing wis mlaku utawa nyebabake regresi ing tingkat pangguna. Ing kasus iki, nglanggar prilaku bisa nimbulaké ora mung owah-owahan ing ABI, mbusak kode outdated, utawa katon saka kasalahan, nanging uga impact ora langsung saka dandan migunani sing bisa digunakake kanthi bener. Minangka conto ilustrasi ana dibuwang migunani optimalisasi ing kode Ext4, sing nyuda jumlah akses drive kanthi mateni pra-maca tabel inode kanggo panjalukan I / O cilik.

Optimization mimpin kanggo kasunyatan sing, amarga nyuda ing kegiatan disk, entropi kanggo getrandom () generator nomer acak wiwit nglumpukake luwih alon lan ing sawetara konfigurasi, ing kahanan tartamtu, freezes bisa diamati nalika loading nganti blumbang entropi ana. diisi. Wiwit optimasi tenan migunani, ana diskusi antarane pangembang kang diusulake kanggo ndandani masalah kanthi mateni mode pamblokiran gawan saka getrandom () telpon lan nambah flag opsional kanggo ngenteni entropi, nanging owah-owahan kuwi bakal mengaruhi kualitas nomer acak ing tataran wiwitan loading.

Versi anyar kalebu 15794 ndandani saka 1974 pangembang,
ukuran tembelan - 92 MB (pangowahan kena pengaruh 13986 file, 258419 baris kode ditambahake,
599137 larik dibusak). Udakara 39% kabeh ditampilake ing 5.3
owah-owahan related kanggo driver piranti, kira-kira 12% saka owah-owahan sing
sikap kanggo nganyari kode khusus kanggo arsitektur hardware, 11%
related kanggo tumpukan jaringan, 3% kanggo sistem file lan 3% kanggo internal
subsistem kernel.

Utama inovasi:

  • Layanan memori lan sistem
    • Pangembangan terus fungsi 'pidfd' kanggo mbantu nangani kahanan nggunakake maneh PID (pidfd digandhengake karo proses tartamtu lan ora owah, dene PID bisa digandhengake karo proses liyane sawise proses saiki sing ana gandhengane karo PID kasebut mandheg). Sadurunge ditambahake menyang kernel
      telpon sistem pidfd_send_signal () lan flag CLONE_PIDFD ing Klone () nelpon kanggo njupuk pidfd kanggo nggunakake ing idfd_send_signal (). Nggunakake Klone () karo flag CLONE_PIDFD bisa nimbulaké masalah karo Managers layanan utawa sistem mandap pasukan metu saka memori platform Android. Ing kasus iki, telpon kanggo garpu () utawa Klone () tanpa CLONE_PIDFD digunakake kanggo miwiti.

      Kernel 5.3 ngenalake telpon sistem pidfd_open(), sing ngidini sampeyan entuk pidfd sing bisa dipriksa kanggo proses sing ana sewenang-wenang sing ora digawe kanthi nelpon klone () kanthi bendera CLONE_PIDFD. Uga ditambahaké support kanggo polling pidfd nggunakake jajak pendapat () lan epoll (), sing ngidini Managers proses trek mandap pangolahan kasepakatan tanpa wedi kondisi lomba yen PID diutus kanggo proses anyar. Mekanisme kanggo menehi kabar nalika proses sing ana gandhengane karo pidfd wis mandheg padha karo kabar nalika proses anak wis mandheg;

    • Dhukungan kanggo mekanisme pinning beban wis ditambahake menyang panjadwal tugas (Panggunaan clamping), ngidini sampeyan netepi frekuensi minimal utawa maksimal, gumantung saka tugas sing aktif ing CPU. Mekanisme sing disajikake nyepetake tugas sing langsung mengaruhi kualitas pengalaman pangguna kanthi nindakake tugas kasebut paling ora ing mburi ngisor frekuensi "dijaluk". Tugas prioritas rendah sing ora mengaruhi karya pangguna diluncurake nggunakake watesan ndhuwur frekuensi "diidini". Watesan disetel liwat atribut sched_uclamp_util_min lan sched_uclamp_util_max ing telpon sistem sched_setattr ().
    • Dhukungan tambahan kanggo teknologi manajemen energi Intel Speed ​​Pilih, kasedhiya ing server pilih karo prosesor Intel Xeon. Teknologi iki ngidini sampeyan nyetel setelan throughput kinerja lan partisi kanggo inti CPU sing beda-beda, sing ngidini sampeyan ngutamakake kinerja kanggo tugas sing ditindakake ing inti tartamtu, ngorbanake kinerja ing inti liyane;
    • Proses ing ruang panganggo diwenehake kemampuan kanggo ngenteni wektu cendhak tanpa nggunakake puteran nggunakake instruksi umwait. Instruksi iki, bebarengan karo instruksi umonitor lan tpause, bakal ditawakake ing chip "Tremont" Intel sing bakal teka, lan bakal ngidini implementasine telat sing efisien energi lan ora mengaruhi kinerja benang liyane nalika nggunakake Hyper Threading;
    • Kanggo arsitektur RISC-V, dhukungan kanggo kaca memori gedhe wis ditambahake;
    • Mekanisme pelacakan kprobes nambahake kemampuan kanggo dereference pointer kernel menyang ruang pangguna, sing bisa digunakake, contone, kanggo ngevaluasi isi struktur sing dikirim menyang telpon sistem. Kemampuan kanggo nginstal mriksa ing tataran boot uga wis ditambahake.
    • Nambahake pilihan PREEMPT_RT menyang file konfigurasi kanggo operasi wektu nyata. Kode kasebut dhewe kanggo ndhukung mode wektu nyata durung ditambahake ing kernel, nanging tampilan pilihan kasebut minangka tandha apik yen epik jangka panjang. integrasi Patches Realtime-Preempt wis meh rampung;
    • Added clone3 () telpon sistem karo implementasine saka versi liyane extensible saka Klone () antarmuka, sing ngidini nemtokake nomer luwih saka panji;
    • Added bpf_send_signal () handler, ngijini program BPF ngirim sinyal kanggo pangolahan kasepakatan;
    • Kanggo acara perf ing lingkungan hypervisor KVM, mekanisme nyaring acara anyar wis ditambahake, ngidini administrator kanggo nemtokake jinis acara sing diijini utawa ora diijini kanggo ngawasi ing sisih sistem tamu;
    • Kemampuan kanggo ngolah program kanthi puteran wis ditambahake ing mekanisme verifikasi aplikasi eBPF yen eksekusi loop diwatesi lan ora bisa ngluwihi watesan ing jumlah maksimum instruksi;
  • Subsistem disk, I/O lan sistem file
    • Sistem file XFS saiki ndhukung bypass inode multi-threaded (contone, nalika mriksa kuota). Ioctls BULKSTAT lan INUMBERS anyar wis ditambahake, nyedhiyakake akses menyang fitur sing katon ing edisi kaping lima saka format FS, kayata wektu lair inode lan kemampuan kanggo nyetel parameter BULKSTAT lan INUMBERS kanggo saben grup AG (Grup Alokasi);
    • Ing Ext4 dhukungan ditambahake kekosongan ing direktori (pamblokiran ora disambungake).
      Processing kasedhiya gendera "i" (ora bisa diganti) kanggo file sing mbukak (nulis dilarang ing kahanan yen gendera disetel nalika file kasebut wis mbukak);

    • Btrfs nyedhiyakake definisi implementasi cepet saka crc32c ing kabeh arsitektur;
    • Ing CIFS, kode kanggo dhukungan smbdirect wis dibusak minangka pangembangan eksperimen. SMB3 nambahake kemampuan kanggo nggunakake algoritma kriptografi ing mode GCM. Nambahake opsi gunung anyar kanggo ngekstrak paramèter mode saka entri ACE (Access Control Entry). Optimized kinerja mbukak () telpon;
    • Nambahake pilihan kanggo F2FS kanggo mbatesi pengumpul sampah nalika mlaku ing checkpoint = mode mateni. Nambahake ioctl kanggo mbusak kisaran blok saka F2FS, ngidini pangaturan ukuran partisi on-the-fly. Nambahake kemampuan kanggo nyelehake file swap ing F2FS kanggo nyedhiyakake I / O langsung. Dhukungan ditambahake kanggo pinning file lan nyediakake blok kanggo file sing padha kanggo kabeh pangguna;
    • Added support kanggo operasi bedo sendmsg () lan recvmsg () kanggo antarmuka kanggo input bedo / output io_uring;
    • Dhukungan kanggo kompresi nggunakake algoritma zstd lan kemampuan kanggo verifikasi gambar FS sing ditandatangani wis ditambahake menyang sistem file UBIFS;
    • Ceph FS saiki ndhukung label keamanan SELinux kanggo file;
    • Kanggo NFSv4, opsi gunung anyar "nconnect =" wis dileksanakake, sing nemtokake jumlah sambungan sing diadegake karo server. Lalu lintas ing antarane sambungan kasebut bakal disebarake nggunakake load balancing. Kajaba iku, server NFSv4 saiki nggawe direktori / proc / fs / nfsd / klien kanthi informasi babagan klien saiki, kalebu informasi babagan file sing dibukak;
  • Virtualisasi lan Keamanan
    • Kernel kalebu hypervisor kanggo piranti sing dipasang ACRN, kang ditulis karo mripat kanggo siyap kanggo tugas nyata-wektu lan cocok kanggo nggunakake ing sistem misi-kritis. ACRN nyedhiyakake overhead minimal, njamin latency kurang lan responsif sing nyukupi nalika sesambungan karo peralatan. Ndhukung virtualisasi sumber daya CPU, I / O, subsistem jaringan, grafis lan operasi swara. ACRN bisa digunakake kanggo mbukak sawetara mesin virtual terisolasi ing unit kontrol elektronik, dashboard, sistem informasi otomotif, piranti IoT konsumen lan teknologi ditempelake liyane;
    • Ing pangguna-mode Linux ditambahake Mode lelungan wektu, sing ngidini sampeyan alon utawa nyepetake wektu ing lingkungan UML virtual supaya luwih gampang debug kode sing gegandhengan karo wektu. Kajaba iku, parameter wis ditambahake
      time-travel-start, sing ngidini jam sistem diwiwiti saka wayahe sing ditemtokake ing format jaman;

    • Opsi baris printah kernel anyar "init_on_alloc" lan "init_on_free" wis ditambahake, nalika kasebut, zeroing area memori sing diparengake lan dibebasake diaktifake (isi karo nol kanggo malloc lan free), sing ngidini kanggo nambah keamanan amarga overhead initialization tambahan;
    • Pembalap anyar ditambahake virtio-iommu kanthi implementasine piranti paravirtualized sing ngidini sampeyan ngirim panjalukan IOMMU kayata ATTACH, DETACH, MAP lan UNMAP liwat transportasi virtio tanpa niru tabel kaca memori;
    • Pembalap anyar ditambahake virtio-pmem, makili akses menyang piranti panyimpenan sing dipetakan menyang papan alamat fisik, kayata NVDIMM;
    • Dileksanakake kemampuan kanggo masang tombol kriptografi kanggo pangguna utawa jaringan jenengspace (tombol dadi ora bisa diakses ing njaba spasi jeneng sing dipilih), uga nglindhungi tombol nggunakake ACLs;
    • Kanggo subsistem crypto ditambahake dhukungan kanggo algoritma hashing non-kriptografi sing cepet banget xxhash, kacepetan kang gumantung ing kinerja memori;
  • Subsistem jaringan
    • Ngaktifake pangolahan alamat IPv4 ing kisaran 0.0.0.0/8, sing sadurunge ora kasedhiya kanggo digunakake. Pambuka subnet iki bakal ngidini nyebarake 16 yuta alamat IPv4 liyane;
    • Ing Netfilter kanggo nftables ditambahake dhukungan kanggo mekanisme akselerasi hardware kanggo panyaring paket liwat panggunaan driver sing ditambahake Flow Block API. Kabeh tabel aturan karo kabeh ranté bisa diselehake ing sisih adaptor jaringan. Ngaktifake rampung kanthi naleni flag NFT_TABLE_F_HW ing meja. Ndhukung metadata protokol Layer 3 lan Layer 4 sing prasaja, nampa / nolak tumindak, pemetaan dening IP lan port jaringan pangirim / panrima lan jinis protokol;
    • Ditambahake dibangun ing support nelusuri sambungan kanggo kreteg jaringan, kang ora mbutuhake nggunakake lapisan emulating br_netfilter;
    • Ing nf_tables ditambahake dhukungan kanggo modul SYNPROXY, sing niru fungsi sing padha saka iptables, lan kemampuan kanggo mriksa aturan kanggo opsi individu ing header IPv4 uga dileksanakake;
    • Added kemampuan kanggo masang program BPF kanggo setsockopt () lan getsockopt () telpon sistem, kang, contone, ngijini sampeyan kanggo masang pawang akses dhewe kanggo telpon iki. Kajaba iku, titik telpon anyar (pancing) wis ditambahake, karo sampeyan bisa ngatur telpon kanggo program BPF sapisan kanggo saben interval RTT (round-trip-wektu, wektu ping);
    • Kanggo IPv4 lan IPv6 ditambahake mekanisme panyimpenan data nuntun nexthop anyar ngarahke ing nambah skalabilitas tabel nuntun. Tes nuduhake yen nalika nggunakake sistem anyar, sakumpulan 743 ewu rute dimuat menyang kernel mung 4.3 detik;
    • Kanggo Bluetooth dileksanakake fungsi sing dibutuhake kanggo ndhukung LE ping;
  • Peralatan
    • Ditambahake dhukungan kanggo prosesor kompatibel x86 perusahaan Zhaoxin, dikembangake minangka asil proyek gabungan antarane VIA Technologies lan Kotamadya Shanghai. ZX CPU kulawarga dibangun ing x86-64 arsitektur Yesaya, terus pangembangan teknologi VIA Centaur;
    • Subsistem DRM (Direct Rendering Manager), uga driver grafis amdgpu lan i915, wis nambahake dhukungan kanggo parsing, ngolah lan ngirim metadata HDR (kisaran dinamis dhuwur) liwat port HDMI, ngidini panggunaan panel lan layar HDR sing bisa digunakake. nampilake kisaran padhange tambahan;
    • Driver amdgpu wis nambahake dhukungan awal kanggo AMD NAVI GPU (RX5700), sing kalebu driver dasar, kode interaksi layar (DCN2), GFX lan dhukungan komputasi (GFX10),
      SDMA 5 (Sistem DMA0), manajemen daya lan enkoder/dekoder multimedia (VCN2). amdgpu uga mbenakake support kanggo kertu adhedhasar Vega12 lan Vega20 GPUs, kang memori tambahan lan Kapabilitas Manajemen daya wis ditambahake;

    • Nambahake dhukungan kanggo kertu adhedhasar GPU VegaM menyang driver amdkfd (kanggo GPU diskret, kayata Fiji, Tonga, Polaris);
    • Ing driver DRM kanggo kertu video Intel kanggo Kripik Icelake dipun ginakaken mode koreksi gamma multi-segmen anyar. Nambahake kemampuan kanggo output liwat DisplayPort ing format YCbCr4:2:0. Perangkat kukuh anyar ditambahake GuC kanggo SKL, BXT, KBL, GLK lan ICL. Kemampuan kanggo mateni daya layar ing mode asinkron wis dileksanakake. Ditambahake support kanggo nyimpen lan mulihake konteks Rendering kanggo Ironlake (gen5) lan gen4 (Broadwater - Cantiga) Kripik, sing ngijini sampeyan kanggo mulihake negara GPU saka papan pangguna nalika pindhah saka operasi kumpulan liyane;
    • Pembalap Nouveau nyedhiyakake deteksi chipset NVIDIA Turing TU116;
    • Kapabilitas driver DRM / KMS kanggo akselerator layar ARM Komeda (Mali D71) wis ditambahi, dhukungan kanggo skala, pamisah / gabung lapisan, rotasi, tundha nulis, AFBC, SMMU lan format enkoding warna Y0L2, P010, YUV420_8 / 10BIT wis ditambahake;
    • Pembalap MSM nambahake dhukungan kanggo seri A540 GPU Adreno sing digunakake ing prosesor Qualcomm, uga dhukungan kanggo pengontrol DSI MSM8998 kanggo Snapdragon 835;
    • Pembalap tambahan kanggo panel LCD Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS,
      Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 lan VXT VL050-8048NT-C01;

    • Ditambahake driver kanggo ngaktifake alat akselerasi dekoding
      video kasedhiya ing Amlogic Meson SoC;

    • Ing driver v3d (kanggo Broadcom Video Core V GPU digunakake ing Raspberry Pi) katon dhukungan ngirim shaders komputasi;
    • Ditambahake driver kanggo keyboard lan trackpad SPI digunakake ing model modern saka laptop Apple MacBook lan MacBookPro;
    • Ditambahake pangayoman tambahan kanggo telpon ioctl gadhah driver floppy, lan driver dhewe ditandhani minangka unmaintained
      ("yatim piatu"), sing tegese mungkasi tes kasebut. Pembalap isih disimpen ing kernel, nanging operasi sing bener ora dijamin. Driver dianggep outdated, amarga iku angel golek peralatan digunakake kanggo testing - kabeh drive external saiki, minangka aturan, nggunakake antarmuka USB.

    • Ditambahake driver cpufreq kanggo papan Raspberry Pi, sing ngidini sampeyan ngontrol owah-owahan frekuensi prosesor kanthi dinamis;
    • Dhukungan tambahan kanggo ARM SoC Mediatek mt8183 anyar (4x Cortex-A73 + 4x Cortex-A53), TI J721E (2x Cortex-A72 + 3x Cortex-R5F + 3 DSPs + MMA) lan Amlogic G12B (4x Cortex-A73 + 2x Cortex- A53 ), uga papan:
      • Purism Librem5,
      • Aspeed BMC,
      • Microsoft Olympus BMC,
      • Kontron SMARC,
      • Novtech Meerkat96 (i.MX7),
      • ST Micro Avenger96,
      • Google Cheza (Qualcomm SDM845),
      • Qualcomm Dragonboard 845c (Qualcomm SDM845),
      • Kothak TV Hugsun X99 (Rockchip RK3399),
      • Khadas Edge/Edge-V/Captain (Rockchip RK3399),
      • Sugeng RZ/G2M,
      • NXP LS1021A-TSN.

Ing wektu sing padha, Latin American Free Software Foundation kawangun
pilihan rampung free kernel 5.3 - Linux-bebas 5.3-gnu, dibusak saka perangkat kukuh lan driver unsur ngemot non-free komponen utawa kode bagean, orane katrangan diwatesi dening Produsèn. Ing release anyar, blob loading dipatèni ing qcom, hdcp drm, allegro-dvt lan driver meson-vdec.
Kode reresik blob sing dianyari ing driver lan subsistem amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, driver swara kanggo skylake, uga ing dokumentasi microcode.

Source: opennet.ru

Add a comment