Linux 6.1 nga pagpagawas sa kernel

Pagkahuman sa duha ka bulan nga pag-uswag, gipresentar ni Linus Torvalds ang pagpagawas sa Linux kernel 6.1. Lakip sa labing inila nga mga pagbag-o: suporta alang sa pagpalambo sa mga drayber ug mga module sa Rust nga pinulongan, modernisasyon sa mekanismo sa pagtino sa gigamit nga mga panid sa panumduman, usa ka espesyal nga manedyer sa memorya alang sa mga programa sa BPF, usa ka sistema alang sa pag-diagnose sa mga problema sa memorya KMSAN, ang KCFI (Kernelk Control). -Flow Integrity) mekanismo sa pagpanalipod, ang pagpaila sa Maple structure tree.

Ang bag-ong bersyon naglakip sa 15115 nga mga pag-ayo gikan sa 2139 nga mga developer, ang gidak-on sa patch mao ang 51 MB, nga gibana-bana nga 2 ka beses nga mas gamay kaysa sa gidak-on sa mga patch gikan sa mga kernels 6.0 ug 5.19. Ang mga pagbag-o nakaapekto sa 13165 ka file, 716247 ka linya sa code ang gidugang, ug 304560 ka linya ang natangtang. Mga 45% sa tanan nga mga pagbag-o nga gipaila sa 6.1 adunay kalabutan sa mga driver sa aparato, gibana-bana nga 14% sa mga pagbag-o ang may kalabutan sa pag-update sa code nga espesipiko sa mga arkitektura sa hardware, 14% ang may kalabutan sa network stack, 3% ang may kalabutan sa mga file system, ug 3% adunay kalabutan sa internal nga mga subsystem sa kernel.

Pangunang mga inobasyon sa kernel 6.1:

  • Mga serbisyo sa memorya ug sistema
    • Gidugang ang abilidad sa paggamit sa Rust isip ikaduhang pinulongan alang sa pagpalambo sa mga drayber ug kernel modules. Ang nag-unang rason sa pagsuporta sa Rust mao ang pagpasayon ​​sa pagsulat sa luwas ug taas nga kalidad nga mga drayber sa device pinaagi sa pagpakunhod sa kalagmitan sa paghimo sa mga sayop sa diha nga nagtrabaho uban sa memorya. Ang suporta sa Rust gi-disable pinaagi sa default ug wala magresulta sa Rust nga gilakip isip usa ka gikinahanglan nga kernel build dependency. Ang kernel hangtod karon nagsagop sa usa ka gamay, gihubo nga bersyon sa mga patch, nga gikunhoran gikan sa 40 ngadto sa 13 ka libo nga mga linya sa code ug naghatag lamang sa gikinahanglan nga minimum, igo sa paghimo sa usa ka yano nga kernel module nga gisulat sa Rust nga pinulongan. Sa umaabot, giplano nga anam-anam nga madugangan ang naglungtad nga pagpaandar, pagbalhin sa ubang mga pagbag-o gikan sa sanga sa Rust-for-Linux. Sa susama, ang mga proyekto gihimo aron magamit ang gisugyot nga imprastraktura aron mapalambo ang mga drayber alang sa NVMe drive, ang 9p network protocol ug ang Apple M1 GPU sa Rust nga sinultian.
    • Alang sa mga sistema nga gibase sa AArch64, RISC-V ug LoongArch nga mga arkitektura nga adunay EFI, ang abilidad sa direktang pagkarga sa mga compressed kernel nga mga imahe gipatuman. Gidugang nga mga tigdumala alang sa pagkarga, pagpadagan ug pagdiskarga sa mga imahe sa kernel, nga direkta nga gitawag gikan sa EFI zboot. Ang mga tigdumala alang sa pag-instalar ug pagtangtang sa mga protocol gikan sa EFI protocol database gidugang usab. Kaniadto, ang pag-unpack gihimo sa usa ka bulag nga bootloader, apan karon mahimo kini sa usa ka handler sa kernel mismo - ang imahe sa kernel naporma ingon usa ka aplikasyon sa EFI.
    • Ang komposisyon naglakip sa bahin sa mga patch nga adunay pagpatuman sa usa ka multi-level nga modelo sa pagdumala sa panumduman, nga nagtugot kanimo sa pagbulag sa mga bangko sa panumduman nga adunay lainlaing mga kinaiya sa pasundayag. Pananglitan, ang pinakadaghang gigamit nga mga panid mahimong tipigan sa pinakapaspas nga panumduman, samtang ang labing panagsa nga gigamit nga mga panid mahimong tipigan sa medyo hinay nga memorya. Ang Kernel 6.1 nagpaila sa usa ka mekanismo alang sa pagtino kung asa ang daghang gigamit nga mga panid nahimutang sa hinay nga memorya aron sila ma-promote ngadto sa paspas nga memorya, ug nagpaila usab sa usa ka kinatibuk-ang konsepto sa mga tier sa memorya ug sa ilang relatibong performance.
    • Naglakip kini sa mekanismo sa MGLRU (Multi-Generational LRU), nga nagpuli sa karaan nga LRU (Least Recently Used) nga pagpatuman base sa duha ka pila nga adunay multi-stage nga istruktura nga mas makatino kung unsang mga panid sa panumduman ang aktwal nga gigamit ug mahimo’g iduso sa gawas. ang swap partition.
    • Gidugang nga suporta alang sa istruktura sa datos nga "maple tree" nga gisugyot sa mga inhenyero sa Oracle, nga gipahimutang ingon usa ka labi ka epektibo nga kapuli sa istruktura nga "pula-itom nga kahoy". Ang maple tree kay usa ka variant sa B-tree nga nagsuporta sa range indexing ug gidesinyo aron epektibong gamiton ang cache sa mga modernong processor. Ang pipila ka mga subsystem sa pagdumala sa panumduman gibalhin na sa punoan sa maple, nga adunay positibo nga epekto sa ilang nahimo. Sa umaabot, ang maple tree mahimong magamit sa pagpatuman sa range locking.
    • Ang katakus sa paghimo og "makadaot" nga mga programa sa BPF nga espesyal nga gidisenyo aron masugdan ang usa ka emerhensya nga pagsira pinaagi sa crash_kexec() nga tawag gidugang sa subsystem sa BPF. Ang ingon nga mga programa sa BPF mahimong gikinahanglan alang sa mga katuyoan sa pag-debug aron masugdan ang paghimo sa usa ka crash dump sa usa ka piho nga punto sa oras. Aron ma-access ang makadaot nga mga operasyon kung magkarga ug BPF nga programa, kinahanglan nimong ipiho ang BPF_F_DESTRUCTIVE nga bandera, i-aktibo ang sysctl kernel.destructive_bpf_enabled, ug adunay mga katungod sa CAP_SYS_BOOT.
    • Alang sa mga programa sa BPF, posible ang pag-ihap sa mga elemento sa cgroup, ingon man ang pag-ihap sa mga kahinguhaan (mga file, vma, proseso, ug uban pa) sa usa ka piho nga hilo o buluhaton. Usa ka bag-ong tipo sa mapa ang gipatuman aron makahimo og mga buffer sa singsing sa gumagamit.
    • Gidugang ang usa ka espesyal nga tawag alang sa alokasyon sa panumduman sa mga programa sa BPF (memory allocator), nga naghatag labi ka luwas nga alokasyon sa panumduman sa konteksto sa BPF kaysa sa sagad nga kmalloc ().
    • Ang una nga bahin sa mga pagbag-o gisagol, nga naghatag kaarang sa paghimo sa mga drayber alang sa mga aparato sa pag-input nga adunay interface nga HID (Human Interface Device), nga gipatuman sa porma sa mga programa sa BPF.
    • Ang kernel bug-os nga nagtangtang sa code aron suportahan ang a.out executable file format, nga wala magamit sa pagpagawas sa 5.1 ug na-disable alang sa dagkong mga arkitektura sukad sa bersyon 5.18 ug 5.19. Ang a.out nga pormat dugay na nga wala magamit sa mga sistema sa Linux, ug ang paghimo sa a.out nga mga file wala gisuportahan sa modernong mga himan sa default nga mga configuration sa Linux. Ang loader alang sa a.out nga mga file mahimong ipatuman sa hingpit sa user space.
    • Alang sa mga sistema nga gibase sa LoongArch instruction set nga arkitektura nga gigamit sa Loongson 3 5000 nga mga processor ug pagpatuman sa bag-ong RISC ISA, susama sa MIPS ug RISC-V, suporta alang sa performance measurement events (perf events), kexec, kdump ug BPF JIT compilation gipatuman .
    • Ang io_uring asynchronous I/O interface nagtanyag og bag-ong mode, IORING_SETUP_DEFER_TASKRUN, nga nagtugot sa ring buffer-related nga trabaho nga temporaryong i-defer hangtod ang usa ka hangyo sa aplikasyon gihimo, nga magamit sa pag-batch sa trabaho ug paglikay sa mga isyu sa latency tungod sa preemption. sayop nga panahon.
    • Ang mga proseso sa user space gihatagan ug abilidad sa pagsugod sa conversion sa usa ka range sa normal nga memory page ngadto sa usa ka set sa dagkong memory page (Transparent Huge-Pages).
    • Gidugang nga pagpatuman sa /dev/userfaultfd device, nga nagtugot sa pag-access sa function sa userfaultfd() system call gamit ang access rights sa FS. Ang userfaultfd functionality nagtugot kanimo sa paghimo og mga handler alang sa pag-access sa wala gigahin nga mga panid sa panumduman (page faults) sa user space.
    • Ang mga kinahanglanon alang sa bersyon sa GNU Make utility nadugangan - labing menos bersyon 3.82 ang gikinahanglan karon aron matukod ang kernel.
  • Disk Subsystem, I/O ug File Systems
    • Mahinungdanon nga pag-optimize sa pasundayag ang gihimo sa Btrfs file system; taliwala sa ubang mga butang, ang paghimo sa FIEMAP ioctl nga tawag nadugangan sa mga order sa kadako. Gidugang nga suporta alang sa asynchronous buffered writes para sa mga aplikasyon gamit ang io_uring. Gidugang nga suporta alang sa mga file nga giprotektahan sa fs-verity sa "pagpadala" nga operasyon.
    • Ang ext4 file system nagdugang ug performance optimizations nga may kalabutan sa pagmentinar sa journal ug read-only nga operasyon.
    • Ang EROFS (Enhanced Read-Only File System) nga sistema sa file, nga gidisenyo alang sa paggamit sa mga partisyon nga ma-access sa read-only mode, nagpatuman sa abilidad sa pagpaambit sa datos nga nadoble sa lain-laing mga file system.
    • Ang statx() nga tawag sa sistema gidugang aron ipakita ang kasayuran kung ang direkta nga I/O mahimong magamit sa usa ka file.
    • Ang suporta sa paghimo og temporaryo nga mga file nga adunay O_TMFILE nga bandera gidugang sa FUSE (Filesystems in User Space) subsystem.
  • Virtualization ug Security
    • Ang pagpatuman sa mekanismo sa pagpanalipod sa CFI (Control Flow Integrity) gipulihan, pagdugang mga tseke sa wala pa ang matag dili direkta nga tawag sa usa ka function aron mahibal-an ang pipila ka mga porma sa dili matino nga pamatasan nga mahimo’g mosangput sa usa ka paglapas sa normal nga mando sa pagpatuman (kontrol nga dagan) ingon usa ka resulta sa paggamit sa mga pagpahimulos nga nag-usab sa mga punto ngadto sa mga gimbuhaton nga gitipigan sa memorya. Ang sumbanan nga pagpatuman sa CFI gikan sa proyekto sa LLVM gipulihan sa usa ka kapilian base usab sa paggamit sa Clang, apan espesyal nga gipahaum aron mapanalipdan ang mga ubos nga lebel nga subsystem ug mga kernel sa operating system. Sa LLVM, usa ka bag-ong implementasyon ang igatanyag sa Clang 16 release ug ma-enable sa opsyon nga "-fsanitize=kcfi". Ang yawe nga kalainan sa bag-ong implementasyon mao nga wala kini nahigot sa link-time optimizations (LTO) ug dili moresulta sa function pointers nga gipulihan sa mga link sa jump table.
    • Para sa mga LSM modules (Linux Security Module), posible nga makamugna og mga handler nga mo-intercept sa mga operasyon aron makahimo og mga namespaces.
    • Gihatag ang mga himan alang sa pag-verify sa PKCS#7 nga mga digital nga pirma sa mga programa sa BPF.
    • Ang abilidad sa pag-abli sa non-blocking mode (O_NONBLOCK), nga wala tuyoa nga gikuha sa kernel 5.6, gibalik sa /dev/random.
    • Sa mga sistema nga adunay x86 nga arkitektura, usa ka pasidaan ang gidugang sa kaso sa pagmapa sa mga panid sa panumduman pinaagi sa mga subsystem sa kernel nga dungan nga nagtugot sa pagpatuman ug pagsulat. Sa umaabot, ang posibilidad sa hingpit nga pagdili sa maong memory mapping gikonsiderar.
    • Gidugang ang mekanismo sa pag-debug sa KMSAN (Kernel Memory Sanitizer) aron mahibal-an ang wala’y nahibal-an nga paggamit sa memorya sa kernel, ingon man ang wala pa nahibal-an nga pagtulo sa memorya tali sa wanang sa gumagamit ug mga aparato.
    • Ang mga pag-ayo nahimo sa crypto-secure CRNG pseudo-random number generator nga gigamit sa getrandom nga tawag. Ang mga pagbag-o giandam ni Jason A. Donenfeld, tagsulat sa VPN WireGuard, ug gitumong sa pagpalambo sa seguridad sa pseudo-random integer extraction.
  • Subsystem sa network
    • Ang TCP stack naghatag og abilidad (disabled by default) sa paggamit sa socket hash tables nga gilain alang sa matag namespace, nga nagpalambo sa performance sa mga sistema nga adunay daghang mga namespaces.
    • Gitangtang ang code aron suportahan ang kabilin nga DECnet protocol. Ang user space API stubs gibilin sa lugar aron tugotan ang mga aplikasyon nga naggamit sa DECnet nga ma-compile, apan kini nga mga aplikasyon dili makakonektar sa network.
    • Ang netlink protocol gidokumento.
  • Kagamitan
    • Ang drayber sa amdgpu midugang og suporta alang sa pagpasa sa DSC (Display Stream Compression) alang sa pagkawalay-wala nga data compression kung magbayloay og impormasyon sa mga screen nga nagsuporta sa taas kaayo nga mga resolusyon. Ang trabaho nagpadayon sa paghatag suporta alang sa AMD RDNA3 (RX 7000) ug CDNA (Instinct) nga mga plataporma. Gidugang nga suporta alang sa DCN 3.2, SMU 13.x, NBIO 7.7, GC 11.x, PSP 13.x, SDMA 6.x ug GMC 11.x IP nga mga sangkap. Ang amdkfd driver (alang sa discrete AMD GPUs sama sa Polaris) naghatag og suporta sa GFX 11.0.3.
    • Ang drayber sa i915 (Intel) naglakip sa suporta alang sa Meteor Lake GPU. Ang Meteor Lake ug ang mas bag-ong mga GPU nagsuporta sa interface sa DP 2.0 (DisplayPort). Gidugang nga mga identifier alang sa mga video card base sa Alder Lake S microarchitecture.
    • Gidugang nga suporta alang sa audio subsystems nga gipatuman sa Apple Silicon, Intel SkyLake ug Intel KabyLake nga mga processor. Ang CS35L41 HDA audio driver nagsuporta sa sleep mode. Gidugang ang suporta sa ASoC (ALSA System on Chip) alang sa integrated audio chips Apple Silicon, AMD Rembrant DSPs, AMD Pink Sardine ACP 6.2, Everest ES8326, Intel Sky Lake ug Kaby Lake, Mediatek MT8186, NXP i.MX8ULP DSPs, Qualcomm SC8280XP, SM8250, SM8450 ug Texas Instruments SRC4392
    • Gidugang nga suporta alang sa mga LCD panel nga Samsung LTL101AL01, B120XAN01.0, R140NWF5 RH, Densitron DMT028VGHMCMI-1A TFT, AUO B133UAN02.1, IVO M133NW4J-R3, Innolux N120NWF1 RH, Densitron DMT116VGHMCMI-01.6A TFT, AUO B116UAN21, IVO M116NW2J-R116, Innolux N1ACA-BEA0800. , INX N9BCA- EAXNUMX , INX NXNUMXBCN-EAXNUMX, Multi-Inno Technology MIXNUMXFT-XNUMX.
    • Gidugang nga suporta alang sa AHCI SATA controllers nga gigamit sa Baikal-T1 SoC.
    • Gidugang nga suporta alang sa Bluetooth chips MediaTek MT7921, Intel Magnetor (CNVi, Integrated Connectivity), Realtek RTL8852C, RTW8852AE ug RTL8761BUV (Edimax BT-8500).
    • Ang driver sa ath11k alang sa Qualcomm wireless modules nagdugang suporta alang sa spectral scanning sa 160 MHz range, gipatuman ang multi-threaded NAPI, ug gipauswag nga suporta alang sa Qualcomm WCN6750 Wi-Fi chips.
    • Gidugang nga mga drayber alang sa keyboard sa PinePhone, InterTouch touchpads (ThinkPad P1 G3), X-Box Adaptive Controller, PhoenixRC Flight Controller, VRC-2 Car Controller, DualSense Edge Controller, IBM Operation Panel, XBOX One Elite remotes, mga tablet XP-PEN Deco Pro S ug Intuos Pro Small (PTH-460).
    • Gidugang nga drayber alang sa Aspeed HACE (Hash ug Crypto Engine) nga mga cryptographic accelerators.
    • Gidugang nga suporta alang sa integrated Thunderbolt/USB4 Intel Meteor Lake controllers.
    • Gidugang nga suporta alang sa Sony Xperia 1 IV, Samsung Galaxy E5, E7 ug Grand Max, Pine64 Pinephone Pro nga mga smartphone.
    • Gidugang nga suporta alang sa ARM SoC ug mga board: AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 ug RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQ8062, IPQ8065, IPQ8, IPQ8195 BL i.MX4MM OSM-S, MT4 (Acer Tomato), Radxa ROCK 1C+, NanoPi RXNUMXS Enterprise Edition, JetHome JetHub DXNUMXp. Gi-update nga mga drayber alang sa SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom ug NXP.

Sa parehas nga oras, ang Latin American Free Software Foundation nagporma usa ka bersyon sa hingpit nga libre nga kernel 6.1 - Linux-libre 6.1-gnu, gitangtang sa mga elemento sa firmware ug mga drayber nga adunay sulud nga dili libre nga mga sangkap o mga seksyon sa code, ang sakup niini mao ang limitado sa tiggama. Ang bag-ong pagpagawas naglimpyo sa bag-ong rtw8852b driver ug DTS nga mga file alang sa nagkalain-laing Qualcomm ug MediaTek SoCs nga adunay mga processor base sa AArch64 nga arkitektura. Gi-update nga blob cleaning code sa mga driver ug subsystems amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI. Ang paglimpyo sa mga karaan nga drayber tm6000 TV cards, cpia2 v4l, sp8870, av7110 gitul-id.

Source: opennet.ru

Idugang sa usa ka comment