Linux kernelaren bertsioa 5.12

Bi hilabeteko garapenaren ondoren, Linus Torvaldsek Linux kernel 5.12 oharra aurkeztu zuen. Aldaketa aipagarrienen artean: Btrfs-en zonaldeko bloke gailuetarako euskarria, fitxategi-sistemarako erabiltzaile IDak mapatzeko gaitasuna, ARM arkitektura zaharrak garbitzea, NFSn idazteko modua "irrika" bat, LOOKUP_CACHED mekanismoa cachetik fitxategi-bideak zehazteko. , BPF-n argibide atomikoetarako laguntza, KFENCE arazketa-sistema memoriarekin lan egiten duzunean akatsak identifikatzeko, NAPI galdeketa modua sareko pilan kernel-hari batean exekutatzen dena, ACRN hipervisorea, ataza batean aurrea hartzeko eredua aldatzeko gaitasuna. programatzailea eta LTO optimizazioetarako laguntza Clang-en eraikitzean.

Bertsio berriak 14170 (15480) garatzaileen 1946 (aurreko bertsioan 1991) konponketa biltzen ditu, adabakiaren tamaina 38 MB da (12102 (12090) fitxategi eragin zituzten aldaketak, 538599 (868025) kode-lerro gehitu ziren, 333377 (261456) lerroak ezabatu ziren). 43an sartutako aldaketa guztien % 5.12 inguru gailu kontrolatzaileei dagozkie, aldaketen % 17 gutxi gorabehera hardware-arkitekturaren berariazko kodea eguneratzeari dagozkio, % 12 sareko pilari dagokio, % 5 fitxategi-sistemei dagokie eta % 4. nukleo barneko azpisistemekin lotuta daude.

Berrikuntza nagusiak:

  • Disko azpisistema, I/O eta fitxategi sistemak
    • Muntatutako fitxategi-sistemetarako erabiltzaile IDak mapatzeko gaitasuna ezarri da (muntatutako atzerriko partizio batean erabiltzaile baten fitxategiak mapa ditzakezu uneko sistemako beste erabiltzaile batekin). FAT, ext4 eta XFS fitxategi-sistemetarako mapak onartzen dira. Proposatutako funtzionalitateak erabiltzaile ezberdinen artean eta ordenagailu ezberdinetan fitxategiak partekatzea errazten du, mapak barne systemd-homed etxeko direktorio eramangarrien mekanismoan erabiliko dira, erabiltzaileek euren etxeko direktorioak kanpoko euskarrietara eraman eta ordenagailu ezberdinetan erabiltzeko aukera emanez, mapak egiteko. bat ez datozen erabiltzaile IDak. Beste aplikazio erabilgarri bat kanpoko ostalari batetik fitxategietarako sarbide partekatua antolatzea da, fitxategi-sistemako fitxategien jabeei buruzko datuak benetan aldatu gabe.
    • LOOKUP_CACHED adabakiak nukleoan hartu dira, eta eragiketak erabiltzaileen espaziotik fitxategi-bide bat blokeatu gabe zehazteko aukera ematen du, cachean dauden datuetan soilik oinarrituta. LOOKUP_CACHED modua openat2() deian aktibatzen da RESOLVE_CACHED bandera pasatuz, eta bertan datuak cachetik soilik hornitzen dira, eta bide-zehaztapenak unitatean sartzea eskatzen badu, EAGAIN errorea itzultzen da.
    • Btrfs fitxategi-sistemak hasierako euskarria gehitu du zonaldeko bloke gailuetarako (disko magnetiko gogorreko gailuak edo NVMe SSDak, biltegiratze-espazioa bloke edo sektore multzoak osatzen dituzten zonaldeetan banatzen dena, zeinetan datuen gehiketa sekuentziala bakarrik onartzen da). bloke-talde osoa eguneratuz). Irakurtzeko soilik moduan, orri bat (azpiorrialde) baino metadatuak eta datuak txikiagoak dituzten blokeentzako laguntza ezartzen da.
    • F2FS fitxategi-sisteman, algoritmoa eta konpresio maila hautatzeko gaitasuna gehitu da. LZ4 algoritmorako maila altuko konpresiorako laguntza gehitu da. checkpoint_merge muntatzeko aukera inplementatu da.
    • FS_IOC_READ_VERITY_METADATA ioctl komando berri bat inplementatu da fs-verity-rekin babestutako fitxategietako metadatuak irakurtzeko.
    • NFS bezeroak "irrikaz" idazteko modua (writes=eager) ezartzen du, gaituta dagoenean, fitxategi batean idazteko eragiketak berehala transferitzen dira zerbitzarira, orrialdearen cachea saihestuz. Modu honek memoria-kontsumoa murrizteko aukera ematen du, fitxategi-sistemako espazio librearen amaierari buruzko informazioa berehala jasotzen du eta zenbait egoeratan errendimendu handiagoa lortzea ahalbidetzen du.
    • Muntatzeko aukera berriak gehitu dira CIFS (SMB): acregmax fitxategien cachea kontrolatzeko eta acdirmax direktorioko metadatuen cachea kontrolatzeko.
    • XFS-n, hari anitzeko kuota egiaztatzeko modua gaitu da, fsync exekuzioa azkartu da eta growfs kodea prestatu da fitxategi-sistemaren tamaina murrizteko funtzioa ezartzeko.
  • Memoria eta sistema zerbitzuak
    • DTMP (Dynamic Thermal Power Management) azpisistema gehitu da, eta gailu ezberdinen energia-kontsumoa dinamikoki erregulatzeko aukera ematen du ezarritako tenperatura-muga orokorren arabera.
    • Clang konpilatzailea erabiliz nukleoa eraikitzeko gaitasuna estekatze fasean optimizazioak sartuta (LTO, Link Time Optimization) inplementatu da. LTO optimizazioak desberdintzen dira eraikitze-prozesuan parte hartzen duten fitxategi guztien egoera kontuan hartuta, optimizazio-modu tradizionalek fitxategi bakoitza bereizita optimizatzen duten bitartean, eta ez dituzte kontuan hartzen beste fitxategi batzuetan definitutako funtzioak deitzeko baldintzak. Esate baterako, LTO-rekin, lineako inplementazioa posible da beste fitxategi batzuetako funtzioetarako, erabili gabeko kodea ez da fitxategi exekutagarrian sartzen, motaren egiaztapena eta optimizazio orokorra proiektuaren mailan egiten dira. LTO laguntza gaur egun x86 eta ARM64 arkitekturara mugatuta dago.
    • Posible da aukeraketa-moduak (PREEMPT) hautatzea ataza-antolatzailean abio-fasean (preempt=none/voluntary/full) edo debugfs bidez lan egiten duzun bitartean (/debug/sched_debug), nukleoa eraikitzerakoan PREEMPT_DYNAMIC ezarpena zehaztu bazen. Aurretik, estrusio-modua muntaia-parametroen mailan soilik ezarri zitekeen. Aldaketari esker, banaketak PREEMPT modua gaituta duten nukleoak bidaltzea ahalbidetzen du, mahaigainei gutxieneko latentzia ematen diena errendimendu-zigor txiki baten truke, eta beharrezkoa izanez gero, PREEMPT_VOLUNTARY (mahaigainetarako tarteko modua) edo PREEMPT_NONE (zerbitzarientzako gehienezko errendimendua eskaintzen du) .
    • BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG eta BPF_CMPXCHG eragiketa atomikoetarako laguntza gehitu da BPF azpisisteman.
    • BPF programei desplazamendu aldakorreko erakusleak erabiliz pilako datuak sartzeko gaitasuna ematen zaie. Esate baterako, lehen pilako array batera sartzeko elementu konstantearen indizea bakarrik erabil bazenuen, orain aldakorra erabil dezakezu. Sarbideen kontrola lehendik dauden mugen barruan bakarrik egiten du BPF egiaztatzaileak. Ezaugarri hau pribilegiodun programentzat soilik dago erabilgarri, kode espekulatiboen exekuzio ahultasunen ustiapenaren kezkagatik.
    • Erabiltzaileen espazioan ikusgai dauden arrasto-gertakariekin lotuta ez dauden arrasto-puntu hutsei BPF programak eransteko gaitasuna gehitu da (ABI-ren kontserbazioa ez dago bermatuta aztarna-puntu horietan).
    • CXL 2.0 (Compute Express Link) buserako euskarria ezarri da, CPUaren eta memoria-gailuen arteko abiadura handiko elkarrekintza antolatzeko erabiltzen dena (kanpoko memoria-gailuak RAM edo memoria iraunkorraren zati gisa erabiltzeko aukera ematen du, memoria hori balitz bezala). CPUko memoria kontrolagailu estandar baten bidez konektatu ziren).
    • Nvmem kontrolatzailea gehitu da Linux-ek zuzenean eskura ez dituen firmwareak erreserbatutako memoria-eremuetako datuak berreskuratzeko (adibidez, EEPROM memoria fisikoki firmwarearentzat soilik eskura daitekeena edo abio-fasean soilik eskura daitezkeen datuak).
    • "oprofile" profil sistemarako euskarria kendu da, oso erabilia ez zena eta perf mekanismo modernoagoarekin ordezkatu da.
    • io_uring I/O interfaze asinkronoak memoriaren erabilera kontrolatzen duten cgroup-ekin integrazioa eskaintzen du.
    • RISC-V arkitekturak NUMA sistemak onartzen ditu, baita kprobes eta uprobes mekanismoak ere.
    • Kcmp() sistema-deia erabiltzeko gaitasuna gehitu da, prozesu-egoeraren argazkien funtzionalitateak kontuan hartu gabe (checkpoint/restore).
    • Urte askotan praktikan erabili ez diren EXPORT_UNUSED_SYMBOL() eta EXPORT_SYMBOL_GPL_FUTURE() makroak kendu egin dira.
  • Birtualizazioa eta segurtasuna
    • KFence (Kernel Electric Fence) babes-mekanismoa gehitu da, memoriarekin lan egitean akatsak atzematen dituena, hala nola buffer-a gainditzea eta memoria askatu ondoren sarbidea. KASAN arazketa-mekanismoa ez bezala, KFence azpisistema funtzionamendu-abiadura handia eta gainkostu txikia ditu, eta horrek funtzionatzen duten sistemetan edo epe luzeko funtzionamenduan soilik agertzen diren memoria-akatsak harrapatzeko aukera ematen du.
    • ACRN hipervisorerako euskarria gehitu da, denbora errealeko zereginetarako prest egotea eta misio kritikoko sistemetan erabiltzeko egokitasunari begira idatzia. ACRN-k gutxieneko gainkostua eskaintzen du, latentzia baxua eta erreakzio egokia bermatzen ditu ekipoekin elkarreraginean. CPU baliabideen birtualizazioa, I/O, sare azpisistema, grafikoak eta soinu eragiketak onartzen ditu. ACRN hainbat makina birtual isolatu exekutatzeko erabil daiteke kontrol-unitate elektronikoetan, tresna-paneletan, automozioko informazio-sistemetan, kontsumo-IoT gailuetan eta beste teknologia txertatuetan. ACRN-k bi sistema gonbidatuak onartzen ditu: zerbitzu-makina pribilegiatuak, sistemaren baliabideak (CPU, memoria, I/O, etab.) kudeatzeko erabiltzen direnak, eta erabiltzaile-makina pertsonalizatuak, Linux, Android eta Windows banaketak exekutatu ditzaketenak.
    • IMA (Integrity Measurement Architecture) azpisisteman, fitxategien eta lotutako metadatuen osotasuna egiaztatzeko hash datu-base bat mantentzen duena, orain posible da nukleoaren beraren datuen osotasuna egiaztatzea, adibidez, SELinux arauen aldaketak jarraitzeko. .
    • Xen hiperdeiak atzemateko eta erabiltzaileen espazioan exekutatzen ari den emuladorera birbidaltzeko gaitasuna gehitu zaio KVM hiperbissoreari.
    • Hyper-V hipervisorerako Linux erro ingurune gisa erabiltzeko gaitasuna gehitu da. Erro inguruneak hardwarerako sarbide zuzena du eta sistema gonbidatuak exekutatzeko erabiltzen da (Xen-en Dom0-ren analogoa). Orain arte, Hyper-V-ek (Microsoft Hypervisor) Linux-ek gonbidatutako inguruneetan bakarrik onartzen zuen, baina hipervisorea bera Windows-en oinarritutako ingurune batetik kontrolatzen zen.
    • EMMC txartelen lineako enkriptatzeko laguntza gehitu da, unitateko kontrolagailuan integratutako enkriptatze-mekanismoak erabiltzeko aukera emanez, I/O gardenki enkriptatzeko eta deszifratzeko.
    • Nukleoan erabiltzen ez diren RIPE-MD 128/256/320 eta Tiger 128/160/192 hash-en euskarria, baita ChaCha20 algoritmoak ordezkatu zuen Salsa20 korrontearen zifrara ere, kendu egin da. kripto azpisistema. Blake2 algoritmoa eguneratu da blake2s ezartzeko.
  • Sarearen azpisistema
    • Sareko gailuetarako NAPI galdeketa-kudeatzailea nukleoaren hari bereizi batera eramateko gaitasuna gehitu da, lan-karga mota batzuen errendimendua hobetzea ahalbidetzen duena. Aurretik, bozketa softirq-en testuinguruan egiten zen eta ez zuen zereginen programatzaileak estaltzen, eta horrek zaildu zuen optimizazio zehatzak egitea errendimendu handiena lortzeko. Nukleoaren hari bereizi batean exekuzioak aukera ematen du galdeketa-kudeatzailea erabiltzaileen espaziotik behatzea, PUZaren nukleo indibidualetara lotuta eta zereginen aldaketa programatzerakoan kontuan hartzea. Sysfs-en modu berria gaitzeko, /sys/class/net//threaded parametroa proposatzen da.
    • MPTCP (MultiPath TCP) muinean integratzea, TCP protokoloaren luzapena, TCP konexio baten funtzionamendua antolatzeko, paketeak aldi berean bidaltzeko hainbat ibilbidetan zehar IP helbide ezberdinekin lotutako sare-interfaze ezberdinen bidez. Bertsio berriak hari jakin batzuei lehentasuna emateko gaitasuna gehitzen du, eta horri esker, adibidez, hari nagusiarekin arazoak izanez gero bakarrik aktibatzen diren babeskopien lana antolatzeko aukera dago.
    • IGMPv3-k EHT (Explicit Host Tracking) mekanismorako laguntza gehitzen du.
    • Netfilter-en paketeen iragazketa-motorrak taula jakin batzuen jabe izateko gaitasuna ematen du kontrol esklusiboa lortzeko (adibidez, atzeko planoko suebaki-prozesu batek mahai batzuen jabe izan daiteke, beste edonork oztopatzea eragotziz).
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • ARM plataforma zaharkituak eta mantendu gabeak garbitu ditugu. Kendu egin da efm32, picoxcell, prima2, tango, u300, zx eta c6x plataformetarako kodea, baita haiei lotutako kontrolatzaileak ere.
    • Amdgpu kontrolatzaileak Sienna Cichlid GPU (Navi 22, Radeon RX 6xxx) oinarritutako txartelak overclock egiteko (OverDrive) gaitasuna eskaintzen du. FP16 pixel formatuaren euskarria gehitu da DCErako (pantaila kontroladorearen motorra) 8. belaunalditik 11. belaunaldira. GPU Navy Flounder (Navi 21) eta APU Van Gogh-entzat, GPU berrezartzeko gaitasuna ezarri da.
    • Intel txartel grafikoetarako i915 kontrolatzaileak i915.mitigations parametroa inplementatzen du isolamendu- eta babes-mekanismoak desgaitzeko, errendimendu hobearen alde. Tiger Lake-tik abiatzen diren txipetarako, VRR (Variable Rate Fresh) mekanismorako euskarria sartzen da, eta horrek monitorearen freskatze-tasa modu egoki batean aldatzeko aukera ematen du, jokoetan leuntasuna eta hutsunerik ez izateko. Intel Clear Color teknologiarako laguntza sartzen da koloreen zehaztasun hobetzeko. DP-HDMI 2.1rako euskarria gehitu da. eDP panelen atzeko argia kontrolatzeko gaitasuna ezarri da. LSPCON (Level Shifter eta Protocol Converter) euskarria duten Gen9 GPUetarako, HDR euskarria gaituta dago.
    • Nouveau kontrolatzaileak hasierako laguntza gehitzen du GA100 (Ampere) arkitekturan oinarritutako NVIDIA GPUetarako.
    • msm kontrolatzaileak SDM (Snapdragon) 508, 509 eta 512 txipetan erabiltzen diren Adreno 630, 636 eta 660 GPUetarako laguntza gehitzen du.
    • Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s eta Pioneer DJM-750 soinu-txarteletarako laguntza gehitu da. Intel Alder Lake PCH-P audio azpisistemarako euskarria gehitu da. Audio-konektorea konektatzeko eta deskonektatzeko softwarearen simulaziorako laguntza ezarri da erabiltzailearen espazioan arazketa-kudeatzaileentzat.
    • 64tik 1996ra bitartean fabrikatutako Nintendo 2003 joko-kontsoletarako euskarria gehitu da (Linux Nintendo 64ra eramateko saiakerak ez ziren amaitu eta Vaporware gisa sailkatu ziren). Plataforma zaharkitu baterako ataka berri bat sortzeko motibazioa, ia hogei urtez kaleratu ez dena, emuladoreen garapena suspertzeko eta jokoen porturatzea errazteko nahia da.
    • Sony PlayStation 5 DualSense joko kontrolagailurako kontrolatzailea gehitu da.
    • ARM plaka, gailu eta plataformetarako laguntza gehitu da: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M Nano, NanoPi M4B.
    • Purism Librem5 Evergreen, Xperia Z3+/Z4/Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, Samsung GT-I9070 telefonoetarako laguntza gehitu da.
    • Bcm-vk kontrolatzailea gehitu da Broadcom VK azeleragailu-plaketarako (adibidez, Valkyrie eta Viper PCIe plaketarako), audioa, bideoa eta irudiak prozesatzeko eragiketak, baita enkriptatzearekin lotutako eragiketak, gailu bereizi batera deskargatzeko erabil daitekeena.
    • Lenovo IdeaPad plataformarako euskarria gehitu da etengabeko karga eta teklatuaren atzeko argia kontrolatzeko gaitasunarekin. Era berean, ThinkPad plataformaren ACPI profilaren laguntza eskaintzen da, energia-kontsumo moduak kontrolatzeko gaitasunarekin. Lenovo ThinkPad X1 Tablet Gen 2 HID azpisistemarako kontrolatzailea gehitu da.
    • ov5647 kontrolatzailea gehitu da Raspberry Pi-rako kamera-modulurako laguntzarekin.
    • RISC-V SoC FU740 eta HiFive Unleashed plaketarako euskarria gehitu da. Kendryte K210 txiparen kontrolatzaile berri bat ere gehitu da.

Iturria: opennet.ru

Gehitu iruzkin berria