Linux 6.7 kernel release

Pagkatapos ng dalawang buwan ng pag-unlad, ipinakita ni Linus Torvalds ang paglabas ng Linux kernel 6.7. Kabilang sa mga pinaka-kapansin-pansing pagbabago: pagsasama ng Bcachefs file system, paghinto ng suporta para sa arkitektura ng Itanium, ang kakayahan ng Nouvea na gumana sa GSP-R firmware, suporta para sa TLS encryption sa NVMe-TCP, ang kakayahang gumamit ng mga pagbubukod sa BPF, suporta para sa futex sa io_uring, optimization ng fq (Fair Queuing) scheduler performance ), suporta para sa TCP-AO extension (TCP Authentication Option) at ang kakayahang paghigpitan ang mga koneksyon sa network sa Landlock security mechanism, idinagdag ang access control sa user namespace at io_uring sa pamamagitan ng AppArmor.

Kasama sa bagong bersyon ang 18405 na pag-aayos mula sa 2066 na developer, ang laki ng patch ay 72 MB (ang mga pagbabago ay nakaapekto sa 13467 file, 906147 linya ng code ang naidagdag, 341048 linya ang tinanggal). Ang huling release ay may 15291 na mga pag-aayos mula sa 2058 na mga developer, ang laki ng patch ay 39 MB. Humigit-kumulang 45% ng lahat ng mga pagbabagong ipinakilala sa 6.7 ay nauugnay sa mga driver ng device, humigit-kumulang 14% ng mga pagbabago ay nauugnay sa pag-update ng code na partikular sa mga arkitektura ng hardware, 13% ay nauugnay sa network stack, 5% ay nauugnay sa mga file system, at 3% ay nauugnay sa panloob na mga subsystem ng kernel.

Mga pangunahing inobasyon sa kernel 6.7:

  • Disk subsystem, I/O at mga file system
    • Ang kernel ay gumagamit ng Bcachefs file system code, na nagtatangkang makamit ang performance, reliability at scalability ng XFS, na sinamahan ng mga elemento ng advanced functionality na makikita sa Btrfs at ZFS. Halimbawa, sinusuportahan ng Bcachefs ang mga feature gaya ng pagsasama ng maraming device sa isang partition, mga multi-layer na layout ng drive (ang ilalim na layer na may madalas na ginagamit na data batay sa mga mabilis na SSD, at ang tuktok na layer na may hindi gaanong ginagamit na data mula sa mga hard drive), replication (RAID 1/10), pag-cache , transparent na data compression (LZ4, gzip at ZSTD mode), state slices (snapshots), integrity verification gamit ang mga checksum, ang kakayahang mag-imbak ng Reed-Solomon error correction code (RAID 5/6), pag-iimbak ng impormasyon sa naka-encrypt na form (ChaCha20 at Poly1305 ay ginagamit ). Sa mga tuntunin ng pagganap, ang Bcachefs ay nangunguna sa Btrfs at iba pang mga file system batay sa mekanismo ng Copy-on-Write, at nagpapakita ng bilis ng pagpapatakbo malapit sa Ext4 at XFS.
    • Ang Btrfs file system ay nagpapakilala ng isang pinasimpleng mode ng quota na nagbibigay-daan sa iyong makamit ang mas mataas na pagganap sa pamamagitan ng pagsubaybay sa mga lawak lamang sa subpartition kung saan ginawa ang mga ito, na makabuluhang pinapasimple ang mga kalkulasyon at nagpapabuti sa pagganap, ngunit hindi nagpapahintulot sa iyo na isaalang-alang ang mga lawak na ibinabahagi sa ilang mga subpartisyon.
    • Nagdagdag ang Btrfs ng bagong istraktura ng data ng "stripe tree", na angkop para sa lohikal na pagma-map sa lawak sa mga sitwasyon kung saan hindi tumutugma ang mga pisikal na pagmamapa sa mga device. Kasalukuyang ginagamit ang istraktura sa mga pagpapatupad ng RAID0 at RAID1 para sa mga naka-zone na block device. Sa hinaharap, plano nilang gamitin ang istrukturang ito sa mga mas mataas na antas ng RAID, na lulutasin ang ilang problemang umiiral sa kasalukuyang pagpapatupad.
    • Ang Ceph file system ay nagpapatupad ng suporta para sa pagmamapa ng mga user ID ng mga naka-mount na file system, na ginagamit upang itugma ang mga file ng isang partikular na user sa isang naka-mount na foreign partition sa isa pang user sa kasalukuyang system.
    • Idinagdag ang kakayahang tukuyin ang uid at gid sa mount sa efivarfs upang payagan ang mga di-root na proseso na baguhin ang mga variable ng UEFI.
    • Nagdagdag ng mga ioctl na tawag sa exFAT para sa pagbabasa at pagbabago ng mga katangian ng FS. Idinagdag ang paghawak ng mga direktoryo na walang sukat.
    • Ipinapatupad ng F2FS ang kakayahang gumamit ng 16K na bloke.
    • Ang autofs automount na mekanismo ay inilipat upang gamitin ang bagong partition mounting API.
    • Nag-aalok ang OverlayFS ng mga opsyon sa pag-mount ng "lowerdir+" at "datadir+". Nagdagdag ng suporta para sa nested mounting ng OverlayFS na may xattrs.
    • Na-optimize ng XFS ang pag-load ng CPU sa real-time na block allocation code. Ang kakayahang sabay na magsagawa ng read at FICLONE operations ay ibinigay.
    • Ang EXT2 code ay na-convert upang gamitin ang mga pahina ng folio.
  • Mga serbisyo ng memorya at system
    • Ang suporta para sa arkitektura ng ia64 na ginamit sa mga processor ng Intel Itanium, na ganap na itinigil noong 2021, ay hindi na ipinagpatuloy. Ang mga processor ng Itanium ay ipinakilala ng Intel noong 2001, ngunit nabigo ang arkitektura ng ia64 na makipagkumpitensya sa AMD64, pangunahin dahil sa mas mataas na pagganap ng AMD64 at ang mas maayos na paglipat mula sa 32-bit x86 na mga processor. Bilang resulta, ang mga interes ng Intel ay lumipat sa pabor sa mga x86-64 na processor, at ang lot ng Itanium ay nanatiling mga server ng HP Integrity, na ang mga order ay nahinto tatlong taon na ang nakakaraan. Ang code para sa suporta ng ia64 ay tinanggal mula sa kernel pangunahin dahil sa pangmatagalang kakulangan ng suporta para sa platform na ito, habang si Linus Torvalds ay nagpahayag ng kanyang pagpayag na ibalik ang suporta sa ia64 sa kernel, ngunit kung mayroong isang maintainer na maaaring magpakita ng mataas na kalidad suporta para sa platform na ito sa labas ng pangunahing kernel nang hindi bababa sa isang taon.
    • Idinagdag ang "ia32_emulation" kernel line command parameter, na nagbibigay-daan sa iyong paganahin o huwag paganahin ang suporta para sa 32-bit mode emulation sa mga kernel na binuo para sa x86-64 architecture sa yugto ng boot. Sa praktikal na bahagi, pinapayagan ka ng bagong opsyon na bumuo ng kernel na may suporta para sa pagiging tugma sa 32-bit na mga application, ngunit i-disable ang mode na ito bilang default upang mabawasan ang attack vector sa kernel, dahil ang compatibility API ay hindi gaanong nasubok kaysa sa pangunahing kernel mga interface.
    • Ang patuloy na paglipat ng mga pagbabago mula sa sangay ng Rust-for-Linux na nauugnay sa paggamit ng Rust na wika bilang pangalawang wika para sa pagbuo ng mga driver at kernel modules (Ang suporta sa Rust ay hindi aktibo bilang default, at hindi humahantong sa pagsasama ng Rust sa mga kinakailangang mga dependency ng pagpupulong para sa kernel). Ginagawa ng bagong bersyon ang paglipat sa paggamit ng Rust 1.73 release at nag-aalok ng isang hanay ng mga binding para sa pagtatrabaho sa mga workqueues.
    • Posibleng gamitin ang mekanismo ng binfmt_misc upang magdagdag ng suporta para sa mga bagong executable na format ng file (halimbawa, upang magpatakbo ng mga pinagsama-samang Java o Python na application) sa loob ng hiwalay na mga namespace na walang pribilehiyo.
    • Ang cgroup controller cpuset, na nagbibigay-daan sa iyong kontrolin ang paggamit ng mga CPU core kapag nagsasagawa ng isang gawain, ay nagbibigay ng dibisyon sa lokal at malayong partitioning, na naiiba sa kung ang parent cgroup ay ang tamang root section o hindi. Ang mga bagong setting na "cpuset.cpus.exclusive" at "cpuset.cpus.excluisve.effective" ay idinagdag din sa cpuset para sa eksklusibong CPU binding.
    • Ang BPF subsystem ay nagpapatupad ng suporta para sa mga exception, na pinoproseso bilang emergency exit mula sa isang BPF program na may kakayahang ligtas na i-unwind ang mga stack frame. Bilang karagdagan, pinapayagan ng mga programa ng BPF ang paggamit ng mga kptr pointer na may kaugnayan sa CPU.
    • Ang suporta para sa mga operasyong may futex ay idinagdag sa io_uring subsystem, at ang mga bagong operasyon ay ipinatupad: IORING_OP_WAITID (asynchronous na bersyon ng waitid), SOCKET_URING_OP_GETSOCKOPT (getsockoptand na opsyon), SOCKET_URING_OP_SETSOCKOPT (setsockopt na opsyon) at IORING_MULTI na hindi itinitigil ang pagpapatakbo na iyon mayroong data o hindi buong buffer).
    • Idinagdag ang pagpapatupad ng magaan na single-connected na mga pila ng FIFO na nangangailangan lamang ng spinlock para sa pag-dequeue sa isang konteksto ng proseso at magbigay ng spinlock para sa atomic na pagdaragdag sa queue sa anumang konteksto.
    • Nagdagdag ng ring buffer na "objpool" na may scalable na pagpapatupad ng queue na may mataas na performance para sa paglalaan at pagbabalik ng mga bagay.
    • Ang unang bahagi ng mga pagbabago ay idinagdag upang ipatupad ang bagong futex2 API, na may mas mahusay na pagganap sa mga NUMA system, sumusuporta sa mga laki maliban sa 32 bits, at maaaring gamitin sa halip na ang multiplexed futex() system call.
    • Para sa mga arkitektura ng ARM32 at S390x, idinagdag ang suporta para sa kasalukuyang hanay (cpuv4) ng mga tagubilin sa BPF.
    • Para sa arkitektura ng RISC-V, posibleng gamitin ang Shadow-Call Stack check mode na available sa Clang 17, na idinisenyo upang maprotektahan laban sa pag-overwrite sa return address mula sa isang function kung sakaling magkaroon ng buffer overflow sa stack. Ang esensya ng proteksyon ay i-save ang return address sa isang hiwalay na "shadow" stack pagkatapos ilipat ang kontrol sa isang function at makuha ang address na ito bago lumabas sa function.
    • Ang isang bagong mode ng pag-scan ng pahina ng matalinong memorya ay idinagdag sa mekanismo para sa pagsasama-sama ng magkatulad na mga pahina ng memorya (KSM: Kernel Samepage Merging), na sumusubaybay sa mga hindi matagumpay na na-scan na mga pahina at binabawasan ang intensity ng kanilang muling pag-scan. Upang paganahin ang bagong mode, idinagdag ang setting na /sys/kernel/mm/ksm/smart_scan.
    • Nagdagdag ng bagong ioctl command na PAGEMAP_SCAN, na, kapag ginamit sa userfaultfd(), ay nagbibigay-daan sa iyong matukoy ang mga katotohanan ng pagsulat sa isang partikular na hanay ng memorya. Ang bagong tampok, halimbawa, ay maaaring gamitin sa system upang i-save at ibalik ang estado ng mga proseso ng CRIU o sa mga sistema ng anti-cheat ng laro.
    • Sa sistema ng pagpupulong, kung magagamit ang Clang compiler, ang pagpupulong ng mga halimbawa ng paggamit ng subsystem ng perf, na isinulat bilang mga programa ng BPF, ay pinagana bilang default.
    • Ang lumang videobuf layer, na ginamit upang pamahalaan ang mga framebuffer sa media subsystem at pinalitan ng isang bagong pagpapatupad ng videobuf10 mahigit 2 taon na ang nakalipas, ay inalis na.
  • Virtualization at Seguridad
    • Ang kakayahang mag-encrypt ng data sa mga bloke na mas maliit kaysa sa laki ng bloke sa file system ay naidagdag sa subsystem ng fscrypt. Maaaring kailanganin ito upang paganahin ang mga mekanismo ng pag-encrypt ng hardware na sumusuporta lang sa maliliit na bloke (halimbawa, ang mga UFS controllers na sumusuporta lang sa 4096 block size ay maaaring gamitin sa isang file system na may 16K block size).
    • Ang "iommufd" subsystem, na nagpapahintulot sa iyo na pamahalaan ang IOMMU (I/O Memory-Management Unit) na mga talahanayan ng memory page sa pamamagitan ng mga file descriptor mula sa user space, ay nagdagdag ng pagsubaybay sa data na hindi pa na-flush mula sa cache (marumi) para sa DMA mga operasyon, na kinakailangan para sa pagtukoy ng memorya na may hindi na-flush na data sa panahon ng paglipat ng proseso.
    • Ang suporta para sa pagtukoy ng mga panuntunan sa kontrol sa pag-access para sa mga socket ng TCP ay idinagdag sa mekanismo ng Landlock, na nagbibigay-daan sa iyong limitahan ang pakikipag-ugnayan ng isang pangkat ng mga proseso sa panlabas na kapaligiran. Halimbawa, maaari kang lumikha ng isang panuntunan na nagbibigay-daan lamang sa pag-access sa network port 443 upang magtatag ng mga koneksyon sa HTTPS.
    • Ang AppArmor subsystem ay nagdagdag ng kakayahang kontrolin ang pag-access sa io_uring na mekanismo at lumikha ng mga namespace ng user, na nagbibigay-daan sa iyong piliing payagan ang pag-access sa mga kakayahan na ito sa ilang mga proseso lamang.
    • Nagdagdag ng virtual machine attestation API upang i-verify ang integridad ng proseso ng pag-boot ng virtual machine.
    • Sinusuportahan ng LoongArch system ang virtualization gamit ang KVM hypervisor.
    • Kapag ginagamit ang KVM hypervisor sa mga RISC-V system, lumitaw ang suporta para sa extension ng Smstateen, na humaharang sa virtual machine sa pag-access sa mga rehistro ng CPU na hindi tahasang sinusuportahan ng hypervisor. Nagdagdag din ng suporta para sa paggamit ng Zicond extension sa mga guest system, na nagpapahintulot sa paggamit ng ilang conditional integer operations.
    • Sa x86-based na mga guest system na tumatakbo sa ilalim ng KVM, hanggang 4096 na virtual na CPU ang pinapayagan.
  • Subsystem ng network
    • Ang driver ng NVMe-TCP (NVMe over TCP), na nagbibigay-daan sa iyong i-access ang mga NVMe drive sa network (NVM Express over Fabrics) gamit ang TCP protocol, ay nagdagdag ng suporta para sa pag-encrypt ng data transmission channel gamit ang TLS (gamit ang KTLS at isang proseso sa background sa espasyo ng gumagamit tlshd para sa negosasyon sa koneksyon).
    • Ang pagganap ng fq (Fair Queuing) packet scheduler ay na-optimize, na naging posible upang mapataas ang throughput ng 5% sa ilalim ng mabibigat na load sa tcp_rr (TCP Request/Response) na pagsubok at ng 13% na may walang limitasyong daloy ng mga UDP packet.
    • Ang TCP ay nagdaragdag ng opsyonal na microsecond-precision timestamp (TCP TS) na kakayahan (RFC 7323), na nagbibigay-daan para sa mas tumpak na pagtatantya ng latency at mas advanced na congestion control modules. Upang paganahin ito, maaari mong gamitin ang command na "ip route add 10/8 ... features tcp_usec_ts".
    • Ang TCP stack ay nagdagdag ng suporta para sa extension ng TCP-AO (TCP Authentication Option, RFC 5925), na ginagawang posible na i-verify ang mga TCP header gamit ang mga MAC code (Message Authentication Code), gamit ang mas modernong mga algorithm na HMAC-SHA1 at CMAC-AES- 128 sa halip na dating available na opsyon na TCP-MD5 batay sa legacy na MD5 algorithm.
    • Ang isang bagong uri ng mga virtual network device na "netkit" ay naidagdag, ang data transfer logic kung saan nakatakda gamit ang isang BPF program.
    • Ang KSMBD, isang kernel-level na pagpapatupad ng isang SMB server, ay nagdagdag ng suporta para sa paglutas ng mga pangalan ng file na naglalaman ng mga kahalili na pares ng mga tambalang character.
    • Pinahusay ng NFS ang pagpapatupad ng mga thread na may mga serbisyo ng RPC. Nagdagdag ng suporta para sa write delegation (para sa NFSv4.1+). Ang NFSD ay nagdagdag ng suporta para sa rpc_status netlink handler. Pinahusay na suporta para sa mga kliyente ng NFSv4.x kapag muling nag-e-export sa knfsd.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Ang paunang suporta para sa GSP-RM firmware ay idinagdag sa Nouveau kernel module, na ginagamit sa NVIDIA RTX 20+ GPU para ilipat ang initialization at GPU control operations sa gilid ng isang hiwalay na GSP microcontroller (GPU System Processor). Ang suporta ng GSP-RM ay nagbibigay-daan sa driver ng Nouveau na magtrabaho sa pamamagitan ng mga tawag sa firmware, sa halip na direktang magprogram ng mga pakikipag-ugnayan sa hardware, na ginagawang mas madaling magdagdag ng suporta para sa mga bagong NVIDIA GPU sa pamamagitan ng paggamit ng mga pre-built na tawag para sa initialization at power management.
    • Sinusuportahan ng driver ng AMDGPU ang GC 11.5, NBIO 7.11, SMU 14, SMU 13.0 OD, DCN 3.5, VPE 6.1 at DML2. Pinahusay na suporta para sa tuluy-tuloy na pag-load (walang pagkutitap kapag lumilipat ng video mode).
    • Ang i915 driver ay nagdaragdag ng suporta para sa Intel Meteor Lake chips at nagdaragdag ng paunang pagpapatupad ng Intel LunarLake (Xe 2).
    • Idinagdag ang suporta para sa mga asymmetric transmission channel na idinagdag sa USB4 v2 (120/40G) na detalye.
    • Nagdagdag ng suporta para sa ARM SoC: Qualcomm Snapdragon 720G (ginamit sa mga Xiaomi smartphone), AMD Pensando Elba, Renesas, R8A779F4 (R-Car S4-8), USRobotics USR8200 (ginamit sa mga router at NAS).
    • Nagdagdag ng suporta para sa Fairphone 5 smartphone at ARM boards na Orange Pi 5, QuartzPro64, Turing RK1, Variscite MX6, BigTreeTech CB1, Freescale LX2162, Google Spherion, Google Hayato, Genio 1200 EVK, RK3566 Powkiddy RGB30.
    • Nagdagdag ng suporta para sa mga RISC-V board na Milk-V Pioneer at Milk-V Duo.
    • Nagdagdag ng suporta para sa mga sound interface ng HUAWEI laptops na may kasamang AMD CPU. Nagdagdag ng suporta para sa mga karagdagang speaker na naka-install sa Dell Oasis 13/14/16 na mga laptop. Nagdagdag ng suporta para sa mga built-in na speaker na ASUS K6500ZC. Nagdagdag ng suporta para sa mute indicator sa HP 255 G8 at G10 na mga laptop. Nagdagdag ng suporta para sa acp6.3 audio driver. Nagdagdag ng suporta para sa Focusrite Clarett+ 2Pre at 4Pre na mga interface ng propesyonal na pag-record.

Kasabay nito, ang Latin American Free Software Foundation ay bumuo ng isang bersyon ng ganap na libreng kernel 6.7 - Linux-libre 6.7-gnu, na-clear sa mga elemento ng firmware at mga driver na naglalaman ng mga di-libreng bahagi o mga seksyon ng code, ang saklaw nito ay limitado. ng tagagawa. Sa release 6.7, na-update ang blob cleaning code sa iba't ibang driver at subsystem, halimbawa, sa amdgpu, nouveau, adreno, mwifix, mt7988, ath11k, avs at btqca driver. Ang code para sa paglilinis ng localtalk at rtl8192u driver ay tinanggal dahil sa kanilang pagbubukod mula sa kernel. Inalis ang mga hindi kinakailangang bahagi para sa paglilinis ng mga driver ng xhci-pci, rtl8xxxu at rtw8822b, na naunang naidagdag nang hindi sinasadya. Nilinis ang mga pangalan ng blob sa mga dts file para sa arkitektura ng Aarch64. Inalis ang mga blobs sa mga bagong driver na mt7925, tps6598x, aw87390 at aw88399.

Pinagmulan: opennet.ru

Magdagdag ng komento