Rilis kernel Linux 5.9

Sawise rong sasi pembangunan, Linus Torvalds ngenalake release kernel Linux 5.9. Antarane owah-owahan sing paling penting: mbatesi impor simbol saka modul proprietary menyang modul GPL, nyepetake operasi ngoper konteks nggunakake instruksi prosesor FSGSBASE, dhukungan kanggo kompresi gambar kernel nggunakake Zstd, ngolah ulang prioritas benang ing kernel, dhukungan kanggo PRP (Parallel Redundancy Protocol), penjadwalan bandwidth-sadar ing panjadwal deadline, packing preemptive saka kaca memori, flag kapabilitas CAP_CHECKPOINT_RESTOR, close_range () panggilan sistem, dandan kinerja dm-crypt, mbusak kode kanggo tamu Xen PV 32-bit, memori slab anyar mekanisme manajemen, pilihan "ngluwari" ing Btrfs, support kanggo enkripsi inline ing ext4 lan F2FS.

Versi anyar kalebu 16074 mbenakake saka 2011 pangembang,
ukuran tembelan - 62 MB (pangowahan kena pengaruh 14548 file, 782155 baris kode ditambahake, 314792 baris dibusak). Udakara 45% kabeh ditampilake ing 5.9
owah-owahan related kanggo driver piranti, kira-kira 15% saka owah-owahan sing
sikap kanggo nganyari kode khusus kanggo arsitektur hardware, 13%
related kanggo tumpukan jaringan, 3% kanggo sistem file lan 3% kanggo internal
subsistem kernel.

Utama inovasi:

  • Layanan memori lan sistem
    • Kenceng pangayoman marang nggunakake lapisan GPL kanggo ngubungake pembalap tertutup karo komponen kernel sing diekspor mung kanggo modul ing lisensi GPL. Gendéra TAINT_PROPRIETARY_MODULE saiki diwarisake ing kabeh modul sing ngimpor simbol saka modul kanthi gendéra iki. Yen modul GPL nyoba ngimpor simbol saka modul non-GPL, modul GPL kasebut bakal diwenehi label TAINT_PROPRIETARY_MODULE lan ora bisa ngakses komponen kernel sing mung kasedhiya kanggo modul sing dilisensi GPL, sanajan modul kasebut sadurunge wis ngimpor simbol saka kategori "gplonly". Kunci mbalikke (mung ngekspor EXPORT_SYMBOL_GPL ing modul sing diimpor EXPORT_SYMBOL_GPL), sing bisa ngrusak karya pembalap kepemilikan, ora dileksanakake (mung flag modul kepemilikan sing diwarisake, nanging dudu pengikat GPL).
    • Ditambahake support engine kcompactd kanggo kaca memori pre-packing ing latar mburi kanggo nambah jumlah kaca memori gedhe kasedhiya kanggo kernel. Miturut prakiraan awal, kemasan latar mburi, kanthi biaya overhead minimal, bisa nyuda wektu tundha nalika nyedhiyakake kaca memori gedhe (kaca gedhe) kanthi kaping 70-80 dibandhingake karo mekanisme kemasan sing digunakake sadurunge, diluncurake nalika ana kabutuhan (on-demand). ). Kanggo nyetel wates fragmentasi eksternal sing bakal diwenehake kcompactd, sysctl vm.compaction_proactiveness wis ditambahake.
    • Ditambahake dhukungan kanggo kompresi gambar kernel nggunakake algoritma Ztandard (zstd).
    • Dhukungan kanggo instruksi prosesor wis dileksanakake kanggo sistem x86 FSGSBASE, sing ngijini sampeyan kanggo maca lan ngganti isi FS / GS ndhaftar saka papan panganggo. Ing kernel, FSGSBASE digunakake kanggo nyepetake operasi ngoper konteks kanthi ngilangi operasi nulis MSR sing ora perlu kanggo GSBASE, lan ing ruang pangguna ngindhari panggilan sistem sing ora perlu kanggo ngganti FS/GS.
    • Ditambahake parameter "allow_writes" ngijini sampeyan kanggo nglarang owah-owahan ing ndhaftar MSR prosesor saka papan pangguna lan matesi akses menyang isi ndhaftar iki kanggo maca operasi, wiwit ngganti MSR bisa mimpin kanggo masalah. Kanthi gawan, nulis durung dipatèni, lan owah-owahan ing MSR dibayangke ing log, nanging ing mangsa iku ngrancang kanggo ngalih akses standar kanggo mode mung diwaca.
    • Kanggo antarmuka I/O asinkron io_uring Ditambahake dhukungan lengkap kanggo operasi maca buffered bedo sing ora mbutuhake benang kernel. Dhukungan ngrekam wis samesthine ing release mangsa.
    • Ing deadline panjadwal I / O dileksanakake perencanaan adhedhasar kapasitas, ngidini nggawe keputusan sing bener babagan sistem asimetris kayata sistem basis ARM DynamIQ lan big.LITTLE, kang gabungke kuat lan kurang efisien intine CPU efisien energi ing siji chip. Utamane, mode anyar ngidini sampeyan supaya ora cocog jadwal nalika inti CPU alon ora duwe sumber daya sing tepat kanggo ngrampungake tugas kanthi tepat.
    • Model konsumsi energi ing kernel (kerangka Model Energi) saiki nggambarake ora mung prilaku konsumsi daya CPU, nanging uga kalebu piranti peripheral.
    • Telpon sistem close_range () wis dileksanakake kanggo ngidini proses nutup kabeh deskriptor file mbukak bebarengan.
    • Saka implementasine saka console teks lan driver fbcon kode dibusak, kang menehi kemampuan kanggo programmatically gulung teks bali (CONFIG_VGACON_SOFT_SCROLLBACK) dening luwih saka jumlah VGA mode teks memori video.
    • Digawe maneh algoritma kanggo nemtokake prioritas kanggo thread ing kernel. Opsi anyar nyedhiyakake konsistensi sing luwih apik ing kabeh subsistem kernel nalika nemtokake prioritas kanggo tugas wektu nyata.
    • Ditambahake sysctl sched_uclamp_util_min_rt_default kanggo ngontrol setelan ngedongkrak CPU kanggo tugas nyata-wektu (contone, sampeyan bisa ngganti prilaku tugas nyata-wektu ing fly kanggo irit daya sawise ngalih menyang daya baterei utawa ing sistem seluler).
    • Persiapan wis digawe kanggo ngleksanakake dhukungan kanggo teknologi Transparent Huge Pages ing cache kaca.
    • Mesin fanotify ngleksanakake gendera anyar FAN_REPORT_NAME lan FAN_REPORT_DIR_FID kanggo nglaporake jeneng induk lan informasi FID unik nalika nggawe, mbusak, utawa acara gerakan kedadeyan kanggo item direktori lan obyek non-direktori.
    • Kanggo cgroups dipun ginakaken controller memori slab anyar, kang kacathet kanggo obah accounting slab saka tingkat kaca memori kanggo tingkat obyek kernel, kang ndadekake iku bisa kanggo nuduhake kaca slab ing cgroups beda, tinimbang nyedhiakke caches slab kapisah kanggo saben cgroup. Pendekatan ngajokaken ndadekake iku bisa kanggo nambah efficiency saka nggunakake slab, nyuda ukuran memori digunakake kanggo slab 30-45%, Ngartekno nyuda konsumsi memori sakabèhé saka kernel lan nyuda fragmentasi memori.
    • Ing subsistem swara ALSA и tumpukan USB, miturut bubar diadopsi Rekomendasi babagan panggunaan terminologi inklusif ing kernel Linux; istilah sing ora bener sacara politik wis diresiki. Kode wis dibusak saka tembung "budak", "master", "blacklist" lan "whitelist".
  • Virtualisasi lan Keamanan
    • Nalika mbangun kernel nggunakake Clang compiler muncul kemampuan kanggo ngatur (CONFIG_INIT_STACK_ALL_ZERO) initialization otomatis kanggo nul kabeh variabel disimpen ing tumpukan (nalika mbangun, nemtokake "-ftrivial-otomatis-var-init = nul").
    • Ing subsistem seccomp, nalika nggunakake mode kontrol proses ing ruang pangguna, ditambahake kesempatan substitusi deskriptor file menyang proses sing dipantau kanggo niru kanthi lengkap panggilan sistem sing nyebabake nggawe deskriptor file. Fungsi kasebut dikarepake ing sistem wadhah sing terisolasi lan implementasi kothak wedhi kanggo Chrome.
    • Kanggo arsitektur xtensa lan csky, dhukungan wis ditambahake kanggo mbatesi telpon sistem nggunakake subsistem seccomp. Kanggo xtensa, dhukungan kanggo mekanisme audit uga ditindakake.
    • Ditambahake flag kapabilitas anyar CAP_CHECKPOINT_RESTORE, sing ngijini sampeyan kanggo nyedhiyani akses kanggo kapabilitas related kanggo pembekuan lan mulihake negara pangolahan tanpa nransfer hak istimewa tambahan.
    • GCC 11 nyedhiyakake kabeh fitur sing dibutuhake
      alat debugging KCSAN (Kernel Concurrency Sanitizer), dirancang kanggo ndeteksi kondisi balapan kanthi dinamis ing kernel. Mangkono, KCSAN saiki bisa digunakake karo kernels dibangun ing GCC.

    • Kanggo AMD Zen lan model CPU anyar ditambahake support kanggo teknologi P2PDMA, sing ngijini sampeyan kanggo nggunakake DMA kanggo transfer data langsung antarane memori rong piranti disambungake menyang bis PCI.
    • Mode wis ditambahake menyang dm-crypt sing ngidini sampeyan nyuda latensi kanthi nindakake pangolahan data kriptografi tanpa nggunakake antrian kerja. Mode iki uga perlu kanggo operasi bener karo dizona piranti pamblokiran (piranti karo wilayah sing kudu ditulis sequentially, nganyari kabeh klompok pamblokiran). Karya wis rampung kanggo nambah throughput lan nyuda latensi ing dm-crypt.
    • Kode dibusak kanggo ndhukung tamu 32-dicokot mlaku ing mode paravirtualisasi mlaku hypervisor Xen. Pangguna sistem kasebut kudu ngalih nggunakake kernel 64-bit ing lingkungan tamu utawa nggunakake mode virtualisasi lengkap (HVM) utawa gabungan (PVH) tinimbang paravirtualization (PV) kanggo mbukak lingkungan.
  • Subsistem disk, I/O lan sistem file
    • Ing sistem file Btrfs dileksanakake pilihan Gunung "ngluwari" sing unifies akses kanggo kabeh opsi Recovery liyane. Dhukungan kanggo opsi "alloc_start" lan "subvolrootid" wis dibusak, lan pilihan "inode_cache" wis ora digunakake. Optimizations kinerja wis digawe, utamané noticeably nyepetake eksekusi fsync () operasi. Ditambahake kemampuan kanggo nggunakake jinis alternatif checksum liyane saka CRC32c.
    • Ditambahake kemampuan kanggo nggunakake enkripsi inline (Inline Encryption) ing ext4 lan F2FS sistem file, kanggo mbisakake kang "inlinecrypt" Gunung pilihan kasedhiya. Mode enkripsi inline ngidini sampeyan nggunakake mekanisme enkripsi sing dibangun ing pengontrol drive, sing ndhelik lan dekripsi input / output kanthi transparan.
    • Ing XFS dijamin inode reset (flush) ing mode rampung asynchronous sing ora ngalangi pangolahan nalika nindakake operasi ngresiki memori. Ngatasi masalah kuota sing wis suwe sing nyebabake bebaya watesan alus lan watesan inode ora dilacak kanthi bener. Implementasi gabungan dhukungan DAX kanggo ext4 lan xfs.
    • Ing Ext4 dileksanakake pramuat blok alokasi bitmaps. Digabungake karo mbatesi pemindaian kelompok sing ora dikawruhi, optimasi nyuda wektu sing dibutuhake kanggo masang partisi sing gedhe banget.
    • Ing F2FS ditambahake ioctl F2FS_IOC_SEC_TRIM_FILE, sing ngijini sampeyan nggunakake TRIM / mbuang printah kanggo fisik ngreset data tartamtu ing file, contone, kanggo mbusak tombol akses tanpa ninggalake data ampas ing drive.
      Ing F2FS uga ditambahake mode koleksi uwuh anyar GC_URGENT_LOW, kang dianggo luwih agresif dening ngilangke sawetara mriksa kanggo ing negara meneng sadurunge miwiti kolektor uwuh.

    • Ing bcache, bucket_size kanggo extents wis tambah saka 16 kanggo 32 bit ing preparation kanggo ngaktifake caches piranti zoned.
    • Kemampuan kanggo nggunakake enkripsi inline adhedhasar enkripsi hardware dibangun ing sing diwenehake dening pengontrol UFS wis ditambahake menyang subsistem SCSI (universal-flash-panyimpenan).
    • Parameter baris perintah kernel anyar "debugfs" wis ditambahake, sing ngidini sampeyan ngontrol kasedhiyan pseudo-FS kanthi jeneng sing padha.
    • Klien NFSv4.2 nyedhiyakake dhukungan kanggo atribut file lengkap (xattr).
    • Ing dm-bledug ditambahake antarmuka kanggo nampilake bebarengan dhaptar kabeh pamblokiran ala dikenali ing disk ("pesen dmsetup dust1 0 listbadblocks").
    • Kanggo md/raid5, parameter /sys/block/md1/md/stripe_size wis ditambahake kanggo ngatur ukuran blok STRIPE.
    • Kanggo piranti panyimpenan NVMe ditambahake dhukungan kanggo printah zoning drive (ZNS, NVM Express Zoned Namespace), sing ngidini sampeyan mbagi ruang panyimpenan menyang zona sing nggawe klompok blok kanggo kontrol sing luwih lengkap babagan penempatan data ing drive.
  • Subsistem jaringan
    • Ing Netfilter ditambahake kemampuan kanggo nolak paket ing tahap sadurunge mriksa routing (ekspresi REJECT saiki bisa digunakake ora mung ing rantai INPUT, FORWARD lan OUTPUT, nanging uga ing tahap PREROUTING kanggo icmp lan tcp).
    • Ing nftables ditambahake kemampuan kanggo audit acara related kanggo owah-owahan konfigurasi.
    • Ing nftables ing API netlink ditambahake dhukungan kanggo ranté anonim, jeneng sing ditugasake kanthi dinamis dening kernel. Nalika sampeyan mbusak aturan sing digandhengake karo chain anonim, chain dhewe bakal dibusak kanthi otomatis.
    • BPF nambah dhukungan kanggo iterator kanggo ngliwati, nyaring, lan ngowahi unsur susunan asosiatif (peta) tanpa nyalin data menyang ruang pangguna. Iterator bisa digunakake kanggo soket TCP lan UDP, ngidini program BPF ngulang dhaptar soket sing mbukak lan ngekstrak informasi sing dibutuhake.
    • Nambahake jinis anyar program BPF BPF_PROG_TYPE_SK_LOOKUP, sing diluncurake nalika kernel nggoleki soket ngrungokake sing cocog kanggo sambungan sing mlebu. Nggunakake program BPF kaya iki, sampeyan bisa nggawe pawang sing nggawe pancasan bab kang soket sambungan kudu digandhengake karo, tanpa diwatesi dening bind () telpon sistem. Contone, sampeyan bisa nggandhengake soket siji karo sawetara alamat utawa port. Kajaba iku, support kanggo flag SO_KEEPALIVE wis ditambahake kanggo bpf_setsockopt () lan kemampuan kanggo nginstal pawang BPF_CGROUP_INET_SOCK_RELEASE, disebut nalika soket dirilis, wis dipun ginakaken.
    • Dhukungan protokol dileksanakake PRP (Protokol Redundansi Paralel), sing ngidini ngalih basis Ethernet menyang saluran serep, transparan kanggo aplikasi, yen gagal komponen jaringan.
    • Numpuk mac80211 ditambahake dhukungan kanggo rembugan saluran WPA / WPA2-PSK papat tahap ing mode jalur akses.
    • Nambahake kemampuan kanggo ngalih penjadwal qdisc (disiplin antrian) kanggo nggunakake algoritma manajemen antrian jaringan FQ-PIE (Flow Queue PIE) kanthi standar, ngarahake nyuda dampak negatif saka buffering paket penengah ing peralatan jaringan pinggiran (bufferbloat) ing jaringan kanthi "modem kabel kab.
    • Fitur anyar wis ditambahake menyang MPTCP (MultiPath TCP), ekstensi protokol TCP kanggo ngatur operasi sambungan TCP kanthi pangiriman paket bebarengan ing sawetara rute liwat antarmuka jaringan sing beda-beda sing ana gandhengane karo alamat IP sing beda. Dhukungan tambahan kanggo cookie syn, DATA_FIN, autotuning buffer, diagnostik soket, lan panggunaan gendera REUSEADDR, REUSEPORT, lan V6ONLY ing setsockopt.
    • Kanggo tabel routing virtual VRF (Virtual Routing and Forwarding), sing ngidini ngatur operasi sawetara domain nuntun ing siji sistem, mode "ketat" wis dileksanakake. Ing mode iki, tabel virtual mung bisa digandhengake karo tabel nuntun sing ora digunakake ing tabel virtual liyane.
    • Driver nirkabel yaiku ath11k ditambahake ndhukung frekuensi 6GHz lan scanning spektral.
  • Peralatan
    • Kode dibusak kanggo ndhukung arsitektur UniCore, dikembangake ing Pusat Mikroprosesor Universitas Peking lan kalebu ing kernel Linux ing 2011. Arsitèktur iki wis ora dijaga wiwit 2014 lan ora ana dhukungan ing GCC.
    • Dhukungan kanggo arsitektur RISC-V wis dileksanakake kcov (antarmuka debugfs kanggo nganalisa jangkoan kode kernel), kmemleak (sistem deteksi bocor memori), proteksi tumpukan, tandha lompat lan operasi tanpa tikel (multitasking independen saka sinyal timer).
    • Kanggo arsitektur PowerPC, dhukungan kanggo antrian spinlock wis dileksanakake, sing wis ningkatake kinerja kanthi signifikan ing kahanan konflik kunci.
    • Kanggo arsitektur ARM lan ARM64, mekanisme regulasi frekuensi prosesor diaktifake kanthi gawan jadwale (gubernur cpufreq), sing langsung nggunakake informasi saka panjadwal tugas kanggo nggawe keputusan babagan ngganti frekuensi lan bisa langsung ngakses driver cpufreq kanggo ngganti frekuensi kanthi cepet, kanthi cepet nyetel paramèter operasi CPU menyang beban saiki.
    • Pembalap DRM i915 kanggo kertu grafis Intel kalebu dhukungan kanggo chip adhedhasar microarchitecture Lake Rocket lan ditambahaké support dhisikan kanggo kertu diskrèt Intel Xe DG1 Kab.
    • Driver Amdgpu nambahake dhukungan awal kanggo GPU AMD Navi 21 (Navy Flounder) lan Navi 22 (Sienna Cichlid). Dhukungan tambahan kanggo enkoding video UVD / VCE lan mesin akselerasi dekoding kanggo GPU Kepulauan Kidul (Radeon HD 7000).
      Nambahake properti kanggo muter tampilan kanthi 90, 180 utawa 270 derajat.

      Apike, driver kanggo AMD GPU Iku driver paling gedhe ing kernel - iku wis bab 2.71 yuta baris kode, kang kira-kira 10% saka total ukuran kernel (27.81 yuta baris). Ing wektu sing padha, 1.79 yuta baris diitung kanthi file header sing digawe kanthi otomatis kanthi data kanggo registrasi GPU, lan kode C yaiku 366 ewu garis (kanggo mbandhingake, driver Intel i915 kalebu 209 ewu baris, lan Nouveau - 149 ewu).

    • Ing driver Nouveau ditambahake dhukungan kanggo mriksa integritas pigura-by-frame nggunakake CRC (Pemeriksaan Redundansi Siklik) ing mesin tampilan NVIDIA GPU. Implementasine adhedhasar dokumentasi sing diwenehake dening NVIDIA.
    • Pembalap sing ditambahake kanggo panel LCD: Frida FRD350H54004, KOE TX26D202VM0BWA, CDTech S070PWS19HP-FC21, CDTech S070SWV29HG-DC44, Tianma TM070JVHG33 lan Xingbangda XBD599.
    • Subsistem audio ALSA ndhukung Intel Silent Stream (mode daya terus kanggo piranti HDMI external kanggo ngilangke wektu tundha nalika miwiti puter maneh) lan piranti anyar kanggo ngontrol katerangan saka aktivasi mikropon lan tombol bisu, lan uga nambah dhukungan kanggo peralatan anyar, kalebu pengontrol. Longson 7A1000 Kab.
    • Dhukungan tambahan kanggo papan, piranti lan platform ARM: Pine64 PinePhone v1.2, Lenovo IdeaPad Duet 10.1, ASUS Google Nexus 7, Acer Iconia Tab A500, Qualcomm Snapdragon SDM630 (digunakake ing Sony Xperia 10, 10 Plus, XA2, XA2 Plus lan XA2 Ultra), Jetson Xavier NX, Amlogic WeTek Core2, Aspeed EthanolX, limang papan anyar adhedhasar NXP i.MX6, MikroTik RouterBoard 3011, Xiaomi Libra, Microsoft Lumia 950, Sony Xperia Z5, MStar, Microchip Sparx5, Intel Keem Bay, Amazon Alpine v3, Renesas RZ/G2H.

Ing wektu sing padha, Latin American Free Software Foundation kawangun
pilihan rampung free kernel 5.9 - Linux-bebas 5.9-gnu, dibusak saka perangkat kukuh lan driver unsur ngemot non-free komponen utawa kode bagean, orane katrangan diwatesi dening Produsèn. Rilis anyar mateni loading blob ing driver kanggo WiFi rtw8821c lan SoC MediaTek mt8183. Kode reresik blob sing dianyari ing Habanalabs, Wilc1000, amdgpu, mt7615, i915 CSR, Mellanox mlxsw (Spectrum3), r8169 (rtl8125b-2) lan pembalap lan subsistem layar demek x86.

Source: opennet.ru

Add a comment