Rilaxx tal-kernel Linux 5.12

Wara xahrejn ta 'żvilupp, Linus Torvalds ippreżenta r-rilaxx tal-kernel Linux 5.12. Fost l-aktar bidliet notevoli: appoġġ għal apparati ta 'blokki f'żoni f'Btrfs, il-kapaċità li jiġu mmappati l-IDs tal-utenti għas-sistema tal-fajls, tindif ta' arkitetturi ARM legacy, mod ta 'kitba "ħerqana" f'NFS, il-mekkaniżmu LOOKUP_CCHED għad-determinazzjoni tal-mogħdijiet tal-fajls mill-cache. , appoġġ għall-istruzzjonijiet atomiċi fil-BPF, sistema ta 'debugging KFENCE għall-identifikazzjoni ta' żbalji meta taħdem bil-memorja, mod ta 'votazzjoni NAPI li jaħdem f'ħajt tal-qalba separat fil-munzell tan-netwerk, hypervisor ACRN, il-kapaċità li tbiddel il-mudell preempt fuq il-fly fil-kompitu Scheduler u appoġġ għall-ottimizzazzjonijiet LTO meta tibni f'Clang.

Il-verżjoni l-ġdida tinkludi 14170 (fir-rilaxx ta 'qabel 15480) tiffissa mill-iżviluppaturi 1946 (1991), id-daqs tal-garża huwa ta' 38 MB (il-bidliet affettwati 12102 (12090) fajls, 538599 (868025) linji ta 'kodiċi ġew miżjuda, (333377) linji tħassru). Madwar 261456% tal-bidliet kollha introdotti f'43 huma relatati mas-sewwieqa tal-apparat, madwar 5.12% tal-bidliet huma relatati mal-aġġornament tal-kodiċi speċifiku għall-arkitetturi tal-ħardwer, 17% huma relatati mal-munzell tan-netwerk, 12% huma relatati mas-sistemi tal-fajls, u 5% huma relatati mas-subsistemi interni tal-qalba.

Innovazzjonijiet ewlenin:

  • Sottosistema tad-disk, I/O u sistemi ta' fajls
    • Ġiet implimentata l-abbiltà li timmappa l-IDs tal-utent għal sistemi ta 'fajls immuntati (tista' timmappa fajls ta 'utent wieħed fuq partizzjoni barranija immuntata ma' utent ieħor fis-sistema attwali). L-immappjar huwa appoġġjat għas-sistemi tal-fajls FAT, ext4 u XFS. Il-funzjonalità proposta tagħmilha aktar faċli biex jaqsmu fajls bejn utenti differenti u fuq kompjuters differenti, inkluż l-immappjar se jintuża fil-mekkaniżmu tad-direttorju tad-dar portabbli systemd-homed, li jippermetti lill-utenti jċaqalqu d-direttorji tad-dar tagħhom għal midja esterna u jużawhom fuq kompjuters differenti, mapping User IDs li ma jaqblux magħhom. Applikazzjoni utli oħra hija li torganizza l-provvista ta 'aċċess kondiviż għal fajls minn host estern, mingħajr ma tbiddel id-dejta dwar is-sidien tal-fajls fis-sistema tal-fajls.
    • L-irqajja LOOKUP_CACHED ġew adottati fil-qalba, li jippermettu lill-operazzjonijiet jiddeterminaw mogħdija tal-fajl mill-ispazju tal-utent mingħajr imblukkar, ibbażata biss fuq id-dejta disponibbli fil-cache. Il-mod LOOKUP_CACHED jiġi attivat fis-sejħa openat2() billi tgħaddi l-bandiera RESOLVE_CACHED, li fiha d-dejta hija moqdija biss mill-cache, u jekk id-determinazzjoni tal-passaġġ teħtieġ aċċess għad-drajv, l-iżball EAGAIN jiġi rritornat.
    • Is-sistema tal-fajls Btrfs żiedet appoġġ inizjali għal apparati ta 'blokki f'żoni (apparati fuq diski manjetiċi iebes jew SSDs NVMe, l-ispazju tal-ħażna li fih huwa maqsum f'żoni li jiffurmaw gruppi ta' blokki jew setturi, li għalihom hija permessa biss żieda sekwenzjali ta 'dejta, aġġornament tal-grupp kollu ta 'blokki). Fil-modalità ta 'qari biss, l-appoġġ għal blokki b'metadejta u dejta iżgħar minn paġna (subpaġna) huwa implimentat.
    • Fis-sistema tal-fajls F2FS, ġiet miżjuda l-abbiltà li tagħżel l-algoritmu u l-livell ta 'kompressjoni. Appoġġ miżjud għall-kompressjoni ta 'livell għoli għall-algoritmu LZ4. Implimenta l-għażla tal-immuntar checkpoint_merge.
    • Ġie implimentat kmand ioctl ġdid FS_IOC_READ_VERITY_METADATA biex taqra metadata minn fajls protetti b'fs-verity.
    • Il-klijent NFS jimplimenta mod ta 'kitba "ħerqana" (tikteb = ħerqana), meta tkun attivata, operazzjonijiet ta' kitba f'fajl jiġu trasferiti immedjatament lis-server, billi jinjora l-cache tal-paġna. Din il-modalità tippermettilek tnaqqas il-konsum tal-memorja, tipprovdi rċevuta istantanja ta 'informazzjoni dwar it-tmiem tal-ispazju ħieles fis-sistema tal-fajls, u f'xi sitwazzjonijiet tagħmilha possibbli li tinkiseb prestazzjoni akbar.
    • Għażliet ġodda ta 'muntatura ġew miżjuda ma' CIFS (SMB): acregmax biex jikkontrolla l-caching tal-fajls u acdirmax biex jikkontrolla l-caching tal-metadata tad-direttorju.
    • F'XFS, il-mod ta 'kontroll tal-kwota b'ħafna kamini ġie attivat, l-eżekuzzjoni fsync ġiet aċċellerata, u l-kodiċi growfs ġie ppreparat biex jimplimenta l-funzjoni li tnaqqas id-daqs tas-sistema tal-fajls.
  • Servizzi ta' memorja u sistema
    • Is-subsistema DTMP (Ġestjoni Dinamika tal-Enerġija Termali) ġiet miżjuda, li tippermettilek tirregola b'mod dinamiku l-konsum tal-enerġija ta 'apparati differenti abbażi tal-limiti ġenerali tat-temperatura stabbiliti.
    • Ġiet implimentata l-abbiltà li tinbena l-qalba bl-użu tal-kompilatur Clang bl-inklużjoni ta 'ottimizzazzjonijiet fl-istadju ta' rabta (LTO, Link Time Optimization). L-ottimizzazzjonijiet LTO jvarjaw billi jqisu l-istat tal-fajls kollha involuti fil-proċess tal-bini, filwaqt li l-modi ta 'ottimizzazzjoni tradizzjonali jottimizzaw kull fajl separatament u ma jqisux il-kundizzjonijiet għas-sejħa ta' funzjonijiet definiti f'fajls oħra. Pereżempju, b'LTO, l-iskjerament inline huwa possibbli għal funzjonijiet minn fajls oħra, kodiċi mhux użat mhux inkluż fil-fajl eżekutibbli, verifika tat-tip u ottimizzazzjoni ġenerali jitwettqu fil-livell tal-proġett kollu kemm hu. L-appoġġ LTO bħalissa huwa limitat għal arkitetturi x86 u ARM64.
    • Huwa possibbli li jintgħażlu modi ta 'preemption (PREEMPT) fl-iskedar tal-kompiti fl-istadju tal-boot (preempt=none/voluntary/full) jew waqt li taħdem permezz ta' debugfs (/debug/sched_debug), jekk l-issettjar PREEMPT_DYNAMIC kien speċifikat meta jinbena l-kernel. Preċedentement, il-mod ta 'estrużjoni jista' jiġi ssettjat biss fil-livell tal-parametri tal-assemblaġġ. Il-bidla tippermetti li d-distribuzzjonijiet jibagħtu qlub bil-mod PREEMPT attivat, li jipprovdi latenza minima għal desktops bl-ispiża ta 'penali ta' throughput żgħir, u jekk meħtieġ jaqgħu lura għal PREEMPT_VOLUNTARY (mod intermedju għal desktops) jew PREEMPT_NONE (jipprovdi throughput massimu għas-servers) .
    • L-appoġġ għall-operazzjonijiet atomiċi BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG u BPF_CMPXCHG ġie miżjud mas-subsistema BPF.
    • Il-programmi BPF jingħataw il-kapaċità li jaċċessaw id-dejta fuq il-munzell billi jużaw pointers b'offsets varjabbli. Pereżempju, jekk qabel kont tista 'tuża biss indiċi ta' element kostanti biex taċċessa firxa fuq il-munzell, issa tista 'tuża waħda li tinbidel. Il-kontroll tal-aċċess biss fil-konfini eżistenti jitwettaq mill-verifikatur BPF. Din il-karatteristika hija disponibbli biss għal programmi privileġġjati minħabba tħassib dwar l-isfruttament tal-vulnerabbiltajiet tal-eżekuzzjoni tal-kodiċi spekulattivi.
    • Miżjud il-kapaċità li jitwaħħlu programmi BPF ma 'tracepoints vojta li mhumiex assoċjati ma' avvenimenti ta 'traċċa viżibbli fl-ispazju tal-utent (il-preservazzjoni ABI mhix garantita għal tali tracepoints).
    • Ġie implimentat appoġġ għax-xarabank CXL 2.0 (Compute Express Link), li tintuża biex torganizza interazzjoni b'veloċità għolja bejn is-CPU u l-apparati tal-memorja (jippermettilek tuża apparati tal-memorja esterna bħala parti minn RAM jew memorja permanenti, bħallikieku din il-memorja kienu konnessi permezz ta 'kontrollur tal-memorja standard fis-CPU).
    • Żieda sewwieq nvmem biex tiġi rkuprata data minn żoni tal-memorja riżervati mill-firmware li mhumiex direttament aċċessibbli għal Linux (pereżempju, memorja EEPROM li hija fiżikament aċċessibbli biss għall-firmware, jew data li hija aċċessibbli biss matul il-fażi tal-bidu bikrija).
    • Tneħħiet l-appoġġ għas-sistema ta 'profiling "oprofile", li ma kinitx użata ħafna u ġiet sostitwita mill-mekkaniżmu ta' perf aktar modern.
    • L-interface I/O asinkronu io_uring jipprovdi integrazzjoni ma 'cgroups li jikkontrollaw l-użu tal-memorja.
    • L-arkitettura RISC-V tappoġġja sistemi NUMA, kif ukoll mekkaniżmi kprobes u uprobes.
    • Miżjud il-kapaċità li tuża s-sejħa tas-sistema kcmp() irrispettivament mill-funzjonalità ta 'snapshots tal-istat tal-proċess (punt ta' kontroll/restawr).
    • Il-makros EXPORT_UNUSED_SYMBOL() u EXPORT_SYMBOL_GPL_FUTURE(), li ma ntużawx fil-prattika għal ħafna snin, tneħħew.
  • Virtualization u Sigurtà
    • Miżjud KFence (Kernel Electric Fence) mekkaniżmu ta 'protezzjoni, li jaqbad żbalji meta taħdem bil-memorja, bħal buffer overruns u aċċess wara l-ħelsien tal-memorja. B'differenza mill-mekkaniżmu ta 'debugging KASAN, is-subsistema KFence hija kkaratterizzata minn veloċità operattiva għolja u overhead baxx, li jippermettilek taqbad żbalji tal-memorja li jidhru biss fuq sistemi ta' ħidma jew waqt tħaddim fit-tul.
    • Appoġġ miżjud għall-iperviżur ACRN, miktub b'għajnejh biex ikun lest għal kompiti f'ħin reali u l-adegwatezza għall-użu f'sistemi kritiċi għall-missjoni. L-ACRN jipprovdi overhead minimu, jiggarantixxi latenza baxxa u rispons adegwat meta jinteraġixxi mat-tagħmir. Jappoġġja l-virtwalizzazzjoni tar-riżorsi tas-CPU, I/O, subsistema tan-netwerk, grafika u operazzjonijiet tal-ħoss. L-ACRN jista 'jintuża biex iħaddem magni virtwali iżolati multipli f'unitajiet ta' kontroll elettroniċi, pannelli tal-istrumenti, sistemi ta 'informazzjoni tal-karozzi, tagħmir IoT tal-konsumatur u teknoloġija inkorporata oħra. L-ACRN jappoġġja żewġ tipi ta’ sistemi mistiedna - VMs tas-Servizz privileġġjati, li jintużaw biex jimmaniġġjaw ir-riżorsi tas-sistema (CPU, memorja, I/O, eċċ.), u VMs tal-Utenti tad-dwana, li jistgħu jmexxu distribuzzjonijiet Linux, Android u Windows.
    • Fis-subsistema IMA (Arkitettura tal-Kejl tal-Integrità), li żżomm database tal-hash għall-iċċekkjar tal-integrità tal-fajls u l-metadejta assoċjata, issa jsir possibbli li tiċċekkja l-integrità tad-dejta tal-qalba nnifisha, pereżempju, biex issegwi l-bidliet fir-regoli SELinux .
    • L-abbiltà li tinterċetta l-hypercalls Xen u tibgħathom lill-emulatur li jaħdem fl-ispazju tal-utent ġiet miżjuda mal-hypervisor KVM.
    • Żid il-ħila li tuża Linux bħala l-ambjent għerq għall-hypervisor Hyper-V. L-ambjent għerq għandu aċċess dirett għall-ħardwer u jintuża biex imexxi sistemi mistiedna (analogu għal Dom0 f'Xen). Sa issa, Hyper-V (Microsoft Hypervisor) appoġġa Linux biss f'ambjenti mistiedna, iżda l-hypervisor innifsu kien ikkontrollat ​​minn ambjent ibbażat fuq Windows.
    • Miżjud appoġġ għall-encryption inline għall-karti eMMC, li jippermettilek tuża mekkaniżmi ta 'kodifikazzjoni mibnija fil-kontrollur tad-drajv li jikkriptaw u jiddekofraw I/O b'mod trasparenti.
    • L-appoġġ għall-hashes RIPE-MD 128/256/320 u Tiger 128/160/192, li mhumiex użati fil-qalba, kif ukoll iċ-ċifra tal-fluss Salsa20, li ġiet sostitwita mill-algoritmu ChaCha20, tneħħa mill- sottosistema kripto. L-algoritmu blake2 ġie aġġornat biex jimplimenta blake2s.
  • Subsistema tan-netwerk
    • Żid il-ħila li tmexxi l-handler tal-votazzjoni NAPI għal apparati tan-netwerk għal ħajt tal-qalba separat, li jippermetti prestazzjoni mtejba għal xi tipi ta 'tagħbija tax-xogħol. Preċedentement, il-votazzjoni twettqet fil-kuntest ta 'softirq u ma kinitx koperta mill-iskedar tal-kompiti, li għamilha diffiċli biex jitwettqu ottimizzazzjonijiet ta' qamħ fin biex tinkiseb prestazzjoni massima. L-eżekuzzjoni f'ħajta tal-qalba separata tippermetti li l-immaniġġjar tal-votazzjoni jiġi osservat mill-ispazju tal-utent, imwaħħal mal-qlub individwali tas-CPU, u jitqies meta jiġi skedat il-bidla tal-kompitu. Biex tkun attivata l-modalità l-ġdida fis-sysfs, huwa propost il-parametru /sys/class/net//threaded.
    • Integrazzjoni fil-qalba ta 'MPTCP (MultiPath TCP), estensjoni tal-protokoll TCP għall-organizzazzjoni tat-tħaddim ta' konnessjoni TCP mal-kunsinna ta 'pakketti simultanjament tul diversi rotot permezz ta' interfaces tan-netwerk differenti assoċjati ma 'indirizzi IP differenti. Ir-rilaxx il-ġdid iżżid il-kapaċità li tassenja prijorità lil ċerti ħjut, li tippermetti, pereżempju, li torganizza x-xogħol ta 'ħjut ta' backup li jinxtegħlu biss jekk ikun hemm problemi bil-ħajt primarju.
    • IGMPv3 iżid appoġġ għall-mekkaniżmu EHT (Explicit Host Tracking).
    • Il-magna tal-filtrazzjoni tal-pakketti ta 'Netfilter tipprovdi l-abbiltà li tkun proprjetarja ta' ċerti tabelli biex tikseb kontroll esklussiv (pereżempju, proċess ta 'firewall fl-isfond jista' jieħu s-sjieda ta 'ċerti tabelli, u jipprevjeni lil xi ħadd ieħor milli jinterferixxi magħhom).
  • Оборудование
    • Aħna naddafna pjattaformi ARM skaduti u mhux miżmuma. Il-kodiċi għall-pjattaformi efm32, picoxcell, prima2, tango, u300, zx u c6x, kif ukoll is-sewwieqa assoċjati tagħhom, tneħħew.
    • Is-sewwieq amdgpu jipprovdi l-abbiltà li overclock (OverDrive) karti bbażati fuq il-GPU Sienna Cichlid (Navi 22, Radeon RX 6xxx). Appoġġ miżjud għall-format tal-pixel FP16 għal DCE (magna tal-kontrollur tal-wiri) mit-8 sal-11-il ġenerazzjoni. Għall-GPU Navy Flounder (Navi 21) u APU Van Gogh, ġiet implimentata l-abbiltà li tirrisettja l-GPU.
    • Is-sewwieq i915 għall-karti tal-grafika Intel jimplimenta l-parametru i915.mitigations biex jiskonnettja mekkaniżmi ta 'iżolament u protezzjoni favur prestazzjoni mtejba. Għal ċipep li jibdew minn Tiger Lake, l-appoġġ għall-mekkaniżmu VRR (Variable Rate Refresh) huwa inkluż, li jippermettilek tibdel b'mod adattiv ir-rata ta 'aġġornament tal-monitor biex tiżgura bla intoppi u l-ebda vojt waqt il-logħob. L-appoġġ għat-teknoloġija Intel Clear Color huwa inkluż għal preċiżjoni mtejba tal-kulur. Appoġġ miżjud għal DP-HDMI 2.1. Ġiet implimentata l-abbiltà li tikkontrolla l-backlight tal-pannelli eDP. Għall-GPUs Gen9 b'appoġġ LSPCON (Level Shifter and Protocol Converter), l-appoġġ HDR huwa attivat.
    • Is-sewwieq nouveau iżid appoġġ inizjali għal GPUs NVIDIA bbażati fuq l-arkitettura GA100 (Ampere).
    • Is-sewwieq msm iżid appoġġ għal Adreno 508, 509 u 512 GPUs użati f'SDM (Snapdragon) 630, 636 u 660 ċipep.
    • Appoġġ miżjud għall-karti tal-ħoss Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s u Pioneer DJM-750. Appoġġ miżjud għas-sottosistema tal-awdjo Intel Alder Lake PCH-P. Appoġġ għas-simulazzjoni tas-softwer tal-konnessjoni u l-iskonnettjar ta 'konnettur tal-awdjo ġie implimentat għal handlers tad-debugging fl-ispazju tal-utent.
    • Appoġġ miżjud għall-konsols tal-logħob Nintendo 64 manifatturati mill-1996 sal-2003 (tentattivi tal-passat biex jinġarru Linux għal Nintendo 64 ma tlestewx u ġew ikklassifikati bħala Vaporware). Il-motivazzjoni għall-ħolqien ta 'port ġdid għal pjattaforma skaduta, li ma ġietx rilaxxata għal kważi għoxrin sena, hija x-xewqa li tistimula l-iżvilupp ta' emulaturi u tissimplifika l-porting tal-logħob.
    • Sewwieq miżjud għall-kontrollur tal-logħob Sony PlayStation 5 DualSense.
    • Appoġġ miżjud għal bordijiet ARM, apparati u pjattaformi: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M M4B Nano, NanoPi MXNUMXB.
    • Appoġġ miżjud għal Purism Librem5 Evergreen, Xperia Z3+/Z4/Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, smartphones Samsung GT-I9070.
    • Miżjud sewwieq bcm-vk għal bordijiet tal-aċċeleratur Broadcom VK (per eżempju, bordijiet Valkyrie u Viper PCIe), li jistgħu jintużaw biex iħottu operazzjonijiet tal-ipproċessar tal-awdjo, tal-vidjow u tal-immaġni, kif ukoll operazzjonijiet relatati mal-encryption, għal apparat separat.
    • Appoġġ miżjud għall-pjattaforma Lenovo IdeaPad bil-kapaċità li tikkontrolla l-iċċarġjar kostanti u d-dawl ta 'wara tat-tastiera. Huwa pprovdut ukoll appoġġ għall-profil ACPI tal-pjattaforma ThinkPad bil-kapaċità li tikkontrolla l-modi tal-konsum tal-enerġija. Sewwieq miżjud għas-subsistema HID Lenovo ThinkPad X1 Tablet Gen 2.
    • Miżjud sewwieq ov5647 b'appoġġ għall-modulu tal-kamera għal Raspberry Pi.
    • Appoġġ miżjud għall-bordijiet RISC-V SoC FU740 u HiFive Unleashed. Ġie miżjud ukoll sewwieq ġdid għaċ-ċippa Kendryte K210.

Sors: opennet.ru

Żid kumment