Linukso-kerna eldono 5.12

Post du monatoj da evoluo, Linus Torvalds prezentis la liberigon de la Linukso-kerno 5.12. Inter la plej rimarkindaj ŝanĝoj: subteno por zonitaj blokaj aparatoj en Btrfs, la kapablo mapi uzantidentigilojn por la dosiersistemo, purigado de heredaĵaj ARM-arkitekturoj, "avida" skribreĝimo en NFS, la LOOKUP_CCHED-mekanismo por determini dosiervojojn de la kaŝmemoro. , subteno por atomaj instrukcioj en BPF, senarariga sistemo KFENCE por identigado de eraroj dum laborado kun memoro, NAPI-voĉdona reĝimo kuranta en aparta kernfadeno en la reto-stako, ACRN-hiperviziero, la kapablo ŝanĝi la antaŭan modelon sur la flugo en la tasko planilo kaj subteno por LTO-optimumoj dum konstruado en Clang.

La nova versio inkluzivas 14170 (en la antaŭa eldono 15480) korektoj de 1946 (1991) programistoj, la flikgrandeco estas 38 MB (la ŝanĝoj influis 12102 (12090) dosierojn, 538599 (868025) linioj de kodo estis aldonitaj, 333377 (261456) linioj estis forigitaj). Proksimume 43% de ĉiuj ŝanĝoj lanĉitaj en 5.12 rilatas al aparataj ŝoforoj, proksimume 17% de ŝanĝoj rilatas al ĝisdatigo de kodo specifa por aparatarkitekturoj, 12% rilatas al la retostako, 5% rilatas al dosiersistemoj kaj 4% estas rilataj al internaj kernaj subsistemoj.

Ĉefaj novigoj:

  • Diska Subsistemo, I/O kaj Dosiersistemoj
    • La kapablo mapi uzantidentigilojn por surmuntitaj dosiersistemoj estis efektivigita (vi povas mapi dosierojn de unu uzanto sur surmuntita eksterlanda sekcio kun alia uzanto sur la nuna sistemo). Mapado estas subtenata por dosiersistemoj FAT, ext4 kaj XFS. La proponita funkcieco ebligas simpligi la kundividon de dosieroj inter malsamaj uzantoj kaj sur malsamaj komputiloj, inkluzive de mapado estos uzata en la systemd-hejma portebla hejma dosierujo-mekanismo, permesante al uzantoj movi siajn hejmajn dosierujojn al eksteraj amaskomunikiloj kaj uzi ilin sur malsamaj. komputiloj, mapante uzantidentojn al kiuj ne kongruas. Alia utila aplikaĵo estas organizi la provizon de komuna aliro al dosieroj de ekstera gastiganto, sen fakte ŝanĝi la datumojn pri la posedantoj de la dosieroj en la dosiersistemo.
    • La LOOKUP_CACHED-flakoj estis adoptitaj en la kernon, permesante al operacioj determini dosiervojon de uzantspaco sen blokado, nur surbaze de la disponeblaj datumoj en la kaŝmemoro. La LOOKUP_CACHED-reĝimo estas aktivigita en la openat2()-voko pasante la RESOLVE_CACHED-flagon, en kiu datumoj estas servataj nur de la kaŝmemoro, kaj se la paddeterminado postulas aliron al la stirado, la EAGAIN-eraro estas resendita.
    • La dosiersistemo Btrfs aldonis komencan subtenon por zonitaj blokaj aparatoj (aparatoj sur malmolaj magnetaj diskoj aŭ NVMe SSD-oj, la stoka spaco en kiu estas dividita en zonojn kiuj konsistigas grupojn de blokoj aŭ sektoroj, al kiuj nur sinsekva aldono de datumoj estas permesita, ĝisdatigante la tutan grupon de blokoj). En nurlegebla reĝimo, subteno por blokoj kun metadatenoj kaj datumoj pli malgrandaj ol paĝo (subpaĝo) estas efektivigita.
    • En la dosiersistemo F2FS, la kapablo elekti la algoritmon kaj kunpreman nivelon estis aldonita. Aldonita subteno por altnivela kunpremo por la LZ4-algoritmo. Efektivigis la opcion de muntado checkpoint_merge.
    • Nova ioctl-komando FS_IOC_READ_VERITY_METADATA estis efektivigita por legi metadatenojn de dosieroj protektitaj per fs-verity.
    • La NFS-kliento efektivigas "eager" skribreĝimon (writes=eager), kiam ebligita, skribaj operacioj al dosiero estas tuj transdonitaj al la servilo, preterpasante la paĝan kaŝmemoron. Ĉi tiu reĝimo permesas redukti la konsumon de memoro, provizas tujan ricevon de informoj pri la fino de libera spaco en la dosiersistemo, kaj en iuj situacioj ebligas atingi pliigitan rendimenton.
    • Novaj muntaj opcioj estis aldonitaj al CIFS (SMB): acregmax por kontroli dosierkaŝmemoron kaj acdirmax por kontroli dosierujan metadatuman kaŝmemoron.
    • En XFS, multi-fadena kvokontrola reĝimo estis ebligita, fsync-ekzekuto estis akcelita, kaj growfs-kodo estis preta por efektivigi la funkcion redukti la grandecon de la dosiersistemo.
  • Memoraj kaj sistemaj servoj
    • La subsistemo DTMP (Dynamic Thermal Power Management) estis aldonita, permesante al vi dinamike reguligi la energikonsumon de malsamaj aparatoj surbaze de la fiksitaj ĝeneralaj temperaturlimoj.
    • La kapablo konstrui la kernon uzante la Clang-kompililon kun la inkludo de optimumigoj ĉe la liga stadio (LTO, Link Time Optimization) estis efektivigita. LTO-optimumigoj malsamas konsiderante la staton de ĉiuj dosieroj implikitaj en la konstruprocezo, dum tradiciaj optimumigaj reĝimoj optimumigas ĉiun dosieron aparte kaj ne konsideras la kondiĉojn por voki funkciojn difinitajn en aliaj dosieroj. Ekzemple, kun LTO, enlinia deplojo estas ebla por funkcioj de aliaj dosieroj, neuzata kodo ne estas inkluzivita en la rulebla dosiero, tipkontrolado kaj ĝenerala optimumigo estas efektivigitaj ĉe la projektnivelo entute. LTO-subteno estas nuntempe limigita al arkitekturoj x86 kaj ARM64.
    • Eblas elekti antaŭajn reĝimojn ( PREEMPT ) en la taskoplanilo ĉe la startstadio (preempt=none/voluntary/full) aŭ dum laborado per debugfs (/debug/sched_debug), se la PREEMPT_DYNAMIC-agordo estis specifita dum konstruado de la kerno. Antaŭe, la eltruda reĝimo nur povus esti agordita ĉe la nivelo de kunigparametroj. La ŝanĝo permesas al distribuoj sendi kernojn kun PREEMPT-reĝimo ebligita, kiu disponigas minimuman latentecon por labortabloj je la kosto de malgranda trairpuno, kaj se necese refalo al PREEMPT_VOLUNTARY (meza reĝimo por labortabloj) aŭ PREEMPT_NONE (provizas maksimuman trairon por serviloj) .
    • Subteno por atomoperacioj BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG kaj BPF_CMPXCHG estis aldonita al la BPF-subsistemo.
    • BPF-programoj ricevas la kapablon aliri datenojn sur la stako uzante montrilojn kun variaj ofsetoj. Ekzemple, se antaŭe vi nur povis uzi konstantan elementindekson por aliri tabelon sur la stako, nun vi povas uzi ŝanĝiĝantan. Alirkontrolo nur ene de la ekzistantaj limoj estas aranĝita fare de la BPF-kontrolilo. Ĉi tiu funkcio estas disponebla nur por privilegiitaj programoj pro zorgoj pri ekspluatado de malfortaĵoj de spekulaj kodaj ekzekutaĵoj.
    • Aldonita la kapablo alkroĉi BPF-programojn al nudaj spurpunktoj kiuj ne estas asociitaj kun spurokazaĵoj videblaj en uzantspaco (ABI-konservado ne estas garantiita por tiaj spurpunktoj).
    • Subteno por la buso CXL 2.0 (Compute Express Link) estas efektivigita, kiu estas uzata por organizi altrapidan interagadon inter la CPU kaj memoraj aparatoj (ebligas al vi uzi eksterajn memorajn aparatojn kiel parton de RAM aŭ konstanta memoro, kvazaŭ ĉi tiu memoro). estis konektitaj tra norma memorregilo en la CPU).
    • Aldonita nvmem-ŝoforo por preni datenojn de firmvar-rezervitaj memorareoj kiuj ne estas rekte alireblaj por Linukso (ekzemple, EEPROM-memoro kiu estas fizike alirebla nur al la firmvaro, aŭ datenoj kiuj estas nur alireblaj dum la frua lanĉa fazo).
    • Subteno por la "oprofile" profilsistemo estis forigita, kiu ne estis vaste uzita kaj estis anstataŭigita per la pli moderna perfmekanismo.
    • La io_uring nesinkrona I/O-interfaco disponigas integriĝon kun cgrupoj kiuj kontrolas memoruzon.
    • La RISC-V-arkitekturo apogas NUMA-sistemojn, same kiel kprobes kaj uprobes-mekanismojn.
    • Aldonita la kapablo uzi la kcmp() sistemvokon sendepende de la funkcieco de procezaj statoj momentfotoj (kontrolpunkto/restarigo).
    • La makrooj EXPORT_UNUSED_SYMBOL() kaj EXPORT_SYMBOL_GPL_FUTURE(), kiuj ne estis uzataj en la praktiko dum multaj jaroj, estis forigitaj.
  • Virtualigo kaj Sekureco
    • Aldonita KFence (Kernel Electric Fence) protekta mekanismo, kiu kaptas erarojn kiam oni laboras kun memoro, kiel bufro-superfluoj kaj aliro post liberigo de memoro. Male al la senarariga mekanismo de KASAN, la subsistemo KFence karakterizas per alta operacia rapideco kaj malalta superkompeto, kio ebligas kapti memorajn erarojn, kiuj aperas nur sur funkciaj sistemoj aŭ dum longdaŭra funkciado.
    • Aldonita subteno por la ACRN-hiperviziero, skribita kun okulo al preteco por realtempaj taskoj kaj taŭgeco por uzo en misi-kritikaj sistemoj. ACRN provizas minimuman superkoston, garantias malaltan latentecon kaj taŭgan respondecon dum interagado kun ekipaĵo. Subtenas virtualigon de CPU-resursoj, I/O, retsubsistemo, grafikaĵoj kaj sonoperacioj. ACRN povas esti uzata por funkciigi multoblajn izolitajn virtualajn maŝinojn en elektronikaj kontrolunuoj, instrumentpaneloj, aŭtaj informsistemoj, konsumantaj IoT-aparatoj kaj alia enigita teknologio. ACRN subtenas du specojn de gastsistemoj - privilegiitaj Servaj VMs, kiuj estas uzataj por administri sistemajn rimedojn (CPU, memoro, I/O, ktp.), kaj kutimajn Uzantajn VMs, kiuj povas ruli Linukso, Android kaj Vindozo-distribuojn.
    • En la subsistemo IMA (Integrity Measurement Architecture), kiu konservas hash-datumbazon por kontroli la integrecon de dosieroj kaj rilataj metadatenoj, nun iĝas eble kontroli la integrecon de la datumoj de la kerno mem, ekzemple, spuri ŝanĝojn en SELinux reguloj. .
    • La kapablo kapti Xen-hipervokojn kaj plusendi ilin al la emulilo funkcianta en uzantspaco estis aldonita al la KVM-hiperviziero.
    • Aldonis la kapablon uzi Linukson kiel la radikan medion por la hiperviziero Hyper-V. La radika medio havas rektan aliron al la aparataro kaj estas uzata por ruli gastsistemojn (analoga al Dom0 en Xen). Ĝis nun, Hyper-V (Microsoft Hypervisor) apogis Linukson nur en gastmedioj, sed la hiperviziero mem estis kontrolita de Vindozo-bazita medio.
    • Aldonita subteno por enlinia ĉifrado por eMMC-kartoj, permesante al vi uzi ĉifrajn mekanismojn enkonstruitajn en la stiradoregilo, kiuj travideble ĉifras kaj malĉifras I/O.
    • La subteno por la RIPE-MD 128/256/320 kaj Tiger 128/160/192 hashes, kiuj ne estas uzataj en la kerno, same kiel la Salsa20-flua ĉifro, kiu estis anstataŭigita per la ChaCha20-algoritmo, estis forigita de la kripto subsistemo. La blake2-algoritmo estis ĝisdatigita por efektivigi blake2s.
  • Reta subsistemo
    • Aldonis la kapablon movi la NAPI-voĉdonadtraktilon por retaj aparatoj al aparta kernfadeno, kiu ebligas plibonigitan rendimenton por iuj specoj de laborkvanto. Antaŭe, balotado estis farita en la kunteksto de softirq kaj ne estis kovrita per la taskoplanisto, kiu malfaciligis elfari fajnajn optimumojn por atingi maksimuman efikecon. Ekzekuto en aparta kernfadeno permesas al la voĉdonadtraktilo esti observita de uzantspaco, alkroĉita al individuaj CPU-kernoj, kaj enkalkulita dum planado de taskoŝanĝo. Por ebligi la novan reĝimon en sysfs, la parametro /sys/class/net/ estas proponita /fadenigita.
    • Integriĝo en la kernon de MPTCP (MultiPath TCP), etendaĵo de la TCP-protokolo por organizi la operacion de TCP-ligo kun livero de pakaĵoj samtempe laŭ pluraj itineroj tra malsamaj retaj interfacoj asociitaj kun malsamaj IP-adresoj. La nova eldono aldonas la kapablon asigni prioritaton al certaj fadenoj, kio permesas, ekzemple, organizi la laboron de rezervaj fadenoj, kiuj ŝaltas nur se estas problemoj kun la primara fadeno.
    • IGMPv3 aldonas subtenon por la mekanismo EHT (Explicit Host Tracking).
    • La pakaĵeta filtra motoro de Netfilter disponigas la kapablon posedi certajn tablojn por akiri ekskluzivan kontrolon (ekzemple, fonfajrmurprocezo povas preni proprieton de certaj tabloj, malhelpante iu ajn alia enmiksiĝo ilin).
  • Ekipaĵo
    • Ni purigis malnoviĝintajn kaj nekonservitajn ARM-platformojn. La kodo por la platformoj efm32, picoxcell, prima2, tango, u300, zx kaj c6x, same kiel iliaj rilataj ŝoforoj, estis forigita.
    • La amdgpu-ŝoforo disponigas la kapablon overclock (OverDrive) kartojn bazitajn sur la Sienna Cichlid GPU (Navi 22, Radeon RX 6xxx). Aldonita subteno por FP16-piksela formato por DCE (ekrana regilo-motoro) de 8-a ĝis 11-a generacio. Por GPU Navy Flounder (Navi 21) kaj APU Van Gogh, la kapablo restarigi la GPU estis efektivigita.
    • La i915-ŝoforo por Intel-grafikaj kartoj efektivigas la i915.mitigations parametron por malŝalti izoligajn kaj protektajn mekanismojn favore al plibonigita rendimento. Por blatoj ekde Tiger Lake, subteno por la mekanismo VRR (Variable Rate Refresh) estas inkluzivita, kiu ebligas al vi adapte ŝanĝi la monitoran refreŝiĝon por certigi glatecon kaj neniujn breĉojn dum ludoj. Subteno por Intel Clear Color teknologio estas inkluzivita por plibonigita kolorprecizeco. Aldonita subteno por DP-HDMI 2.1. La kapablo kontroli la fonlumon de eDP-paneloj estis efektivigita. Por Gen9 GPU-oj kun subteno de LSPCON (Level Shifter kaj Protocol Converter), HDR-subteno estas ebligita.
    • La nouveau-ŝoforo aldonas komencan subtenon por NVIDIA GPU-oj bazitaj sur la arkitekturo GA100 (Ampero).
    • La msm-ŝoforo aldonas subtenon por Adreno 508, 509 kaj 512 GPU-oj uzataj en SDM (Snapdragon) 630, 636 kaj 660-blatoj.
    • Aldonita subteno por Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s kaj Pioneer DJM-750 sonkartoj. Aldonita subteno por Intel Alder Lake PCH-P audiosubsistemo. Subteno por softvarsimulado de konekti kaj malkonekti sonkonektilon estis efektivigita por sencimigaj pritraktiloj en uzantspaco.
    • Aldonita subteno por Nintendo 64 ludkonzoloj produktitaj de 1996 ĝis 2003 (pasintaj provoj porti Linukson al la Nintendo 64 ne estis kompletigitaj kaj estis klasifikitaj kiel Vaporware). La instigo por krei novan havenon por malmoderna platformo, kiu ne estis liberigita dum preskaŭ dudek jaroj, estas la deziro stimuli la disvolviĝon de emuliloj kaj simpligi la portadon de ludoj.
    • Aldonita pelilo por Sony PlayStation 5 DualSense ludregilo.
    • Aldonita subteno por ARM-tabuloj, aparatoj kaj platformoj: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M M4B, NanoPi MXNUMXB.
    • Aldonita subteno por Purism Librem5 Evergreen, Xperia Z3+/Z4/Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, Samsung GT-I9070-poŝtelefonoj.
    • Aldonita bcm-vk-ŝoforo por Broadcom VK-akceliltabuloj (ekzemple, Valkyrie kaj Viper PCIe-tabuloj), kiuj povas esti uzataj por elŝuti sonajn, videojn kaj bild-prilaborajn operaciojn, same kiel ĉifradajn operaciojn, al aparta aparato.
    • Aldonita subteno por la Lenovo IdeaPad-platformo kun la kapablo kontroli konstantan ŝargadon kaj klavaran kontraŭlumon. Ankaŭ provizita estas subteno por la ACPI-profilo de la ThinkPad-platformo kun la kapablo kontroli elektrokonsumreĝimojn. Aldonita pelilo por Lenovo ThinkPad X1 Tablet Gen 2 HID-subsistemo.
    • Aldonita ov5647-ŝoforo kun subteno por fotila modulo por Raspberry Pi.
    • Aldonita subteno por RISC-V SoC FU740 kaj HiFive Unleashed-tabuloj. Nova ŝoforo por la peceto Kendryte K210 ankaŭ estis aldonita.

fonto: opennet.ru

Aldoni komenton