Linux 5.6 nga pagpagawas sa kernel

Pagkahuman sa duha ka bulan nga pag-uswag, si Linus Torvalds gipaila pagpagawas sa kernel Linux 5.6. Lakip sa labing inila nga mga pagbag-o: panagsama sa interface sa WireGuard VPN, suporta alang sa USB4, mga namespace alang sa oras, ang abilidad sa paghimo sa TCP congestion handler gamit ang BPF, inisyal nga suporta alang sa MultiPath TCP, pagtangtang sa kernel sa problema sa 2038, ang mekanismo sa "bootconfig" , ZoneFS.

Ang bag-ong bersyon naglakip sa 13702 nga mga pag-ayo gikan sa 1810 nga mga developer,
gidak-on sa patch - 40 MB (mga pagbag-o nga apektado sa 11577 nga mga file, gidugang 610012 nga linya sa code,
294828 ka laray ang gikuha). Mga 45% sa tanan nga gipresentar sa 5.6
Ang mga pagbag-o adunay kalabotan sa mga driver sa aparato, gibana-bana nga 15% sa mga pagbag-o adunay
kinaiya sa pag-update sa code nga espesipiko sa mga arkitektura sa hardware, 12%
nakig-uban sa network stack, 4% sa mga file system ug 3% sa internal
mga subsystem sa kernel.

nag-unang mga inobasyon:

  • Subsystem sa network
    • Gidugang pagpatuman sa usa ka VPN interface WireGuard, nga gipatuman base sa modernong mga pamaagi sa pag-encrypt (ChaCha20, Poly1305, Curve25519, BLAKE2s), sayon ​​​​nga gamiton, walay komplikasyon, napamatud-an ang kaugalingon sa daghang dagkong mga pagpatuman ug naghatag og taas kaayo nga performance (3,9 ka beses nga mas paspas kay sa OpenVPN sa termino sa throughput). Gigamit sa WireGuard ang konsepto sa encryption key routing, nga naglakip sa paglakip sa usa ka pribado nga yawe sa matag interface sa network ug paggamit niini aron mabugkos ang mga yawe sa publiko. Ang mga yawe sa publiko gibaylo aron magtukod usa ka koneksyon sa parehas nga paagi sa SSH. Cryptographic primitives nga gikinahanglan aron magtrabaho ang WireGuard kini mao ang gidala sa ibabaw gikan sa library zinc isip kabahin sa standard Crypto API ug apil ngadto sa kinauyokan 5.5.
    • Nagsugod integrasyon sa mga sangkap nga gikinahanglan sa pagsuporta sa MPTCP (MultiPath TCP), usa ka extension sa TCP protocol alang sa pag-organisar sa operasyon sa usa ka koneksyon sa TCP uban sa paghatod sa mga packet dungan sa ubay-ubay nga mga ruta pinaagi sa lain-laing mga network interface nga may kalabutan sa lain-laing mga IP address. Alang sa mga aplikasyon sa network, ang ingon nga usa ka aggregated nga koneksyon morag usa ka regular nga koneksyon sa TCP, ug ang tanan nga lohika sa pagbulag sa dagan gihimo sa MPTCP. Mahimong magamit ang Multipath TCP aron madugangan ang throughput ug madugangan ang kasaligan. Pananglitan, ang MPTCP mahimong magamit sa pag-organisar sa pagpadala sa data sa usa ka smartphone gamit ang WiFi ug 4G nga mga link nga dungan, o sa pagpakunhod sa gasto pinaagi sa pagkonektar sa usa ka server gamit ang pipila ka barato nga mga link imbes sa usa ka mahal.
    • Gidugang suporta alang sa network queue processing discipline sch_ets (Gipauswag nga Pagpili sa Transmisyon, IEEE 802.1Qaz), nga naghatag sa abilidad sa pag-apod-apod sa bandwidth tali sa lain-laing mga klase sa trapiko. Kung ang load sa usa ka partikular nga klase sa trapiko ubos sa gigahin nga bandwidth, nan ang ETS nagtugot sa ubang mga klase sa trapiko sa paggamit sa magamit (wala magamit) nga bandwidth. Ang Qdisc sch_ets gi-configure isip usa ka PRIO nga disiplina ug naggamit sa mga klase sa trapiko aron sa pagtino sa estrikto ug gipaambit nga mga limitasyon sa bandwidth. Ang ETS naglihok isip kombinasyon sa mga disiplina SA WALA PA и DRR — kung adunay limitado nga mga klase sa trapiko, PRIO ang gigamit, apan kung wala’y trapiko sa pila, kini molihok sama sa DRR.
    • Nagdugang usa ka bag-ong tipo sa mga programa sa BPF BPF_PROG_TYPE_STRUCT_OPS, nga nagtugot kanimo sa pagpatuman sa kernel function handler pinaagi sa BPF. Sa pagkakaron, kini nga feature magamit na sa pagpatuman sa TCP congestion control algorithms sa porma sa BPF programs. Ingong pananglitan gisugyot Ang programa sa BPF nga adunay pagpatuman sa algorithm DCTCP.
    • Gidawat sa kinauyokan mga pagbag-o, mga himan sa paghubad ethtool uban ang ioctl() nga gamiton interface sa netlink. Gipasayon ​​sa bag-ong interface ang pagdugang og mga extension, pagpausbaw sa pagdumala sa sayop, pagtugot nga ipadala ang mga pahibalo kon magbag-o ang estado, gipasayon ​​ang interaksyon tali sa kernel ug user space, ug gipakunhod ang gidaghanon sa mga gihinganlan nga listahan nga kinahanglang i-synchronize.
    • Gidugang nga pagpatuman sa FQ-PIE (Flow Queue PIE) network queue management algorithm, nga gitumong sa pagpakunhod sa negatibong epekto sa intermediate packet buffering sa edge network equipment (bufferbloat). Gipakita sa FQ-PIE ang taas nga kahusayan kung gigamit sa mga sistema nga adunay mga modem sa cable.
  • Disk Subsystem, I/O ug File Systems
    • Alang sa Btrfs file system gidugang asynchronous nga pagpatuman sa DISCARD nga operasyon (pagmarka sa gipagawas nga mga bloke nga dili na kinahanglan nga pisikal nga tipigan). Sa sinugdan, ang mga operasyon sa DISCARD gihimo nga dungan, nga mahimong mosangpot sa pagkadaot sa pasundayag tungod sa mga drive nga naghulat sa mga katugbang nga mga sugo nga makompleto. Ang asynchronous nga pagpatuman nagtugot kanimo nga dili maghulat sa drive aron makompleto ang DISCARD ug ipahigayon kini nga operasyon sa background.
    • Sa XFS gipatuman Paglimpyo sa code nga migamit sa daan nga 32-bit time counters (ang time_t type gipulihan sa time64_t), nga mosangpot sa 2038 nga problema. Giayo nga mga sayup ug pagkadunot sa memorya nga nahitabo sa 32-bit nga mga platform. Ang kodigo gibag-o aron magamit uban ang gipalapdan nga mga hiyas.
    • Sa ext4 file system gipaila-ila Ang pag-optimize sa performance nga may kalabutan sa pagdumala sa inode locking atol sa mga operasyon sa pagbasa ug pagsulat. Gipauswag ang pasundayag sa pagsulat pag-usab sa Direct I/O mode. Aron mapasimple ang pagdayagnos sa mga problema, ang una ug katapusan nga mga code sa sayup gitipigan sa superblock.
    • Sa F2FS file system gipatuman abilidad sa pagtipig sa data sa compressed nga porma. Para sa indibiduwal nga file o direktoryo, ang compression mahimong ma-enable gamit ang command "chattr +c file" o "chattr +c dir; paghikap dir/file". Aron ma-compress ang tibuok partition, mahimo nimong gamiton ang "-o compress_extension=ext" nga opsyon sa mount utility.
    • Ang kernel naglakip sa usa ka file system ZoneFS, nga nagpasayon ​​sa ubos nga lebel nga trabaho gamit ang mga zoned storage device. Ang mga zoned drive nagpasabot sa mga himan sa mga hard magnetic disk o NVMe SSDs, ang storage space diin gibahin ngadto sa mga zone nga naglangkob sa mga grupo sa mga bloke o mga sektor, diin ang sequential nga pagdugang sa data lamang ang gitugotan, nga nag-update sa tibuok grupo sa mga bloke. Ang FS ZoneFS gimugna sa Western Digital ug gi-associate ang matag zone sa drive sa usa ka bulag nga file nga magamit sa pagtipig sa datos sa hilaw nga mode nga walay pagmaniobra sa sektor ug block level, i.e. Gitugotan ang mga aplikasyon sa paggamit sa file API imbes nga direkta nga ma-access ang block device gamit ang ioctl.
    • Sa NFS, ang pag-mount sa mga partisyon sa UDP gi-disable pinaagi sa default. Gidugang nga suporta alang sa abilidad sa direkta nga pagkopya sa mga file tali sa mga server, nga gihubit sa detalye sa NFS 4.2. Gidugang ang usa ka bag-ong kapilian sa pag-mount nga "softreval", nga nagtugot sa mga kantidad nga gi-cache nga mga hiyas nga magamit kung adunay pagkapakyas sa server. Pananglitan, kung gipiho kini nga kapilian, pagkahuman wala na magamit ang server, nagpabilin nga posible nga molihok sa mga agianan sa partisyon sa NFS ug ma-access ang kasayuran nga nahusay sa cache.
    • Gibuhat pag-optimize sa pasundayag sa mekanismo sa fs-verity, gigamit sa pagmonitor sa integridad ug pag-authenticate sa indibidwal nga mga file. Nadugangan ang sunud-sunod nga katulin sa pagbasa salamat sa paggamit sa usa ka kahoy nga Merkle hash. Ang pasundayag sa FS_IOC_ENABLE_VERITY na-optimize kung walay datos sa cache (preemptive nga pagbasa sa mga panid nga adunay datos ang gipadapat).
  • Virtualization ug Security
    • Ang abilidad sa pag-disable sa SELinux module samtang nagdagan wala na magamit, ug ang pagdiskarga sa usa ka aktibo na nga SELinux gidili sa umaabot. Aron ma-disable ang SELinux kinahanglan nimo nga ipasa ang "selinux=0" parameter sa kernel command line.
    • Gidugang suporta alang sa mga namespace alang sa oras (time namespaces), nga nagtugot kanimo sa pagbugkos sa kahimtang sa sistema sa orasan sa sudlanan (CLOCK_REALTIME,
      CLOCK_MONOTONIC, CLOCK_BOOTTIME), gamita ang imong kaugalingon nga oras sa sudlanan ug, kung ibalhin ang sudlanan sa lain nga host, siguroha nga ang CLOCK_MONOTONIC ug CLOCK_BOOTTIME nga mga pagbasa magpabilin nga wala mabag-o (ikonsiderar ang oras pagkahuman sa pagkarga, adunay o wala gikonsiderar nga naa sa sleep mode ).

    • Ang /dev/random blocking pool gikuha na. Ang kinaiya sa / dev / random susama sa / dev / urandom sa mga termino sa pagpugong sa entropy blocking human sa pool initialization.
    • Ang kinauyokan nga kernel naglakip sa usa ka drayber nga nagtugot sa mga guest system nga nagpadagan sa VirtualBox sa pag-mount sa mga direktoryo nga gi-eksport sa host environment (VirtualBox Shared Folder).
    • Usa ka hugpong sa mga patch ang gidugang sa subsystem sa BPF (BPF dispatser), kung gigamit ang mekanismo sa Retpoline aron mapanalipdan batok sa mga pag-atake sa klase sa Spectre V2, gitugotan ka nga madugangan ang kaepektibo sa pagtawag sa mga programa sa BPF kung mahitabo ang mga panghitabo nga may kalabotan niini (pananglitan, kini nagpaposible nga mapadali ang pagtawag sa mga tigdumala sa XDP kung ang usa ka niabot ang network packet).
    • Gidugang ang drayber aron suportahan ang TEE (Trusted Execution Environment) nga gitukod sa mga AMD APU.
  • Mga serbisyo sa memorya ug sistema
    • Ang BPF adunay dugang nga suporta alang sa global nga mga gimbuhaton. Ang pag-uswag gihimo isip kabahin sa usa ka inisyatiba sa pagdugang og suporta alang sa mga librarya sa mga gimbuhaton nga mahimong iapil sa mga programa sa BPF. Ang sunod nga lakang mao ang pagsuporta sa dinamikong mga extension nga nagtugot sa mga global function nga ma-load, lakip ang pag-ilis sa mga kasamtangan nga global function samtang kini gigamit. Ang subsystem sa BPF nagdugang usab og suporta alang sa usa ka variant sa operasyon sa mapa (gigamit sa pagtipig sa padayon nga datos), nga nagsuporta sa pagpatuman sa batch mode.
    • Gindugangan Ang "cpu_cooling" nga aparato nagtugot kanimo sa pagpabugnaw sa usa ka sobra nga kainit nga CPU pinaagi sa pagbutang niini sa idle nga kahimtang sa mubu nga mga panahon.
    • Gidugang nga tawag sa sistema openat2(), nga nagtanyag og usa ka hugpong sa dugang nga mga bandila aron limitahan ang resolusyon sa agianan sa file (pagdili sa pagtabok sa mga mount point, simbolikong mga link, magic links (/proc/PID/fd), “../” component).
    • Alang sa heterogeneous nga mga sistema nga gibase sa dako.LITTLE nga arkitektura, nga naghiusa sa gamhanan ug dili kaayo episyente nga enerhiya-episyente nga mga CPU cores sa usa ka chip, ang uclamp_min nga parameter gitakda sa dihang nagpatuman sa tinuod nga panahon nga mga buluhaton (mitumaw sa kernel 5.3 adunay mekanismo alang sa pagsiguro sa load). Kini nga parameter nagsiguro nga ang buluhaton ibutang sa scheduler sa usa ka CPU core nga adunay igong performance.
    • Ang kernel gibuhian gikan sa mga problema sa 2038. Gipulihan ang katapusang nahabilin nga mga handler, nga migamit sa 32-bit (signed int) type time_t alang sa epochal time counter, nga, nga gikonsiderar ang report gikan sa 1970, kinahanglan nga moawas sa 2038.
    • Padayon nga pagpaayo sa asynchronous nga I/O interface io_uringdiin gihatag suporta para sa bag-ong mga operasyon: IORING_OP_FALLOCATE (reserbasyon sa walay sulod nga mga dapit), IORING_OP_OPENAT,
      IORING_OP_OPENAT2,
      IORING_OP_CLOSE (pag-abli ug pagsira sa mga file),
      IORING_OP_FILES_UPDATE (pagdugang ug pagtangtang sa mga file gikan sa lista sa dali nga pag-access),
      IORING_OP_STATX (paghangyo sa impormasyon sa file),
      IORING_OP_READ,
      IORING_OP_WRITE (gipasimple nga mga analogue sa IORING_OP_READV ug IORING_OP_WRITEV),
      IORING_OP_FADVISE,
      IORING_OP_MADVISE (asynchronous nga mga variant sa mga tawag nga posix_fadvise ug madvise), IORING_OP_SEND,
      IORING_OP_RECV (pagpadala ug pagdawat sa datos sa network),
      IORING_OP_EPOLL_CTL (pagbuhat og mga operasyon sa epoll file descriptors).

    • Gidugang nga tawag sa sistema pidfd_getfd(), nagtugot sa usa ka proseso sa pagkuha sa usa ka file descriptor alang sa usa ka bukas nga file gikan sa laing proseso.
    • Gipatuman ang mekanismo sa "bootconfig", nga nagtugot, dugang sa mga kapilian sa command line, aron mahibal-an ang mga parameter sa kernel pinaagi sa usa ka setting file. Aron idugang ang ingon nga mga file sa imahe sa initramfs, gisugyot ang bootconfig utility. Kini nga bahin mahimong magamit, pananglitan, aron ma-configure ang mga kprobes sa oras sa pag-boot.
    • Gibuhat pag-usab usa ka mekanismo sa paghulat sa pagsulat ug pagbasa sa datos sa wala hinganli nga mga tubo. Ang pagbag-o nagpaposible sa pagpadali sa mga buluhaton sama sa parallel assembly sa dagkong mga proyekto. Bisan pa, ang pag-optimize mahimong mosangpot sa usa ka kondisyon sa lumba sa GNU make tungod sa usa ka bug sa 4.2.1 nga pagpagawas, nga giayo sa bersyon 4.3.
    • Gidugang ang PR_SET_IO_FLUSHER nga bandera sa prctl(), nga magamit sa pagmarka sa mga proseso nga wala’y memorya nga kinahanglan dili ipailalom sa mga limitasyon kung ang sistema ubos sa memorya.
    • Base sa ION memory distribution system nga gigamit sa Android, usa ka subsystem ang gipatuman dma-buf mga tapok, nga nagtugot kanimo sa pagkontrolar sa alokasyon sa DMA buffers alang sa pagpaambit sa mga lugar sa memorya tali sa mga drayber, aplikasyon ug lain-laing mga subsystem.
  • Mga arkitektura sa hardware
    • Gidugang nga suporta alang sa extension sa E0PD, nga nagpakita sa ARMv8.5 ug nagtugot sa proteksyon batok sa mga pag-atake nga may kalabutan sa espekulatibo nga pagpatuman sa mga instruksyon sa CPU. Ang E0PD-based nga proteksyon moresulta sa mas ubos nga overhead kay sa KPTI (Kernel Page Table Isolation) nga proteksyon.
    • Alang sa mga sistema nga gibase sa ARMv8.5 nga arkitektura, ang suporta alang sa pagtudlo sa RNG gidugang, nga naghatag og access sa usa ka hardware pseudo-random number generator. Sa kernel, ang instruksyon sa RNG gigamit aron makamugna og entropy kung gisugdan ang gihatag nga kernel nga pseudo-random number generator.
    • Gikuha ang suporta alang sa MPX (Memory Protection Extension) nga gidugang sa kernel 3.19 ug nagtugot kanimo sa pag-organisar sa pagsusi sa mga punto aron masiguro nga ang mga utlanan sa mga lugar sa memorya gitahud. Kini nga teknolohiya wala kaylap nga gigamit sa mga compiler ug gikuha gikan sa GCC.
    • Alang sa arkitektura sa RISC-V, gipatuman ang suporta alang sa KASan (Kernel address sanitizer) debugging tool, nga makatabang sa pag-ila sa mga sayup kung nagtrabaho uban ang memorya.
  • Kagamitan
    • Gipatuman nga suporta sa espesipikasyon USB 4.0, nga gibase sa Thunderbolt 3 protocol ug naghatag sa throughput hangtod sa 40 Gbps, samtang nagmintinar sa backward compatibility sa USB 2.0 ug USB 3.2. Pinaagi sa analohiya sa Thunderbolt Ang interface sa USB 4.0 nagtugot kanimo sa pag-tunnel sa lainlaing mga protocol sa usa ka cable nga adunay usa ka konektor Type-C, lakip ang PCIe, Display Port ug USB 3.x, ingon man ang mga pagpatuman sa software sa mga protocol, pananglitan, alang sa pag-organisar sa mga link sa network tali sa mga host. Ang pagpatuman nagtukod sa Thunderbolt driver nga nalakip na sa Linux kernel ug gipahiangay kini sa pagtrabaho sa USB4-compatible nga mga host ug device. Ang mga pagbag-o nagdugang usab suporta alang sa Thunderbolt 3 nga mga aparato sa pagpatuman sa software sa Connection Manager, nga responsable sa paghimo og mga tunnel alang sa pagkonektar sa daghang mga aparato pinaagi sa usa ka konektor.
    • Sa amdgpu driver gidugang inisyal nga suporta alang sa HDCP 2.x (High-bandwidth Digital Content Protection) nga teknolohiya sa pagpanalipod sa kopya. Gidugang nga suporta alang sa AMD Pollock ASIC chip nga gibase sa Raven 2. Gipatuman ang abilidad sa pag-reset sa GPU alang sa Renoir ug Navi nga mga pamilya.
    • DRM driver alang sa Intel video card gidugang Ang suporta sa DSI VDSC alang sa mga chip nga gibase sa Ice Lake ug Tiger Lake microarchitecture, LMEM mmap (device local memory) gipatuman, VBT (Video BIOS Table) parsing gipauswag, HDCP 2.2 nga suporta gipatuman alang sa Coffee Lake chips.
    • Ang pagtrabaho nagpadayon sa paghiusa sa amdkfd driver code (alang sa discrete GPUs, sama sa Fiji, Tonga, Polaris) uban sa amdgpu driver.
    • Ang drayber sa k10temp gi-rework, nagdugang suporta alang sa pagpakita sa boltahe ug kasamtangan nga mga parameter alang sa AMD Zen CPU, ingon man usab sa gipalapdan nga impormasyon gikan sa mga sensor sa temperatura nga gigamit sa Zen ug Zen 2 nga mga CPU.
    • Sa nouveau nga drayber gidugang suporta para sa verified firmware loading mode para sa NVIDIA GPUs base sa Turing microarchitecture (GeForce RTX 2000), nga nagpaposible sa pag-enable sa suporta alang sa 3D acceleration alang niini nga mga card (kinahanglan ang pag-download sa opisyal nga firmware nga adunay NVIDIA digital signature). Gidugang nga suporta alang sa TU10x graphics engine. Nasulbad na ang mga problema sa HD Audio.
    • Gidugang nga suporta alang sa data compression kung ipadala pinaagi sa DisplayPort MST (Multi-Stream Transport).
    • Gidugang bag-ong drayber "ath11k» alang sa Qualcomm wireless chips nga nagsuporta sa 802.11ax.
      Ang drayber gibase sa mac80211 stack ug nagsuporta sa access point, workstation ug mesh network node modes.

    • Pinaagi sa sysfs, ang pag-access sa mabasa nga mga pagbasa sa sensor sa temperatura nga gigamit sa modernong mga hard drive ug SSD gihatag.
    • Gisumite mahinungdanong kausaban sa ALSA sound system, nga gitumong sa pagwagtang sa code sa mga problema sa 2038 (paglikay sa paggamit sa 32-bit time_t type sa snd_pcm_mmap_status ug snd_pcm_mmap_control interface). Gidugang nga suporta alang sa bag-ong mga audio codec
      Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770.

    • Gidugang mga drayber alang sa mga panel sa LCD Logic PD 28, Jimax8729d MIPI-DSI, igenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM940B0,
      BOE NV140FHM-N49,
      Satoz SAT050AT40H12R2,
      Hait nga LS020B1DD01D.

    • Gidugang suporta alang sa ARM boards ug Gen1 nga mga platform sa Amazon Echo (OMAP3630-based), Samsung Galaxy S III mini (GT-I8190), Allwinner Emlid Neutis, Libre Computer ALL-H3-IT, PineH64 Model B, Aibretech Amlogic GX PC,
      Armada SolidRun Clearfog GTR, NXPGateworks GW59xx,
      Tolino Shine 3 eBook reader,
      Naka-embed nga Artists COM (i.MX7ULP), SolidRun Clearfog CX/ITX ug 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. Gidugang nga suporta alang sa PCIe controller nga gigamit sa Raspberry Pi 7180.

Sa samang higayon, ang Latin American Free Software Foundation naporma
kapilian bug-os nga libre nga kernel 5.6 - Linux-libre 5.6-gnu, gitangtang sa firmware ug mga elemento sa drayber nga adunay dili libre nga mga sangkap o mga seksyon sa code, nga ang sakup niini limitado sa tiggama. Ang bag-ong pagpagawas nagpugong sa pag-load sa blob sa mga drayber alang sa AMD TEE, ATH11K ug Mediatek SCP. Gi-update nga blob cleaning code sa AMD PSP, amdgpu ug nouveau nga mga drayber ug subsystem.

Source: opennet.ru

Idugang sa usa ka comment