Rilis kernel Linux 5.8

Sawise rong sasi pembangunan, Linus Torvalds ngenalake release kernel Linux 5.8. Antarane owah-owahan sing paling penting: detektor kondisi balapan KCSAN, mekanisme universal kanggo ngirim kabar menyang ruang pangguna, dhukungan hardware kanggo enkripsi inline, mekanisme keamanan sing ditingkatake kanggo ARM64, dhukungan kanggo prosesor Baikal-T1 Rusia, kemampuan kanggo nginstal procfs kanthi kapisah. , implementasine mekanisme keamanan Shadow kanggo ARM64 Call Stack lan BTI.

Kernel 5.8 dadi sing paling gedhe babagan jumlah owah-owahan kabeh kernel sajrone kabeh proyek kasebut. Kajaba iku, owah-owahan kasebut ora ana hubungane karo subsistem, nanging nutupi bagean-bagean kernel sing beda-beda lan utamane digandhengake karo rework internal lan reresik. Owah-owahan paling gedhe katon ing pembalap. Versi anyar kalebu 17606 ndandani saka 2081 pangembang, sing kena pengaruh kira-kira 20% kabeh file ing gudang kode kernel. Ukuran tembelan 65 MB (pangowahan kena 16180 file, 1043240 baris kode ditambahake, 489854 baris dibusak). Miturut perbandingan, cabang 5.7 duwe 15033 perbaikan lan ukuran tembelan 39 MB. Udakara 37% saka kabeh owah-owahan sing dikenalake ing 5.8 ana gandhengane karo driver piranti, kira-kira 16% owah-owahan ana gandhengane karo nganyari kode khusus kanggo arsitektur hardware, 11% ana gandhengane karo tumpukan jaringan, 3% ana gandhengane karo sistem file, lan 4% ana hubungane karo subsistem kernel internal.

Utama inovasi:

  • Virtualisasi lan Keamanan
    • Loading modul kernel sing duwe bagean karo kode kang bit sing ngidini eksekusi lan nulis bebarengan disetel kasedhiya. Owah-owahan iki dileksanakake minangka bagéan saka project luwih gedhe kanggo nyisihaken kernel saka nggunakake kaca memori sing ngidini execution simultaneous lan nulis.
    • Saiki bisa nggawe conto procfs sing kapisah, ngidini nggunakake sawetara titik gunung procfs, dipasang kanthi opsi sing beda, nanging nggambarake ruang jeneng pengenal proses sing padha (ruang jeneng pid). Sadurunge, kabeh TCTerms gunung procfs mung mirrored siji perwakilan internal, lan owah-owahan kanggo paramèter gunung kena pengaruh kabeh TCTerms gunung liyane sing digandhengake karo proses ID namespace padha. Antarane wilayah sing dipasang kanthi opsi sing beda-beda bisa uga dikarepake yaiku implementasine isolasi entheng kanggo sistem sing dipasang kanthi kemampuan kanggo ndhelikake jinis proses lan simpul informasi tartamtu ing procfs.
    • Dhukungan kanggo mekanisme wis dileksanakake kanggo platform ARM64
      Shadow-Call Stack, Disedhiyakake dening Clang compiler kanggo nglindhungi saka nimpa alamat bali saka fungsi ing acara saka tumpukan buffer overflow. Inti saka pangayoman yaiku kanggo nyimpen alamat bali ing tumpukan "bayangan" sing kapisah sawise nransfer kontrol menyang fungsi lan njupuk alamat kasebut sadurunge metu saka fungsi kasebut.

    • Dhukungan instruksi wis ditambahake kanggo platform ARM64 ARMv8.5-BTI (Indikator Target Cabang) kanggo nglindhungi eksekusi set instruksi sing ora kudu dicabang. Pamblokiran transisi menyang bagean kode sing sewenang-wenang ditindakake kanggo nyegah nggawe gadget ing eksploitasi sing nggunakake teknik pemrograman berorientasi bali (ROP - Return-Oriented Programming; panyerang ora nyoba nyelehake kode kasebut ing memori, nanging ngoperasikake potongan sing wis ana. instruksi mesin sing diakhiri karo instruksi kontrol bali, saka ngendi chain telpon dibangun kanggo entuk fungsi sing dikarepake).
    • Dhukungan hardware ditambahake kanggo enkripsi inline piranti blok (Enkripsi Inline). Piranti enkripsi Inlinep biasane dibangun ing drive, nanging kanthi logis dumunung ing antarane memori sistem lan disk, kanthi transparan enkripsi lan dekripsi I / O adhedhasar tombol sing ditemtokake kernel lan algoritma enkripsi.
    • Nambahake pilihan baris printah kernel "initrdmem" kanggo ngidini sampeyan nemtokake alamat memori fisik initrd nalika nempatake gambar boot dhisikan ing RAM.
    • Kapabilitas anyar sing ditambahake: CAP_PERFMON kanggo ngakses subsistem perf lan ngawasi kinerja. CAP_BPF, sing ngidini operasi BPF tartamtu (kayata ngemot program BPF) sing sadurunge mbutuhake hak CAP_SYS_ADMIN (hak CAP_SYS_ADMIN saiki dipérang dadi kombinasi CAP_BPF, CAP_PERFMON, lan CAP_NET_ADMIN).
    • Ditambahake piranti virtio-mem anyar sing ngijini sampeyan kanggo panas-plug lan panas-plug memori menyang sistem tamu.
    • Pangeling-eling operasi pemetaan sing ditindakake ing / dev / mem yen driver piranti nggunakake area memori sing tumpang tindih.
    • Ditambahake pangayoman kerentanan CROSSTalk/SRBDS, sing ngidini sampeyan mulihake asil instruksi tartamtu sing ditindakake ing inti CPU liyane.
  • Layanan memori lan sistem
    • Ing dokumen sing nemtokake aturan kanggo format kode, Ditampa Rekomendasi kanggo nggunakake terminologi inklusif. Pangembang ora dianjurake nggunakake kombinasi 'master / slave' lan 'blacklist / whitelist', uga tembung 'slave' kanthi kapisah. Rekomendasi mung babagan panggunaan anyar istilah kasebut. Sebutake tembung sing wis ana ing inti bakal tetep ora kena. Ing kode anyar, panggunaan istilah sing ditandhani diidini yen dibutuhake kanggo ndhukung API lan ABI sing kapapar ing ruang pangguna, uga nalika nganyari kode kanggo ndhukung hardware utawa protokol sing wis ana sing spesifikasi mbutuhake panggunaan istilah tartamtu.
    • Alat debugging kalebu KCSAN (Kernel Concurrency Sanitizer), dirancang kanggo deteksi dinamis kahanan lomba nang inti. Panggunaan KCSAN didhukung nalika mbangun ing GCC lan Clang, lan mbutuhake modifikasi khusus ing wektu kompilasi kanggo trek akses memori (breakpoints digunakake sing micu nalika memori diwaca utawa diowahi). Fokus pangembangan KCSAN yaiku pencegahan positif palsu, skalabilitas, lan gampang digunakake.
    • Ditambahake mekanisme universal ngirim kabar saka kernel menyang ruang pangguna. Mekanisme kasebut adhedhasar driver pipa standar lan ngidini sampeyan nyebarake kabar kanthi efisien saka kernel liwat saluran sing mbukak ing ruang pangguna. Titik panampa kabar yaiku pipa sing dibukak ing mode khusus lan ngidini pesen sing ditampa saka kernel bisa diklumpukake ing buffer ring. Reading dileksanakake dening maca biasanipun () fungsi. Pamilik saluran nemtokake sumber ing kernel sing kudu dipantau lan bisa nemtokake saringan kanggo nglirwakake jinis pesen lan acara tartamtu. Saka acara kasebut, mung operasi nganggo tombol sing saiki didhukung, kayata nambah / mbusak tombol lan ngganti atribute. Acara kasebut direncanakake digunakake ing GNOME.
    • 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). Versi anyar nambahake dhukungan kanggo nggunakake pidfd kanggo masang proses menyang spasi jeneng (ngidini pidfd bisa ditemtokake nalika nglakokake panggilan sistem setns). Nggunakake pidfd ngidini sampeyan ngontrol lampiran proses menyang sawetara jinis ruang jeneng kanthi siji panggilan, kanthi signifikan nyuda jumlah panggilan sistem sing dibutuhake lan ngetrapake lampiran ing mode atom (yen lampiran menyang salah sawijining ruang jeneng gagal, sing liyane ora bakal nyambung) .
    • Added telpon sistem anyar faaccessat2 (), beda saka
      aksesat() argumen tambahan karo gendéra sing tundhuk karo Rekomendasi POSIX (sadurungé gendéra iki ditiru ing perpustakaan C, lan faaccessat2 anyar ngidini kanggo dipun ginakaken ing kernel).

    • Ing Cgroup ditambahake setelan memory.swap.high sing bisa digunakake kanggo alon mudhun tugas sing njupuk munggah kakehan papan swap.
    • Kanggo antarmuka I/O asinkron io_uring support ditambahaké kanggo telpon sistem tee ().
    • Tambah mekanisme "BPF iterator, dirancang kanggo ngasilake isi struktur kernel menyang ruang pangguna.
    • Kasedhiya kemampuan kanggo nggunakake buffer ring kanggo exchange data antarane program BPF.
    • Ing mekanisme padata, dirancang kanggo ngatur eksekusi paralel tugas ing kernel, nambah dhukungan kanggo tugas multi-threaded kanthi imbangan beban.
    • Ing mekanisme pstore, sing ngidini sampeyan nyimpen informasi debugging babagan panyebab kacilakan ing wilayah memori sing ora ilang antarane reboots, ditambahake backend kanggo nyimpen informasi kanggo mblokir piranti.
    • Saka cabang kernel PREEMPT_RT dipindhah implementasi kunci lokal.
    • Ditambahake API alokasi buffer anyar (AF_XDP), ngarahke ing simplifying nulis driver jaringan karo XDP (eXpress Data Path) support.
    • Kanggo arsitektur RISC-V, dhukungan kanggo debugging komponen kernel nggunakake KGDB wis dileksanakake.
    • Sadurunge ngeculake 4.8, syarat kanggo versi GCC sing bisa digunakake kanggo mbangun kernel wis ditambah. Ing salah siji saka Rilis sabanjuré wis ngrancang kanggo mundhakaken bar kanggo GCC 4.9.
  • Subsistem disk, I/O lan sistem file
    • Ing Piranti Mapper ditambahake anyar dm-ebs (niru ukuran pemblokiran) handler, kang bisa digunakake kanggo niru ukuran pemblokiran logis cilik (contone, kanggo niru sektor 512-bait ing disk ukuran sektor 4K).
    • Sistem file F2FS saiki ndhukung kompresi nggunakake algoritma LZO-RLE.
    • Ing dm-crypt ditambahake dhukungan kanggo kunci sing dienkripsi.
    • Btrfs wis ningkatake penanganan operasi maca ing mode I/O langsung. Nalika dipasang digawe cepet mriksa subbagean lan direktori sing wis dibusak tanpa wong tuwa.
    • Parameter "nodelete" wis ditambahake menyang CIFS, ngidini mriksa ijin normal ing server, nanging nglarang klien mbusak file utawa direktori.
    • Ext4 wis nambah penanganan kesalahan ENOSPC nalika nggunakake multithreading. xattr wis nambahake dhukungan kanggo gnu.* namespace sing digunakake ing GNU Hurd.
    • Kanggo Ext4 lan XFS, dhukungan kanggo operasi DAX diaktifake (akses langsung menyang sistem file, ngliwati cache kaca tanpa nggunakake level piranti pamblokiran) sing ana hubungane karo file lan direktori individu.
    • Ing telpon sistem statx() flag ditambahake STATX_ATTR_DAX, sing nalika ditemtokake, njupuk informasi nggunakake mesin DAX.
    • EXFAT ditambahake dhukungan kanggo verifikasi area boot.
    • Ing FAT apik loading proaktif saka unsur FS. Nguji drive USB 2TB sing alon nuduhake wektu rampung tes saka 383 dadi 51 detik.
  • Subsistem jaringan
    • Ing kode kanggo ngontrol operasi jembatan jaringan ditambahake dhukungan protokol MRP (Media Redundansi Protocol), sing ngidini kanggo toleransi fault dening looping sawetara ngalih Ethernet.
    • Sistem kontrol lalu lintas (Tc) ditambahake tumindak "gapura" anyar, kang ndadekake iku bisa kanggo nemtokake interval wektu kanggo Processing lan discarding paket tartamtu.
    • Dhukungan kanggo nguji kabel jaringan sing disambungake lan diagnosis mandiri piranti jaringan wis ditambahake menyang kernel lan sarana ethtool.
    • Dhukungan kanggo algoritma MPLS (Multiprotocol Label Switching) wis ditambahake menyang tumpukan IPv6 kanggo nuntun paket nggunakake multiprotocol label switching (MPLS sadurunge didhukung kanggo IPv4).
    • Dhukungan tambahan kanggo ngirim IKE (Internet Key Exchange) lan paket IPSec liwat TCP (RFC 8229) kanggo ngliwati kemungkinan pamblokiran UDP.
    • Ditambahake piranti pamblokiran jaringan rnbd, sing ngijini sampeyan kanggo ngatur akses remot kanggo piranti pemblokiran nggunakake transportasi RDMA (InfiniBand, RoCE, iWARP) lan protokol RTRS.
    • Ing tumpukan TCP ditambahake dhukungan kanggo komprèsi sawetara ing respon selektif ngakoni (SACK).
    • Kanggo IPv6 dileksanakake Dhukungan TCP-LD (RFC 6069, Long Connectivity Disruptions).
  • Peralatan
    • Driver DRM i915 kanggo kertu video Intel kalebu dhukungan kanggo chip Intel Tiger Lake (GEN12) kanthi standar, sing dileksanakake kemampuan kanggo nggunakake SAGV (System Agent Geyserville) sistem kanggo mbosenke nyetel frekuensi lan voltase gumantung konsumsi daya utawa syarat kinerja.
    • Pembalap amdgpu wis nambahake dhukungan kanggo format piksel FP16 lan kemampuan kanggo nggarap buffer ndhelik ing memori video (TMZ, Zona Memori Dipercaya).
    • Dhukungan tambahan kanggo sensor daya kanggo prosesor AMD Zen lan Zen2, uga sensor suhu kanggo AMD Ryzen 4000 Renoir. Dhukungan kanggo njupuk informasi konsumsi daya liwat antarmuka kasedhiya kanggo AMD Zen lan Zen2 RAPL (Running Average Power Limit).
    • Nambahake dhukungan kanggo format modifier NVIDIA menyang driver Nouveau. Kanggo gv100, kemampuan kanggo nggunakake mode scan interlaced wis dileksanakake. Ditambahake deteksi vGPU.
    • Dhukungan ditambahake kanggo Adreno A405, A640 lan A650 GPU menyang driver MSM (Qualcomm).
    • Ditambahake kerangka internal kanggo ngatur sumber daya DRM (Direct Rendering Manager).
    • Dhukungan ditambahake kanggo smartphone Xiaomi Redmi Note 7 lan Samsung Galaxy S2, uga laptop Elm/Hana Chromebook.
    • Pembalap tambahan kanggo panel LCD: ASUS TM5P5 NT35596, Starry KR070PE2T, Leadtek LTK050H3146W, Visionox rm69299, Boe tv105wum-nw0.
    • Dhukungan tambahan kanggo papan lan platform ARM Renesas "RZ/G1H", Realtek RTD1195, Realtek RTD1395/RTD1619, Rockchips RK3326, AMLogic S905D, S905X3, S922XH, Olimex A20-OLinuXino-LIME-eMMino-LIME-eMM
      , Beacon i.MX8m-Mini, Qualcomm SDM660/SDM630, Xnano X5 TV Box, Stinger96, Beaglebone-AI.

    • Dhukungan tambahan kanggo prosesor MIPS Loongson-2K (disingkat Loongson64). Kanggo CPU Loongson 3, dhukungan kanggo virtualisasi nggunakake hypervisor KVM wis ditambahake.
    • Ditambahake
      dhukungan kanggo prosesor Baikal-T1 Rusia lan sistem-on-chip adhedhasar BE-T1000. Prosesor Baikal-T1 ngandhut loro P5600 MIPS 32 r5 superscalar intine operasi ing 1.2 GHz. Chip ngandhut L2 cache (1 MB), DDR3-1600 ECC memori controller, 1 10Gb Ethernet port, 2 1Gb Ethernet, PCIe Gen.3 x4 controller, 2 SATA 3.0 port, USB 2.0, GPIO, UART, SPI, I2C. Prosesor nyedhiyakake dhukungan hardware kanggo virtualisasi, instruksi SIMD lan akselerator kriptografi hardware terpadu sing ndhukung GOST 28147-89. Chip kasebut dikembangake nggunakake unit inti prosesor MIPS32 P5600 Warrior sing dilisensi saka Imagination Technologies.

Ing wektu sing padha, Latin American Free Software Foundation kawangun
pilihan rampung free kernel 5.8 - Linux-bebas 5.8-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 Atom ISP Video, MediaTek 7663 USB/7915 PCIe, Realtek 8723DE WiFi, Renesas PCI xHCI, HabanaLabs Gaudi, Enhanced Asynchronous Sample Rate Converter, Maxim Integrated MAX98390 Speaker Aimplifier, Audio Processor ZL38060 Connected Home lan I2C EEPROM Abdi. Kode reresik blob sing dianyari ing Adreno GPU, HabanaLabs Goya, layar demek x86, driver lan subsistem vt6656 lan btbcm.

Source: opennet.ru

Add a comment