Linux Kernel lage 6.9

Apre de mwa nan devlopman, Linus Torvalds prezante liberasyon Linux 6.9 nwayo a. Pami chanjman ki pi remakab yo: modil dm-vdo pou deduplication ak konpresyon nan aparèy blòk, mòd aksè dirèk fichye nan FUSE, sipò pou kreye pidfds pou fil endividyèl, mekanis siy BPF, sipò pou Rust sou sistèm ARM64, depresyon nan Ext2. sistèm dosye, retire ansyen chofè NTFS, sipò pou mekanis Intel FRED.

Nouvo vèsyon an gen ladan 15680 ranje soti nan 2106 devlopè, gwosè patch la se 54 MB (chanjman ki afekte 11825 dosye, 687954 liy kòd yo te ajoute, 225344 liy yo te efase). Dènye lage a te gen 15641 ranje soti nan devlopè 2018, gwosè patch la te 44 MB. Apeprè 42% nan tout chanjman ki prezante nan 6.9 yo gen rapò ak chofè aparèy, apeprè 17% nan chanjman ki gen rapò ak ajou kòd espesifik achitekti pyès ki nan konpitè, 13% yo gen rapò ak pil rezo a, 7% yo gen rapò ak sistèm dosye, ak 4% yo gen rapò ak subsistèm nwayo entèn yo.

Prensipal inovasyon nan nwayo 6.9:

  • Disk Subsystem, I/O ak File Systems
    • Yon nouvo dm-vdo (Virtual Data Optimizer) te ajoute nan Device Mapper (DM), ki pèmèt ou aplike yon aparèy blòk vityèl ki baze sou aparèy blòk ki deja egziste, ki gen kapasite tankou deduplication done kopi, konpresyon done, eliminasyon. nan blòk vid ak ogmante gwosè a nan aparèy la blòk pa kòm bezwen an rive (mens pwovizyon). Kapasite sa yo aplike nan nivo aparèy blòk epi yo pa depann de sistèm dosye yo itilize (pa egzanp, lè l sèvi avèk dm-vdo, ou ka otomatikman rantre done kopi epi estoke enfòmasyon nan yon fòm konprese pou nenpòt ki sistèm dosye). Yo sipòte itilizasyon dm-vdo pou depo fizik jiska 256TB nan gwosè ak kreyasyon volim lojik jiska 4PB nan gwosè. Li rekòmande pou itilize lvm pou jere partisyon vdo. Teknoloji VDO te devlope pa Permabit ak louvri apre akizisyon li pa Red Hat nan 2017.
    • Nan subsistèm FUSE, yo itilize pou aplike sistèm fichye yo nan espas itilizatè a, yo te ajoute yon premye aplikasyon mòd "passthrough", ki pèmèt done fichye yo jwenn dirèkteman nan nivo nwayo a, kontoune yon pwosesis k ap kouri nan espas itilizatè a, ki kapab siyifikativman amelyore pèfòmans nan kèk sitiyasyon. Pa egzanp, aplikasyon FUSE nan yon sistèm fichye ki opere nan mòd lekti sèlman epi ki limite aksè nan dosye yo ka sèvi sa ki nan dosye ki soti nan sistèm dosye sous la san yo pa transfere yo nan pwosesis FUSE la.
    • Chofè ki aplike sistèm fichye Ext2 la te deplase nan kategori obsolèt la. Rezon ki fè yo bay la se ke chofè a sipòte sèlman kontè tan inode 32-bit, ki pral debòde sou 19 janvye 2038. Olye de chofè ext2 a, li pwopoze pou itilize chofè ext4 a, ki sipòte travay ak sistèm fichye Ext2 epi li totalman konpatib ak li, men li ka sèvi ak timestamps nan patisyon ext2 ki pa sijè a pwoblèm 2038 si sistèm fichye a se. kreye ak yon inode ki pi gwo pase 255 bytes (nan chofè a ext2, kontè tan 32-bit yo te itilize kèlkeswa gwosè a inode).
    • Yo retire ansyen chofè sistèm fichye NTFS la epi li te ranplase pa nouvo chofè NTFS5.15 depi lage 3. Bay de chofè ak aplikasyon NTFS nan nwayo a te konsidere kòm apwopriye, pran an kont lefèt ke ansyen chofè a pa te mete ajou pou anpil ane, se nan yon eta deplorab epi li ka sèlman travay nan mòd li.
    • Yo te ajoute sipò pou kat idantifikasyon itilizatè nan sistèm fichye ki monte nan sistèm fichye zonefs ak hugetlbfs, yo itilize pou matche ak dosye yon itilizatè espesifik sou yon patisyon etranje ki monte ak yon lòt itilizatè sou sistèm aktyèl la.
    • NFSv4 bay administratè yo kapasite pou yo klè dosye eta louvri ak fèmen.
    • Pou sistèm fichye Ext4 la, se sèlman koreksyon ensèk ak mizajou tès kunit yo note.
    • Btrfs kontinye fè tranzisyon fonksyon pou itilize paj folios.
    • Nan sistèm fichye XFS la, travay kontinye ap aplike kapasite pou sèvi ak sèvis piblik fsck la pou tcheke ak korije pwoblèm yo idantifye sou entènèt, san yo pa demonte sistèm fichye a.
    • Te ajoute drapo RWF_NOAPPEND a nan apèl sistèm pwritev2(), sa ki pèmèt ou presize konpanse ekri a menm si yo te louvri dosye a nan mòd sèlman.
    • Nouvo kòmandman ioctl yo te ajoute: FS_IOC_GETUUID - retounen idantifyan UUID sistèm fichye espesifye a, epi FS_IOC_GETFSSYSFSPATH - detèmine kote nan /sys/fs sistèm fichye ki espesifye a.
    • Sistèm fichye efs, qnx4 ak coda yo te konvèti pou sèvi ak nouvo API patisyon aliye.
    • Amelyore aplikasyon nan operasyon dosye fèt nan ka-ensansib mòd. Amelyore pèfòmans nan fè konparezon ka-sansib an premye ak tonbe tounen nan rechèch ka-sansib. Pwoblèm ak aliye overlayfs sou anyè ki mete nan ka-ensansib yo te rezoud.
  • Sèvis memwa ak sistèm
    • Yo te aplike sipò pou mekanis Intel FRED (Flexible Return and Event Delivery), ki te kreye pou ogmante efikasite ak fyab nan livrezon enfòmasyon sou evènman ki ba, konpare ak mekanis IDT (Interrupt Descriptor Table) ki itilize kounye a. Pèfòmans amelyore ak latansi redwi lè yo retounen evènman yo atravè enstriksyon processeur IRET la olye pou yo pase evènman yo atravè tab IDT la. Ogmante fyab reyalize akòz pwosesis separe evènman arive nan kontèks nwayo ak itilizatè, pwoteksyon kont ekzekisyon NMI enbrike, ak depo tout rejis CPU ki gen rapò ak eksepsyon nan yon ankadreman pile pwolonje.
    • Te ajoute kapasite nan optimize aksè a done nan nwayo CPU endividyèl yo atravè itilizasyon Espas Adrès Nonmen nan kòd nwayo a, aplike nan GCC nan fòm yon ekstansyon GNU C.
    • Yo te ajoute drapo PIDFD_THREAD a nan fonksyon pidfd_open(), sa ki pèmèt kreyasyon pidfds pou fil endividyèl yo, olye ke jis itilize pidfd la nan yon kontèks lidè gwoup fil. Yo pwopoze tou yon aplikasyon pseudo-FS pou jwenn aksè nan pidfd atravè yon sistèm dosye vityèl. Kontrèman ak pwosesis idantifye lè l sèvi avèk pid, pidfd asosye ak yon pwosesis espesifik epi li pa chanje, pandan y ap PID a ka asosye ak yon lòt pwosesis apre pwosesis aktyèl la fini.
    • Yo te ajoute yon mekanis siy BPF nan subsistèm BPF, ki pèmèt ou seleksyone dwa aksè nan operasyon BPF privilejye nan pwogram pou egzanp, ou ka bay yon aplikasyon san privilèj aksè nan subsistèm BPF endividyèl yo san yo pa bay tout dwa CAP_BPF.
    • Yon nouvo kalite memwa pataje, bpf_arena, te ajoute nan subsistèm BPF, ki defini yon zòn ki ka pataje ant pwogram BPF ak pwosesis nan espas itilizatè. Yo te ajoute enstriksyon may_goto a, ki pèmèt ou òganize travay bouk yo ke verifikatè a ka entèwonp. Te ajoute kapasite pou jenere bonbon TCP SYN abitrè nan pwogram BPF epi kreye moun kap okipe BPF pou konbat inondasyon SYN.
    • Kontinye migrasyon chanjman ki soti nan branch Rust-for-Linux ki gen rapò ak itilizasyon lang Rust kòm yon dezyèm lang pou devlope chofè ak modil nwayo (sipò Rust pa aktif pa default, epi li pa mennen nan enklizyon Rust nan mitan yo. depandans asanble obligatwa pou nwayo a). Te ajoute sipò pou itilize lang Rust lè w ap kouri sou processeur ARM 64-bit. Tranzisyon pou itilize Rust 1.76 lage te fèt. Te ajoute 'container_of!' Olye de fonksyonalite enstab 'ptr_metadata', yo itilize metòd stab 'byte_sub'. Te ajoute modil 'tan' ak fonksyon konvèsyon tan 'msecs_to_jiffies()'.
    • Yo te ajoute kapasite nan tronpe fichye (ftruncate_file) nan subsistèm io_uring la.
    • Te ajoute yon nouvo kalite keu travay WQ_BH (workqueue Bottom Halves) pou ekzekisyon kòd asynchrone nan yon kontèks entèwonp lojisyèl, ki vize a sèvi ak olye de tasklets demode.
    • Sou-sistèm pou travay ak revèy la te siyifikativman reamenaje, nan ki lojik pou chwazi nwayo CPU aktif pou egzekite yon revèy deklanche te amelyore, se konsa yo pa reveye nwayo inaktif nan mòd dòmi.
    • Kapasite pou mete ajou modèl konsomasyon enèji debaz (EM, Enèji Modèl) pandan operasyon an te aplike, ki ka itilize, pou egzanp, pran an kont efè tanperati opere sou efikasite enèji CPU a. Pèfòmans em_cpu_energy() fonksyon an te amelyore anpil, ki se kounye a 1.43 fwa pi vit nan tès sou yon sistèm estasyonè, ak 4 fwa pi vit nan tès sou tablo RockPi 1.69B la.
    • Te ajoute sipò pou sistèm kouri ki baze sou achitekti ARM64 nan mòd LPA2 ak yon espas adrès vityèl 52-bit.
    • Pou sistèm ARM64, sipò pou antre vwazen PTE (Page Table Entry) yo te aplike, ki amelyore pèfòmans lè yo ogmante efikasite lè l sèvi avèk TLB (Translation Lookaside Buffer).
    • Patch yo te adopte pou amelyore pèfòmans sou-sistèm jesyon memwa a lè yo diminye ensidan an nan kadna konkouran nan vmalloc().
    • Pou achitekti LoongArch la, yo te aplike yon mekanis pou koreksyon cho nwayo a (patching vivan), ki pèmèt plak yo aplike nan nwayo a san yo pa rekòmanse.
    • Pou sistèm RISC-V, sipò yo te aplike pou apèl sistèm membarrier(), ki asire ke baryè memwa yo enstale pou fil kouri nan sistèm nan.
    • Kondisyon pou vèsyon LLVM/Clang ki ka itilize pou konstwi nwayo a te ogmante. Konstwi kounye a mande pou omwen LLVM 13.0.1 lage (konstriksyon deja sipòte nan LLVM 11+).
    • Mekanis "Evènman tras itilizatè" la, ki pèmèt ou kreye evènman tras soti nan pwosesis itilizatè yo swiv aktivite nan espas itilizatè a, te ajoute sipò pou ekspòte enfòmasyon evènman nan divès fòma (USER_EVENT_REG_MULTI_FORMAT).
    • Kapasite nan trase eta a nan agiman fonksyon fèk ap rantre lè fonksyon trase sòti yo te ajoute nan mekanis nan trase apèl fonksyon. Kounye a, valè deklarasyon retounen yo ka matche ak agiman yo itilize nan apèl fonksyon an.
    • Perf sèvis piblik la te ajoute sipò pou mòd agrĂŠgation pwodiksyon "cluster" ("perf stat -a —per-cluster") pou konbine estatistik resous pataje yo. Kapasite pou itilize bibliyotèk libcapstone pou demonte enstriksyon processeur ("perf script -F disasm") te aplike. Konsomasyon memwa yo te optimize lè w ap egzekite kòmandman 'perf rapport' ak 'perf annotate'.
  • Virtualization ak sekirite
    • Te ajoute pwoteksyon kont vilnerabilite RFDS (Register File Data Sampling) nan processeurs Intel Atom, ki pèmèt ou ekstrè enfòmasyon rezidyèl nan dosye enskri (RF, Fichye Enskri) nan processeur a, ki itilize ansanm pou estoke sa ki nan rejis nan tout travay sou menm nwayo CPU a. Bloke vilnerabilite a mande pou mete ajou mikrokod la epi itilize enstriksyon VERW pou netwaye sa ki nan tanpon mikwochitekti lè w retounen soti nan nwayo a nan espas itilizatè a. Pou pèmèt pwoteksyon lè w ap chaje nwayo a, ou ka presize drapo "reg_file_data_sampling=on". Enfòmasyon sou vilnerabilite ak prezans mikwokòd ki nesesè pou pwoteksyon ka evalye nan fichye a "/sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling".
    • Te ajoute sipò debaz pou pwoteksyon sistèm envite lè l sèvi avèk ekstansyon AMD SEV-SNP (Secure Nested Paging), ki bay travay an sekirite ak tablo paj memwa entegre epi pwoteje kont atak "undeSErVed" ak "SEVerity" sou processeur AMD EPYC yo, ki pèmèt ou kontoune mekanis pwoteksyon AMD SEV (Secure Encrypted Virtualization) la. KVM Yo prevwa ajoute chanjman ki nesesè pou itilize SNP yo nan branch 6.10 la.
    • Modil ki aplike teknoloji IMA (Achitekti Mezi Entegrite) ak EVM (Modil Verifikasyon Pwolonje) yo te transfere nan kad LSM (Linux Sekirite Modil), ki san pèt fonksyonalite te fè li posib pou senplifye kòd la siyifikativman, konbine fonksyonalite kopi ak sèvi ak estanda. kapasite ki disponib atravè LSM. Modil IMA a fèt pou verifye entegrite konpozan sistèm operasyon yo lè l sèvi avèk siyati dijital ak hash. Modil EVM a pèmèt ou pwoteje atribi dosye pwolonje (xattrs) kont atak ki vize a vyole entegrite yo (EVM pa pral pèmèt yon atak offline kote yon atakè ka chanje metadata, pou egzanp, pa demaraj soti nan kondwi li).
    • Lsm_list_modules(), lsm_get_self_attr() ak lsm_set_self_attr() apèl sistèm yo, ki fèt pou montre yon lis modil LSM chaje (Linux Sekirite Modil) ak jwenn/mete atribi modil LSM, yo te reamenaje pou pi gwo konpatibilite ak anviwònman 32-bit. Chanjman an kraze konpatibilite bak, men depi nouvo apèl sistèm yo te ajoute nan dènye lage nwayo a epi yo poko itilize nan aplikasyon yo, Linus Torvalds konsidere chanjman an akseptab.
    • Yo te fè yon tantativ pou rekòmanse sèvi ak mekanis UBSAN (Dezenfektan Konpòtman Undefined). Chwa pwoblèm nan se ke konpilateur okipe debòde nonb antye relatif nan kalite ki siyen ak ki pa siyen yon fason diferan. Debòde siyen ak pwent yo klase kòm konpòtman ki pa defini, pandan y ap debòde ki pa siyen yo tronke modulo 2n, ki kenbe sèlman ti moso rezilta a ("wrap-around") epi yo pa sijè a konpòtman ki pa defini. Pou elimine sitiyasyon kote konpòtman endefini rive, nwayo a bati ak opsyon "-fno-strict-overflow", ki lakòz "wrap-around" yo dwe itilize pou tout debòde nonb antye relatif. GCC ak Clang pa ka byen dyagnostike kèk pwoblèm lè w ap itilize drapo -fno-strict-overflow, epi enklizyon UBSAN gen entansyon travay ak devlopè konpilatè yo pou elimine fo pozitif epi idantifye debòde nonb antye relatif nan kote pa gen okenn chèk eksplisit.

      Pou tcheke pou posib debòde, nwayo a sèvi ak konstwi tankou "var + offset < var" (pa egzanp, "if (pgoff + (gwosè > PAGE_SHIFT) < pgoff){..}"), ki mare nan asanble ak " -fno-strict" flag -overflow" epi yo pa kouvri tout kòd ki kapab potansyèlman debòde. Pwoblèm lan se ke lè w ap itilize UBSAN, chèk sa yo te lakòz yon gwo kantite fo avètisman, e poutèt sa, UBSAN te oblije enfim nan 2021. Mizajou aplikasyon an sijere sèvi ak annotations espesyal __signed_wrap ak __unsigned_wrap, osi byen ke makro pare-fè ak add_would_overflow(a, b) ak add_wrap(a, b) chèk, ki pèmèt ou separe itilizasyon entansyonèl nan debòde nonb antye relatif pa devlopè yo. soti nan ensidan an nan debòde o aza ki ka mennen nan frajilite Linus Torvalds te rejte pwopozisyon pou yon retravay plis vaste nan nwayo a ak pa entwodwi definisyon adisyonèl.

  • Sou-sistèm rezo
    • Nan sous-sistèm rezo a, yo te fè travay pou redwi ensidan an nan kadna konpetisyon ("lock konfli", yon tantativ jwenn yon seri ki te kenbe pa yon lòt fil). Redwi itilizasyon kadna RTNL.
    • Te ajoute kapasite pou pèmèt sipò pou biwo vòt aktif nan yon kontèks apèl epoll endividyèl yo. Gwosè pisin ak paramèt bidjè yo ka mete apa de paramèt default sistèm yo.
    • Enplemante estrikti net_hotdata pou amelyore efikasite nan kachèt varyab konfigirasyon rezo ki pi souvan itilize yo.
    • MPTCP te ajoute sipò pou mete opsyon TCP_NOTSENT_LOWAT pou sockets, ki pèmèt ou limite gwosè tanpon voye a. API pou priz MCTP te ajoute sipò pou ID rezo, sa ki fè li posib pou itilize plizyè rezo MCTP ki pa sipèpoze sou yon sèl lame.
    • IPSec ajoute sipò pou redireksyon mesaj erè ICMP (RFC 4301).
    • Pwosesis eskanè wout ak tout lavi ekspire yo te akselere.
    • Amelyore pèfòmans XDP pa plis agresif evite gwo alokasyon memwa.
    • Te ajoute kapasite nan tache metadata nan mesaj netconsole.
    • Netfilter pèmèt tab yo dwe defini nan espas itilizatè ki mare nan pwosesis background kontwòl la epi yo pa efase otomatikman lè aplikasyon itilizatè a fini.
    • Nan nftables, ajoute eleman pou mete ansanm ak chenn fizyone yo te akselere.
  • Ekipman
    • Nan chofè i915 la, travay ap kontinye aplike sipò pou chip Intel LunarLake (Xe 2). Nouvo idantifyan PCI yo te ajoute pou aparèy ki baze sou chips Intel Arrow Lake ak Alder Lake N yo te ajoute sipò pou tinèl DP ak alokasyon bandwidth pou Displayport. Mòd Fastboot pèmèt pou tout platfòm. Te ajoute sipò pou pwodiksyon debogaj an relasyon ak aparèy endividyèl yo.
    • Chofè AMDGPU a te prepare pou sipòte GPU AMD RDNA3.5 ak RDNA4. Te ajoute sipò pou ATHUB 4.1, LSDMA 7.0, JPEG DPG, IH 7.0, HDP 7.0, VCN 5.0, SMU 13.0.6, NBIO 7.11, SDMA 6.1, MMHUB 3.3, DCN 3.5.1, NBIF, VPE 6.3.1. kad RAS ACA. Yo te ajoute paramèt freesync_video nan modil nwayo a pou pèmèt sipò eksperimantal pou optimize chanjman mòd videyo lè l sèvi avèk teknoloji senkronizasyon adaptatif FreeSync.
    • Nan chofè Nouveau, kòd kontwòl ekran an te konvèti pou sèvi ak fonksyon kmemdup().
    • Travay kontinye sou chofè Xe drm (Direct Rendering Manager) pou GPU ki baze sou achitekti Intel Xe, ki itilize nan kat videyo fanmi Intel Arc ak grafik entegre, kòmanse ak processeurs Tiger Lake.
    • Te ajoute chofè DRM pou chips Mediatek MT8188 VDOSYS1.
    • Anviwònman Kernel ki gen rapò ak sistèm videyo yo te deplase nan seksyon CONFIG_VIDEO.
    • Te ajoute sipò pou ARM64 SoC: Mediatek MT7981B (Filogic 820), MT7988A (Filogic 880), NXP i.MX8DXP, Renesas R8A779G2 (R-Machin V4H ES2.0), R8A779H0 (R-Machin V4M), TI J722S.
    • Te ajoute sipò pou tablo ARM ak aparèy: telefòn Android ki baze sou chip Tegra30, modèl Chromebook ki baze sou Mediatek MT8186, NAS, tablèt ak konsole jwèt ki baze sou Rockchips RK35xx, tablo White Hawk ki baze sou Renesas SoC, ankadreman ki baze sou Qualcomm SM8550 (Snapdragon 8). Gen 2), Apalis Evalyasyon Komisyon Konsèy, Sielaff i.MX6 Solo Komisyon Konsèy, Samsung Galaksi Tab 4 10.1 LTE.
    • Kòd subsistèm odyo ALSA te refactorize. Te ajoute sipò pou sistèm son Microchip SAM9x7, NXP i.MX95 ak Qualcomm WCD939x. Chofè SoundWire te ajoute sipò pou ASoC ak koprosesè odyo AMD ACP 6.3, epi mòd DSPless te aplike pou sistèm Intel yo. Te ajoute sipò pou plis kodèk odyo Cirrus HD. Chofè virtio a te amelyore jesyon aparèy odyo.
    • Te ajoute sipò pou Marvell Octeon PCI Endpoint NIC VF ak Intel E825-C 100G Ethernet contrĂ´leur.

An menm tan an, Fondasyon Lojisyèl Libète Amerik Latin nan te fòme yon vèsyon nwayo a konplètman gratis 6.9 - Linux-libre 6.9-gnu, efase nan eleman firmwèr ak chofè ki gen eleman ki pa gratis oswa seksyon kòd, sijè ki abòde lan ki limite. pa manifakti a. Nan lage 6.9, kòd netwayaj blob nan chofè amdgpu, ath12k, adreno, btusb ak r8169 yo te mete ajou. Nouvo chofè ptp_fc3 la netwaye. Netwaye non blob nan dosye dts (devicetree) pou achitekti Aarch64. Fiks pwoblèm ak netwaye chofè i915 la, ki te mennen nan friz pandan inisyalizasyon. Chanjman yo te fè ki gen rapò ak pwosesis la nan blob apwovizyone kòm pil fatra hex.

Sous: opennet.ru

Add nouvo kòmantè