Linux 6.3 nga pagpagawas sa kernel

Pagkahuman sa duha ka bulan nga pag-uswag, gipagawas ni Linus Torvalds ang Linux 6.3 kernel. Lakip sa labing inila nga mga pagbag-o: paglimpyo sa wala na magamit nga mga platform sa ARM ug mga drayber sa graphic, padayon nga pag-integrate sa suporta sa Rust nga pinulongan, hwnoise utility, suporta alang sa pula nga itom nga mga istruktura sa kahoy sa BPF, BIG TCP mode para sa IPv4, built-in nga Dhrystone benchmark, abilidad sa pag-disable. execution sa memfd, suporta sa paghimo og HID drivers gamit ang BPF, ang mga pagbag-o gihimo sa Btrfs aron makunhuran ang block group fragmentation.

Gidawat sa bag-ong bersyon ang 15637 nga mga pag-ayo gikan sa 2055 nga mga developer; gidak-on sa patch - 76 MB (mga pagbag-o nga apektado sa 14296 nga mga file, 1023183 nga linya sa code gidugang, 883103 nga mga linya gitangtang). Alang sa pagtandi, sa miaging bersyon, 16843 nga mga pag-ayo ang gisugyot gikan sa 2178 nga mga developer; gidak-on sa patch - 62 MB. Mga 39% sa tanan nga mga pagbag-o nga gipaila sa 6.3 kernel adunay kalabotan sa mga driver sa aparato, gibana-bana nga 15% sa mga pagbag-o adunay kalabotan sa pag-update sa code nga espesipiko sa mga arkitektura sa hardware, 10% adunay kalabotan sa stack sa network, 5% sa mga sistema sa file, ug 3 % ngadto sa internal nga kernel subsystems.

Pangunang mga inobasyon sa kernel 6.3:

  • Mga serbisyo sa memorya ug sistema
    • Ang usa ka mahinungdanon nga paglimpyo sa code nga may kalabutan sa daan ug wala magamit nga mga ARM board ang gihimo, nga nakapakunhod sa gidak-on sa mga tinubdan sa kernel sa 150 ka libo nga mga linya. Gikuha ang kapin sa 40 ka karaan nga mga platform sa ARM.
    • Gipatuman ang abilidad sa paghimo og mga drayber alang sa mga input device nga adunay HID (Human Interface Device) nga interface nga gipatuman sa porma sa mga programa sa BPF.
    • Padayon nga pag-port gikan sa Rust-for-Linux nga sanga sa dugang nga gamit nga may kalabutan sa paggamit sa Rust isip ikaduhang pinulongan alang sa pagpalambo sa mga drayber ug kernel modules. Ang suporta sa Rust dili mahimo pinaagi sa default, ug wala magresulta sa Rust nga gilakip ingon usa ka mandatory nga kernel build dependency. Ang pag-andar nga gitanyag sa nangaging mga pagpagawas gipalapdan uban ang suporta alang sa mga tipo sa Arc (usa ka pagpatuman sa mga pointer nga adunay usa ka reference count), ScopeGuard (paglimpyo gihimo kung wala sa sakup), ug Foreign Ownable (naghatag ug pointer nga paglihok tali sa C ug Rust code) . Gitangtang ang module nga 'hulam' gikan sa package 'aloc' (type 'Cow' ug trait 'ToOwned'). Namatikdan nga ang kahimtang sa suporta alang sa Rust sa kernel hapit na magsugod sa pagdawat sa una nga mga module nga gisulat sa Rust sa kernel.
    • User-mode Linux (pagpadagan sa kernel isip proseso sa user) sa x86-64 nga mga sistema nagsuporta sa code nga gisulat sa Rust. Gidugang nga suporta alang sa pagtukod sa User-mode Linux gamit ang clang nga adunay link-time optimizations enabled (LTO).
    • Gidugang ang hwnoise utility aron masubay ang mga paglangan tungod sa pamatasan sa hardware. Ang mga pagtipas sa oras sa pagpatuman sa mga operasyon (jitter) determinado kung ang pag-interrupt nga pagproseso gi-disable, nga molapas sa usa ka microsecond sa 10 minuto nga mga kalkulasyon.
    • Usa ka kernel module ang gidugang nga adunay Dhrystone benchmark nga implementasyon nga magamit sa pagtimbang-timbang sa performance sa CPU sa mga configuration nga walay user-space nga mga component (pananglitan, sa porting stage alang sa bag-ong mga SoC nga nagpatuman lamang sa kernel loading).
    • Gidugang ang "cgroup.memory=nobpf" kernel command line nga opsyon aron ma-disable ang memory consumption accounting para sa mga programa sa BPF, nga mahimong mapuslanon alang sa mga sistema nga adunay nahilit nga mga sudlanan.
    • Para sa mga programa sa BPF, gisugyot ang pagpatuman sa red-black tree data structure, nga naggamit sa kfunc + kptr (bpf_rbtree_add, bpf_rbtree_remove, bpf_rbtree_first) imbes nga magdugang ug bag-ong mapping type.
    • Sa mekanismo sa restartable sequences (rseq, restartable sequences) gidugang ang abilidad sa pagpasa sa parallel execution identifiers (memory-map concurrency ID) nga giila sa CPU number sa mga proseso. Ang Rseq naghatag usa ka paagi alang sa dali nga pagpahigayon sa mga operasyon nga atomiko nga, kung mabalda sa lain nga hilo, gilimpyohan ug gisulayan pag-usab.
    • Gisuportahan sa mga processor sa ARM ang mga panudlo sa SME 2 (Scalable Matrix Extension).
    • Alang sa s390x ug RISC-V RV64 nga mga arkitektura, ang suporta alang sa "BPF trampoline" nga mekanismo gipatuman, nga nagtugot sa pagminus sa overhead sa pagbalhin sa mga tawag tali sa kernel ug BPF nga mga programa.
    • Sa mga sistema nga adunay mga processor nga gibase sa RISC-V nga arkitektura, ang paggamit sa "ZBB" nga mga panudlo gipatuman aron mapadali ang mga operasyon sa string.
    • Para sa mga sistema nga gibase sa LoongArch instruction set architecture (gigamit sa Loongson 3 5000 nga mga processor ug nagpatuman sa bag-ong RISC ISA nga susama sa MIPS ug RISC-V), suporta alang sa kernel address space randomization (KASLR), relokasyon sa kernel sa memorya (relokasyon). ), paghunong sa mga punto sa hardware ug mekanismo sa kprobe.
    • Ang mekanismo sa DAMOS (Data Access Monitoring-based Operation Schemes), nga nagtugot kanimo sa pagpahigawas sa memorya base sa frequency sa pag-access sa memorya, nagsuporta sa mga filter aron dili maapil ang pipila ka mga bahin sa memorya gikan sa pagproseso sa DAMOS.
    • Ang labing gamay nga standard nga C library nga Nolibc nagpatuman sa suporta alang sa s390 nga arkitektura ug ang Arm Thumb1 nga set sa panudlo (dugang sa suporta alang sa ARM, AArch64, i386, x86_64, RISC-V ug MIPS).
    • Ang Objtool na-optimize aron mapadali ang mga pagtukod sa kernel ug makunhuran ang peak nga pagkonsumo sa memorya sa panahon sa pagtukod (sa paghimo sa kernel sa "allyesconfig" mode, wala’y mga problema sa pinugos nga pagtapos sa mga proseso sa mga sistema nga adunay 32 GB nga RAM).
    • Ang suporta alang sa asembliya sa kernel sa Intel ICC compiler gihunong, nga wala’y trabaho sa dugay nga panahon ug wala’y nagpahayag nga gusto nga ayohon kini.
  • Disk Subsystem, I/O ug File Systems
    • Gisuportahan sa tmpfs ang gi-mount nga filesystem user ID mapping, nga gigamit sa pagmapa sa mga file sa usa ka piho nga user sa usa ka naka-mount nga langyaw nga partisyon sa lain nga tiggamit sa karon nga sistema.
    • Sa Btrfs, aron makunhuran ang pagkabahinbahin sa mga grupo sa mga bloke, ang mga gilapdon gibahin sa gidak-on kung gigahin ang mga bloke, i.e. bisan unsang grupo sa mga bloke karon limitado sa gamay (hangtod sa 128KB), medium (hangtod sa 8MB), ug dagkong mga gilapdon. Ang pagpatuman sa raid56 gi-refactor. Gidisenyo usab nga code alang sa pagsusi sa mga checksum. Gihimo ang pag-optimize sa pasundayag aron mapadali ang operasyon sa pagpadala hangtod sa 10 ka beses pinaagi sa pag-cache sa utime alang sa mga direktoryo ug pagpatuman sa mga mando kung gikinahanglan. 10x mas paspas nga mga operasyon sa fiemap pinaagi sa paglaktaw sa mga pagsusi sa backlink alang sa gipaambit nga datos (mga snapshot). Ang mga operasyon nga adunay metadata gipadali sa XNUMX% pinaagi sa pag-optimize sa pagpangita sa mga yawe sa mga istruktura sa b-tree.
    • Gipauswag nga pasundayag sa ext4 FS pinaagi sa pagtugot sa daghang mga proseso nga dungan nga himuon ang direkta nga mga operasyon sa I / O sa mga pre-allocated nga mga bloke gamit ang gipaambit nga mga kandado sa inode imbis nga mga eksklusibo nga kandado.
    • Sa f2fs, nahimo ang trabaho aron mapauswag ang pagkabasa sa code. Giayo ang hinungdanon nga mga isyu nga may kalabotan sa pagsulat sa atomic ug ang bag-ong gidak-on nga cache.
    • Ang EROFS (Enhanced Read-Only File System), nga gidisenyo alang sa paggamit sa read-only nga mga partisyon, nagpatuman sa abilidad sa pagbugkos sa compressed file decompression operations ngadto sa CPU aron makunhuran ang mga paglangan sa pag-access sa datos.
    • Ang BFQ I/O scheduler midugang og suporta para sa advanced spinning disk drives, sama niadtong naggamit ug multiple separately controlled drives (Multi Actuator).
    • Ang suporta alang sa data encryption gamit ang AES-SHA2 algorithm gidugang sa pagpatuman sa NFS client ug server.
    • Ang FUSE (Filesystems In User Space) subsystem nagdugang og suporta alang sa mekanismo sa pagpalapad sa pangutana, nga nagtugot kanimo sa pagbutang og dugang nga impormasyon sa pangutana. Pinasukad sa kini nga bahin, gipatuman ang pagdugang sa mga identifier sa grupo sa hangyo sa FS, nga kinahanglan nga tagdon ang mga katungod sa pag-access kung maghimo mga butang sa FS (paghimo, mkdir, symlink, mknod).
  • Virtualization ug Security
    • Ang KVM hypervisor alang sa x86 nga mga sistema nagdugang suporta alang sa gipalawig nga Hyper-V hypercalls ug naghatag kanila sa pagpasa ngadto sa usa ka handler nga nagdagan sa usa ka user-space host environment. Ang pagbag-o nagpaposible sa pagpatuman sa suporta alang sa nested nga paglansad sa Hyper-V hypervisor.
    • Gipasayon ​​sa KVM ang pagpugong sa pag-access sa sistema sa bisita sa PMU (Performance Monitor Unit) nga mga panghitabo nga may kalabutan sa pagsukod sa performance.
    • Ang mekanismo sa memfd, nga nagtugot kanimo sa pag-ila sa usa ka lugar sa memorya pinaagi sa usa ka deskriptor sa file nga gipasa taliwala sa mga proseso, gidugang ang abilidad sa paghimo sa mga lugar diin gidili ang pagpatuman sa code (non-executable memfd) ug imposible nga itakda ang mga katungod sa pagpatay sa sa umaabot.
    • Usa ka bag-ong PR_SET_MDWE prctl nga operasyon ang gidugang aron babagan ang mga pagsulay nga maglakip sa mga katungod sa pag-access sa memorya nga nagtugot sa pagsulat ug pagpatuman sa parehas nga oras.
    • Ang proteksyon batok sa mga pag-atake sa klase sa Spectre gidugang ug gipalihok pinaagi sa default, base sa IBRS (Enhanced Indirect Branch Restricted Speculation) nga awtomatikong mode nga gisugyot sa AMD Zen 4 nga mga processor, nga nagtugot kanimo sa pagpahiangay ug pag-disable sa espekulatibo nga pagpatuman sa mga instruksyon sa panahon sa pagproseso sa interrupt. , mga tawag sa sistema, ug mga switch sa konteksto. Ang gisugyot nga proteksyon nagresulta sa mas ubos nga overhead kumpara sa proteksyon sa Retpoline.
    • Gitubag ang usa ka kahuyang nga mahimong makalikay sa proteksyon sa pag-atake sa Specter v2 kung naggamit sa dungan nga teknolohiya sa multithreading (SMT o Hyper-Threading) ug tungod sa pag-disable sa STIBP (Single Thread Indirect Branch Predictors) sa pagpili sa mode sa pagpanalipod sa IBRS.
    • Alang sa mga sistema nga nakabase sa ARM64, usa ka bag-ong target sa pagtukod sa "virtconfig" ang gidugang, nga, kung gipili, gipalihok lamang ang minimum nga set sa mga sangkap sa kernel nga gikinahanglan aron ma-boot sa mga sistema sa virtualization.
    • Gidugang nga suporta alang sa pagsala sa mga tawag sa sistema gamit ang mekanismo sa seccom para sa m68k nga arkitektura.
    • Gidugang nga suporta alang sa mga built-in nga CRB TPM2 (Command Response Buffer) nga mga aparato nga gibase sa teknolohiya sa Microsoft Pluton.
  • Subsystem sa network
    • Usa ka interface sa netlink ang gidugang aron ma-configure ang sublayer sa PLCA (Physical Layer Collision Avoidance), nga gihubit sa detalye sa IEEE 802.3cg-2019 ug gigamit sa 802.3cg (10Base-T1S) Ethernet nga mga network nga na-optimize alang sa pagkonekta sa mga aparato sa IoT ug mga sistema sa industriya. Ang paggamit sa PLCA nagpalambo sa performance sa shared media Ethernet networks.
    • Ang suporta alang sa "wireless extensions" API alang sa pagdumala sa WiFi 7 (802.11be) nga mga wireless interface gihunong na, tungod kay kini nga API wala maglakip sa tanan nga gikinahanglan nga mga setting. Kung mosulay sa paggamit sa "wireless extensions" nga API, nga padayon nga gisuportahan ingon usa ka gisundog nga layer, usa ka pasidaan ang ipakita karon alang sa kadaghanan nga mga aparato karon.
    • Ang detalyadong dokumentasyon sa netlink API giandam na (para sa mga developers sa kernel ug para sa mga developers sa user-space applications). Ang ynl-gen-c utility kay gipatuman aron makamugna og C-code base sa YAML specifications sa Netlink protocol.
    • Ang suporta alang sa IP_LOCAL_PORT_RANGE nga opsyon gidugang sa network sockets aron pasimplehon ang configuration sa outgoing connections pinaagi sa address translators nga dili mogamit sa SNAT. Kung gigamit ang parehas nga IP address sa daghang mga host, ang IP_LOCAL_PORT_RANGE nagtugot sa matag host nga mogamit sa kaugalingon nga hanay sa mga outgoing port sa network, ug sa ganghaan aron ipasa ang mga pakete base sa mga numero sa pantalan.
    • Para sa MPTCP (MultiPath TCP), ang abilidad sa pagdumala sa nagkasagol nga sapa nga naggamit sa IPv4 ug IPv6 protocols gipatuman. Ang MPTCP usa ka extension sa TCP protocol alang sa pag-organisar sa operasyon sa usa ka koneksyon sa TCP uban ang paghatud sa mga pakete nga dungan sa daghang mga ruta pinaagi sa lainlaing mga interface sa network nga gigapos sa lainlaing mga adres sa IP.
    • Alang sa IPv4, ang posibilidad sa paggamit sa BIG TCP extension gipatuman, nga nagtugot sa pagdugang sa maximum TCP packet size ngadto sa 4 GB aron ma-optimize ang operasyon sa high-speed internal network sa mga data center. Kini nga pagtaas sa gidak-on sa pakete nga adunay 16-bit header field makab-ot pinaagi sa pagpatuman sa "jumbo" nga mga pakete nga adunay IP header nga gidak-on nga gibutang sa 0 ug ang aktwal nga gidak-on gipasa sa usa ka bulag nga 32-bit nga field sa usa ka bulag nga gilakip nga header.
    • Usa ka bag-ong sysctl parameter default_rps_mask ang gidugang, diin mahimo nimong itakda ang default RPS (Receive Packet Steering) configuration, nga responsable sa pag-apod-apod sa pagproseso sa umaabot nga trapiko sa mga CPU core sa lebel sa interrupt handler.
    • Gihunong ang suporta sa mga disiplina sa pagpila aron mapugngan ang CBQ (class-based queuing), ATM (ATM virtual circuits), dsmark (differentiated service marker), tcindex (traffic-control index), ug RSVP (resource reservation protocol) nga trapiko. Kini nga mga disiplina dugay nang gibiyaan ug walay bisan usa nga andam nga magpadayon sa ilang suporta.
  • Kagamitan
    • Gitangtang ang tanang DRI1 based graphics drivers: i810 (daan nga Intel 8xx integrated graphics cards), mga (Matrox GPU), r128 (ATI Rage 128 GPU lakip ang Rage Fury, XPERT 99 ug XPERT 128 cards), savage (S3 Savage GPU), sis ( Crusty SiS GPU), tdfx (3dfx Voodoo) ug pinaagi sa (VIA IGP), nga wala magamit sa 2016 ug wala gisuportahan sa Mesa sukad 2012.
    • Gitangtang ang obsolete framebuffer (fbdev) drivers omap1, s3c2410, tmiofb ug w100fb.
    • Usa ka drayber sa DRM ang gidugang alang sa VPU (Versatile Processing Unit) nga gisagol sa Intel Meteor Lake (ika-14 nga henerasyon) nga mga CPU, nga gidisenyo aron mapadali ang panan-aw sa kompyuter ug mga operasyon sa pagkat-on sa makina. Gipatuman ang drayber gamit ang subsystem nga "accel", nga gitumong sa paghatag suporta sa mga accelerator sa pag-compute, nga mahimong mahatag pareho sa porma sa bulag nga ASIC ug ingon nga mga bloke sa IP sa sulod sa SoC ug GPU.
    • Ang drayber sa i915 (Intel) nagpalapad sa suporta alang sa Intel Arc (DG2/Alchemist) discrete graphics card, nagpaila sa pasiuna nga suporta alang sa Meteor Lake GPUs, ug naglakip sa suporta alang sa Intel Xe HP 4tile GPUs.
    • Ang drayber sa amdgpu nagdugang suporta alang sa teknolohiya sa AdaptiveSync ug ang abilidad sa paggamit sa Secure Display nga adunay daghang mga display. Gi-update nga suporta alang sa DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x ug DP 2.1.
    • Gidugang nga suporta alang sa SM8350, SM8450 SM8550, SDM845 ug SC8280XP nga mga plataporma sa msm driver (GPU Qualcomm Adreno).
    • Ang drayber sa Nouveau naghulog sa suporta alang sa daan nga mga tawag sa ioctl.
    • Ang eksperimento nga suporta alang sa NPU VerSilicon (VeriSilicon Neural Network Processor) gidugang sa drayber sa etnaviv.
    • Ang pata_parport driver para sa IDE drive nga konektado pinaagi sa parallel port gipatuman na. Ang dugang nga drayber nagpaposible sa pagtangtang sa daan nga drayber sa PARIDE gikan sa kernel ug pag-upgrade sa ATA subsystem. Ang usa ka limitasyon sa bag-ong drayber mao ang kawalay katakus sa dungan nga pagkonektar sa usa ka tig-imprinta ug usa ka disk pinaagi sa usa ka parallel port.
    • Gidugang ang driver sa ath12k alang sa mga wireless card nga gibase sa Qualcomm chips nga adunay suporta sa Wi-Fi 7. Gidugang nga suporta alang sa mga wireless card nga gibase sa RealTek RTL8188EU chips.
    • Gidugang nga suporta alang sa 46 nga mga tabla nga gibase sa ARM64 nga arkitektura, lakip ang Samsung Galaxy tab A (2015), Samsung Galaxy S5, BananaPi R3, Debix Model A, EmbedFire LubanCat 1/2, Facebook Greatlakes, Orange Pi R1 Plus, Tesla FSD, ug mga aparato usab base sa SoC Qualcomm MSM8953 (Snapdragon 610), SM8550 (Snapdragon 8 Gen 2), SDM450 ug SDM632, Rockchips RK3128 TV box, RV1126 Vision, RK3588, RK3568, RK3566, RK3588, RK3328 ug RK3 642 / AM654).

Sa parehas nga oras, ang Latin American Free Software Foundation nagporma usa ka variant sa hingpit nga libre nga kernel 6.3 - Linux-libre 6.3-gnu, gitangtang sa firmware ug mga elemento sa driver nga adunay sulud nga dili libre nga mga sangkap o mga seksyon sa code, ang sakup niini limitado sa ang tiggama. Sa pagpagawas sa 6.3, ang mga blobs gilimpyohan sa bag-ong ath12k, aw88395, ug peb2466 nga mga drayber, ingon man sa bag-ong devicetree files alang sa AArch64-based qcom devices. Gi-update nga blob cleaning code sa amdgpu, xhci-rcar, qcom-q6v5-pas, sp8870, av7110 nga mga drayber ug mga subsystem, ingon man sa mga drayber alang sa mga DVB-card nga adunay software decoding ug sa precompiled BPF files. Gihunong ang pagpanglimpyo sa mga driver nga, r128, tm6000, cpia2 ug r8188eu samtang gikuha sila gikan sa kernel. Gipauswag ang paglimpyo sa blob sa drayber sa i915.

Source: opennet.ru

Idugang sa usa ka comment