Kaluaran kernel Linux 5.6

Sanggeus dua bulan pangwangunan, Linus Torvalds ngenalkeun ngaleupaskeun kernel Linux Ubuntu 5.6. Diantara parobihan anu paling penting: integrasi antarbeungeut WireGuard VPN, dukungan pikeun USB4, ruang ngaran pikeun waktos, kamampuan nyiptakeun panangan kamacetan TCP nganggo BPF, dukungan awal pikeun MultiPath TCP, ngaleungitkeun kernel tina masalah 2038, mékanisme "bootconfig". , ZoneFS.

Versi anyar kalebet 13702 perbaikan tina 1810 pamekar,
ukuran patch - 40 MB (parobahan kapangaruhan 11577 file, 610012 baris kode ditambahkeun,
294828 baris dipiceun). Ngeunaan 45% sadaya dibere dina 5.6
parobahan nu patali jeung drivers alat, kira-kira 15% parobahanana
sikep kana ngamutahirkeun kode khusus pikeun arsitéktur hardware, 12%
pakait jeung tumpukan jaringan, 4% kalawan sistem file na 3% kalawan internal
subsistem kernel.

utama inovasi:

  • Subsistem jaringan
    • Ditambahkeun palaksanaan panganteur VPN WireGuard, anu dilaksanakeun dumasar kana metode enkripsi modern (ChaCha20, Poly1305, Curve25519, BLAKE2s), gampang dianggo, teu aya komplikasi, parantos ngabuktikeun diri dina sajumlah palaksanaan anu ageung sareng nyayogikeun kinerja anu luhur pisan (3,9 kali langkung gancang tibatan OpenVPN dina hal. tina throughput). WireGuard nganggo konsép routing konci énkripsi, anu ngalibatkeun ngalampirkeun konci pribadi ka unggal antarmuka jaringan sareng nganggo éta pikeun ngabeungkeut konci umum. Konci publik ditukeurkeun pikeun nyieun sambungan dina cara nu sarupa jeung SSH. Kriptografi primitif diperlukeun pikeun WireGuard jalan ieu dibabawa ti perpustakaan seng salaku bagian tina standar Crypto API tur kaasup kana inti 5.5.
    • Dimimitian integrasi komponén perlu ngarojong MPTCP (MultiPath TCP), hiji extension tina protokol TCP pikeun pangatur operasi sambungan TCP jeung pangiriman pakét sakaligus sapanjang sababaraha ruteu ngaliwatan interfaces jaringan béda pakait sareng alamat IP béda. Pikeun aplikasi jaringan, sambungan agrégat sapertos sapertos sambungan TCP biasa, sareng sadaya logika pamisahan aliran dilakukeun ku MPTCP. Multipath TCP tiasa dianggo pikeun ningkatkeun throughput sareng ningkatkeun reliabilitas. Salaku conto, MPTCP tiasa dianggo pikeun ngatur pangiriman data dina smartphone nganggo sambungan WiFi sareng 4G sakaligus, atanapi ngirangan biaya ku cara nyambungkeun server nganggo sababaraha tautan anu murah tibatan hiji anu mahal.
    • Ditambahkeun rojongan pikeun disiplin ngolah antrian jaringan sch_ets (Pilihan Transmisi ditingkatkeun, IEEE 802.1Qaz), nu nyadiakeun kamampuhan pikeun ngadistribusikaeun rubakpita antara kelas béda lalulintas. Lamun beban dina kelas lalulintas tinangtu sahandapeun rubakpita dialokasikeun, mangka ETS ngamungkinkeun kelas lalulintas séjén ngagunakeun rubakpita sadia (teu kapake). Qdisc sch_ets geus ngonpigurasi salaku disiplin PRIO sarta ngagunakeun kelas lalulintas keur watesan wates rubakpita ketat tur dibagikeun. ETS dianggo salaku kombinasi disiplin PRIO и DRR - lamun aya kelas lalulintas mastikeun kawates, PRIO dipaké, tapi lamun euweuh lalulintas dina antrian, gawéna kawas DRR.
    • Ditambahkeun tipe anyar program BPF BPF_PROG_TYPE_STRUCT_OPS, nu ngidinan Anjeun pikeun nerapkeun pawang fungsi kernel ngaliwatan BPF. Ayeuna, fitur ieu parantos tiasa dianggo pikeun nerapkeun algoritma kontrol kamacetan TCP dina bentuk program BPF. Salaku conto diusulkeun program BPF kalawan palaksanaan algoritma DCTCP.
    • Ditarima kana inti parobahan, alat narjamahkeun étol kalawan ioctl () ngagunakeun panganteur netlink. Antarbeungeut anyar ngagampangkeun pikeun nambihan ekstensi, ningkatkeun penanganan kasalahan, ngamungkinkeun béwara dikirim nalika parobahan kaayaan, nyederhanakeun interaksi antara kernel sareng rohangan pangguna, sareng ngirangan jumlah daptar anu namina anu kedah disingkronkeun.
    • Ditambahkeun palaksanaan FQ-PIE (Flow Queue PIE) algoritma manajemén antrian jaringan, aimed dina ngurangan dampak negatif tina panyangga pakét panengah dina alat-alat jaringan ujung (bufferbloat). FQ-PIE nunjukkeun efisiensi anu luhur nalika dianggo dina sistem nganggo modem kabel.
  • Subsistem Disk, I/O sareng Sistem File
    • Pikeun sistem file Btrfs ditambahkeun palaksanaan asynchronous operasi DISCARD (nyirian blok dibébaskeun anu henteu kedah disimpen deui sacara fisik). Mimitina, operasi DISCARD dilakukeun sacara sinkron, anu tiasa nyababkeun degradasi kinerja kusabab drive ngantosan paréntah anu cocog pikeun réngsé. Palaksanaan Asynchronous ngamungkinkeun anjeun henteu ngantosan drive pikeun ngarengsekeun DISCARD sareng ngalaksanakeun operasi ieu di latar tukang.
    • Dina XFS dilaksanakan Ngabersihan up kode nu dipaké heubeul 32-bit counters waktos (tipe time_t diganti ku time64_t), ngarah kana masalah 2038. Kasalahan tetep sareng korupsi mémori anu lumangsung dina platform 32-bit. Kodeu parantos didamel deui pikeun damel sareng atribut anu diperpanjang.
    • Pikeun sistem file ext4 ngenalkeun Optimasi kinerja anu aya hubunganana sareng nanganan ngonci inode salami operasi maca sareng nyerat. Ningkatkeun kinerja nulis balik dina mode Direct I / O. Pikeun nyederhanakeun diagnosis masalah, kode kasalahan anu munggaran sareng terakhir disimpen dina superblok.
    • Dina sistem file F2FS dilaksanakeun kamampuhan pikeun nyimpen data dina formulir dikomprés. Pikeun file atanapi diréktori individu, komprési tiasa diaktipkeun nganggo paréntah "chattr + c file" atanapi "chattr + c dir; toél dir/file". Pikeun niiskeun sakabéh partisi, anjeun tiasa nganggo "-o compress_extension = ext" pilihan dina utilitas Gunung.
    • Kernel kalebet sistem file ZoneFS, anu nyederhanakeun pagawéan tingkat rendah sareng alat panyimpen zona. Zoned drive hartina alat dina hard disk magnét atawa NVMe SSDs, gudang di mana dibagi kana zona nu diwangun ku grup blok atawa séktor, nu diwenangkeun ukur nambahkeun sequential data, ngamutahirkeun sakabeh grup blok. FS ZoneFS dikembangkeun ku Western Digital sarta pakait unggal zone dina drive jeung file misah nu bisa dipaké pikeun nyimpen data dina mode atah tanpa manipulasi dina sektor jeung blok tingkat, i.e. Ngidinan aplikasi nganggo file API tinimbang langsung ngaksés alat blok nganggo ioctl.
    • Dina NFS, partisi dipasang dina UDP ditumpurkeun sacara standar. Ditambahkeun rojongan pikeun kamampuhan pikeun nyalin langsung file antara server, didefinisikeun dina NFS 4.2 spésifikasi. Nambahkeun pilihan gunung anyar "softreval", anu ngamungkinkeun nilai atribut sindangan tiasa dianggo upami gagal server. Contona, nalika nangtukeun pilihan ieu, sanggeus server teu sadia, tetep mungkin pikeun mindahkeun sapanjang jalur dina partisi NFS sarta informasi aksés nu geus netep di cache nu.
    • Dilaksanakan optimasi kinerja mékanisme fs-verity, dipaké pikeun ngawas integritas jeung auténtikasi file individu. Ningkatkeun kagancangan maca sekuensial berkat panggunaan tangkal hash Merkle. Kinerja FS_IOC_ENABLE_VERITY parantos dioptimalkeun nalika teu aya data dina cache (bacaan preemptive halaman sareng data parantos diterapkeun).
  • Virtualisasi sareng Kaamanan
    • Kamampuhan pikeun nganonaktipkeun modul SELinux nalika ngajalankeun parantos dicabut, sareng ngabongkar SELinux anu parantos diaktipkeun bakal dilarang di hareup. Pikeun nganonaktipkeun SELinux anjeun kedah ngalangkungan parameter "selinux = 0" dina garis paréntah kernel.
    • Ditambahkeun rojongan pikeun namespaces pikeun waktu (time namespaces), ngamungkinkeun Anjeun pikeun ngabeungkeut kaayaan jam sistem kana wadahna (CLOCK_REALTIME,
      CLOCK_MONOTONIC, CLOCK_BOOTTIME), paké waktos anjeun nyalira dina wadahna sareng, nalika migrasi wadahna ka host anu sanés, pastikeun yén bacaan CLOCK_MONOTONIC sareng CLOCK_BOOTTIME tetep teu robih (pertimbangkeun waktos saatos dimuat, nganggo atanapi henteu nganggo mode sare. ).

    • The / dev / kolam renang blocking acak geus dihapus. Paripolah / dev / acak sarupa / dev / urandom dina watesan nyegah éntropi blocking sanggeus initialization kolam renang.
    • Kernel inti kalebet supir anu ngamungkinkeun sistem tamu ngajalankeun VirtualBox pikeun masang diréktori anu diékspor ku lingkungan host (VirtualBox Shared Folder).
    • Hiji set patch geus ditambahkeun kana subsistem BPF (BPF dispatcher), nalika ngagunakeun mékanisme Retpoline pikeun nangtayungan tina serangan kelas Spectre V2, éta ngamungkinkeun anjeun ningkatkeun efisiensi nelepon program BPF nalika kajadian anu aya hubunganana sareng aranjeunna (contona, ngamungkinkeun anjeun nyepetkeun telepon pawang XDP nalika a pakét jaringan sumping).
    • Ditambahkeun supir pikeun ngadukung TEE (Lingkungan Palaksanaan Dipercanten) diwangun kana AMD APU.
  • Mémori sareng jasa sistem
    • BPF parantos nambihan dukungan pikeun fungsi global. Pangwangunan dilaksanakeun salaku bagian tina inisiatif pikeun nambihan dukungan pikeun perpustakaan fungsi anu tiasa dilebetkeun kana program BPF. Léngkah salajengna nyaéta ngadukung ekstensi dinamis anu ngamungkinkeun fungsi global dimuat, kalebet ngagentos fungsi global anu tos aya nalika dianggo. Subsistem BPF ogé nambihan dukungan pikeun varian operasi peta (dipaké pikeun nyimpen data pengkuh), nu ngarojong palaksanaan dina modeu bets.
    • Katambah Alat "cpu_cooling" ngidinan Anjeun pikeun niiskeun CPU overheated ku cara nempatkeun dina kaayaan dianggurkeun pikeun période pondok.
    • Nambihan panggero sistem openat2(), nu nawarkeun susunan umbul tambahan pikeun ngawatesan resolusi jalur file (larangan nyebrang titik Gunung, Tumbu simbolis, Tumbu magic (/proc/PID/fd), "../" komponén).
    • Pikeun sistem hétérogén dumasar kana arsitéktur big.LITTLE, ngagabungkeun inti CPU hémat énergi anu kuat sareng kurang efisien dina hiji chip, parameter uclamp_min diatur nalika ngalaksanakeun tugas sacara real-time (mecenghul dina kernel 5.3 aya mékanisme pikeun ngamankeun beban). Parameter ieu mastikeun yén tugasna bakal ditempatkeun ku scheduler dina inti CPU anu ngagaduhan kinerja anu cekap.
    • Kernel dibébaskeun tina masalah 2038. Ngaganti panangan anu terakhir, anu nganggo 32-bit (ditandatanganan int) tipe time_t pikeun counter waktos epochal, anu, kalayan ngitung laporan ti 1970, kedah ngabahekeun di 2038.
    • Perbaikan terus tina panganteur I / O Asynchronous io_uringdina diamankeun rojongan pikeun operasi anyar: IORING_OP_FALLOCATE (réservasi wewengkon kosong), IORING_OP_OPENAT,
      IORING_OP_OPENAT2,
      IORING_OP_CLOSE (ngabuka sareng nutup file),
      IORING_OP_FILES_UPDATE (nambahkeun sareng mupus file tina daptar aksés gancang),
      IORING_OP_STATX (paménta inpormasi file),
      IORING_OP_READ,
      IORING_OP_WRITE (analog saderhana tina IORING_OP_READV sareng IORING_OP_WRITEV),
      IORING_OP_FADVISE,
      IORING_OP_MADVISE (varian asinkron tina telepon posix_fadvise sareng madvise), IORING_OP_SEND,
      IORING_OP_RECV (ngirim jeung narima data jaringan),
      IORING_OP_EPOLL_CTL (ngalakukeun operasi dina deskriptor file epoll).

    • Nambihan panggero sistem pidfd_getfd(), ngamungkinkeun prosés pikeun meunangkeun deskriptor file pikeun file kabuka tina prosés séjén.
    • Dilaksanakeun mékanisme "bootconfig", anu ngamungkinkeun, sajaba pilihan garis paréntah, nangtukeun parameter tina kernel ngaliwatan file setelan. Pikeun nambihan file sapertos kana gambar initramfs, utilitas bootconfig diusulkeun. Fitur ieu tiasa dianggo, contona, pikeun ngonpigurasikeun kprobes dina waktos boot.
    • Didesain deui mékanisme pikeun nungguan nulis jeung maca data dina pipa unnamed. Parobihan éta ngamungkinkeun pikeun nyepetkeun tugas sapertos paralel paralel proyék ageung. Sanajan kitu, optimasi bisa ngakibatkeun kaayaan lomba di GNU make alatan bug dina release 4.2.1, nu geus dibereskeun dina versi 4.3.
    • Ditambahkeun bandéra PR_SET_IO_FLUSHER ka prctl (), nu bisa dipaké pikeun nandaan prosés memori-gratis nu teu kudu tunduk kana wates nalika sistem low on memori.
    • Dumasar kana sistem distribusi mémori ION anu dianggo dina Android, subsistem parantos dilaksanakeun dma-buf tumpukan, nu ngidinan Anjeun pikeun ngadalikeun alokasi panyangga DMA pikeun babagi wewengkon memori antara drivers, aplikasi tur sagala rupa subsistem.
  • Arsitéktur hardware
    • Ditambahkeun dukungan pikeun extension E0PD, anu muncul dina ARMv8.5 sareng ngamungkinkeun panyalindungan ngalawan serangan anu aya hubunganana sareng palaksanaan spekulatif paréntah dina CPU. Perlindungan dumasar-E0PD nyababkeun overhead langkung handap tina panyalindungan KPTI (Kernel Page Table Isolasi).
    • Pikeun sistem dumasar kana arsitektur ARMv8.5, rojongan pikeun instruksi RNG geus ditambahkeun, nyadiakeun aksés ka hardware angka pseudo-acak generator. Dina kernel, instruksi RNG dipaké pikeun ngahasilkeun éntropi nalika initializing generator angka pseudo-acak kernel-disadiakeun.
    • Dipiceun rojongan pikeun MPX (Memori Protection Extensions) ditambahkeun dina kernel 3.19 sarta ngidinan Anjeun pikeun ngatur mariksa pointers pikeun mastikeun yén wates wewengkon memori dimangfaatkeun. Téknologi ieu henteu seueur dianggo dina kompiler sareng dikaluarkeun tina GCC.
    • Pikeun arsitéktur RISC-V, dukungan pikeun alat debugging KASan (Alamat Kernel sanitizer) parantos dilaksanakeun, anu ngabantosan ngaidentipikasi kasalahan nalika damel sareng mémori.
  • pakakas
    • rojongan spésifikasi dilaksanakeun USB 4.0, nu dumasar kana protokol Thunderbolt 3 jeung nyadiakeun throughput nepi ka 40 Gbps, bari ngajaga kasaluyuan mundur kalawan USB 2.0 jeung USB 3.2. Ku analogi jeung Thunderbolt USB 4.0 panganteur ngidinan Anjeun pikeun torowongan protokol béda ngaliwatan kabel tunggal jeung konektor a Tipe-c, kaasup PCIe, Témbongkeun Port jeung USB 3.x, kitu ogé palaksanaan software tina protokol, Contona, pikeun ngatur Tumbu jaringan antara host. Palaksanaan diwangun dina supir Thunderbolt anu parantos kalebet dina kernel Linux sareng nyaluyukeun kana damel sareng host sareng alat anu cocog sareng USB4. Parobihan ogé nambihan dukungan pikeun alat Thunderbolt 3 kana palaksanaan parangkat lunak Manajer Sambungan, anu tanggung jawab pikeun nyiptakeun torowongan pikeun ngahubungkeun sababaraha alat liwat hiji konektor.
    • Dina supir amdgpu ditambahkeun rojongan awal pikeun HDCP 2.x (High-bandwidth Digital Content Protection) téhnologi panyalindungan salinan. Ditambahkeun rojongan pikeun chip AMD Pollock ASIC dumasar Gagak 2. Dilaksanakeun kamampuhan pikeun ngareset GPU pikeun kulawarga Renoir na Navi.
    • supir DRM pikeun kartu vidéo Intel ditambahkeun DSI VDSC rojongan pikeun chip dumasar kana És Lake jeung Macan Lake microarchitecture, LMEM mmap (alat memori lokal) geus dilaksanakeun, VBT (Video mios Table) parsing geus ningkat, HDCP 2.2 rojongan geus dilaksanakeun pikeun chip Kopi Lake.
    • Karya dituluykeun pikeun ngahijikeun kode supir amdkfd (pikeun GPU diskrit, sapertos Fiji, Tonga, Polaris) sareng supir amdgpu.
    • Supir k10temp parantos didamel deui, nambihan dukungan pikeun nunjukkeun tegangan sareng parameter ayeuna pikeun CPU AMD Zen, ogé inpormasi anu dilegakeun tina sensor suhu anu dianggo dina Zen sareng Zen 2 CPU.
    • Dina supir nouveau ditambahkeun dukungan pikeun modeu loading firmware anu diverifikasi pikeun GPU NVIDIA dumasar kana mikroarsitektur Turing (GeForce RTX 2000), anu ngamungkinkeun pikeun ngaktifkeun dukungan pikeun akselerasi 3D pikeun kartu-kartu ieu (perlu ngaunduh firmware resmi sareng tanda tangan digital NVIDIA). Ditambahkeun dukungan pikeun mesin grafik TU10x. Masalah sareng HD Audio parantos direngsekeun.
    • Ditambahkeun dukungan pikeun komprési data nalika dikirimkeun via DisplayPort MST (Multi-Stream Transport).
    • Ditambahkeun supir anyar"atoh11k»pikeun chip nirkabel Qualcomm nu ngarojong 802.11ax.
      Supir dumasar kana tumpukan mac80211 sareng ngadukung titik aksés, workstation sareng modeu titik jaringan bolong.

    • Ngaliwatan sysfs, aksés ka bacaan sensor suhu bisa dibaca dipaké dina hard drive modern jeung SSDs disadiakeun.
    • Dikintunkeun parobahan signifikan kana sistem sora ALSA, aimed di ridding kode tina masalah 2038 (Ngahindarkeun pamakéan 32-bit tipe time_t dina snd_pcm_mmap_status na snd_pcm_mmap_control interfaces). Ditambahkeun dukungan pikeun codec audio énggal
      Qualcomm WCD9340 / WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770.

    • Ditambahkeun drivers pikeun panels LCD Logika PD 28, Jimax8729d MIPI-DSI, igenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM940B0,
      BOE NV140FHM-N49,
      Satoz SAT050AT40H12R2,
      Seukeut LS020B1DD01D.

    • Ditambahkeun rojongan pikeun papan ARM jeung platform Gen1 Amazon Echo (OMAP3630 basis), Samsung Galaxy S III mini (GT-I8190), Allwinner Emlid Neutis, Libre Computer ALL-H3-IT, PineH64 Modél B, Aibretech Amlogic GX PC,
      Armada SolidRun Clearfog GTR, NXPGateworks GW59xx,
      Pamaca eBook Tolino Shine 3,
      Embedded Artists COM (i.MX7ULP), SolidRun Clearfog CX/ITX and Honeycomb (LX2160A), Google Coral Edge TPU (i.MX8MQ),
      Rockchip Radxa Dalang Carrier, Radxa Rock Pi N10, VMARC RK3399Pro SOM
      ST Ericsson HREF520, Inforce 6640, SC7180 IDP, Atmel/Microchip AM9X60 (ARM926 SoC, Kizboxmini), ST stm32mp15, AM3703/AM3715/DM3725, ST Ericsson ab8505, Unisoc, SC9863A Qualcomm. Ditambahkeun dukungan pikeun pengendali PCIe anu dianggo dina Raspberry Pi 7180.

Dina waktos anu sami, Yayasan Perangkat Lunak Gratis Amérika Latin kabentuk
pilihan lengkep bebas kernel 5.6 - Linux-bébas 5.6-gnu, diberesihan tina firmware sareng elemen supir anu ngandung komponén non-gratis atanapi bagian kode, ruang lingkup anu diwatesan ku produsén. Pelepasan énggal nganonaktipkeun beban blob dina supir pikeun AMD TEE, ATH11K sareng Mediatek SCP. Kode beberesih blob diropéa dina AMD PSP, amdgpu sareng supir sareng subsistem nouveau.

sumber: opennet.ru

Tambahkeun komentar