Linukso-kerna eldono 5.2

Post du monatoj da evoluo, Linus Torvalds enkondukita liberigo de kerno Linukso 5.2. Inter la plej rimarkindaj ŝanĝoj: Ext4 mastruma reĝimo estas sensenca majuskle, apartaj sistemvokoj por munti la dosiersistemon, ŝoforoj por GPU Malio 4xx/ 6xx/7xx, la kapablo trakti ŝanĝojn en sysctl-valoroj en BPF-programoj, aparato-mapper. modulo dm-dust, protekto kontraŭ atakoj MDS, subteno por Sound Open Firmware por DSP, optimumigo de BFQ-agado, alportante la subsistemon PSI (Pressure Stall Information) al la ebleco de uzo en Android.

La nova versio inkluzivas 15100 korektojn de 1882 programistoj,
flikgrandeco - 62 MB (ŝanĝoj influis 30889 dosierojn, 625094 linioj de kodo estis aldonitaj, 531864 linioj estis forigitaj). Ĉirkaŭ 45% de ĉiuj prezentitaj en 5.2
ŝanĝoj rilatas al aparataj peliloj, proksimume 21% de ŝanĝoj estas
sinteno al ĝisdatigo de kodo specifa por hardvararkitekturoj, 12%
rilata al la reto stako, 3% al dosiersistemoj kaj 3% al interna
kernaj subsistemoj. 12.4% de ĉiuj ŝanĝoj estis preparitaj de Intel, 6.3% de Red Hat, 5.4% de Google, 4.0% de AMD, 3.1% de SUSE, 3% de IBM, 2.7% de Huawei, 2.7% de Linaro, 2.2% de ARM , 1.6 % - Orakolo.

Ĉefa novigoj:

  • Diska Subsistemo, I/O kaj Dosiersistemoj
    • Aldonita por Ext4 subteno funkcias sen distingi la majuskon de signoj en dosiernomoj, kiu estas aktivigita nur rilate al individuaj malplenaj dosierujoj uzante la novan atributon “+F” (EXT4_CASEFOLD_FL). Kiam ĉi tiu atributo estas agordita en dosierujo, ĉiuj operacioj kun dosieroj kaj subdosierujoj ene efektiviĝos sen konsideri la kazon de signoj, inkluzive de la kazo, estos ignorita dum serĉado kaj malfermo de dosieroj (ekzemple, la dosieroj Test.txt, test.txt kaj test.TXT en tiaj dosierujoj estos konsiderataj la samaj). Defaŭlte, la dosiersistemo daŭre estas uskle-distinga, kun la escepto de dosierujoj kun la atributo "chattr +F";
    • Funkcioj por prilaborado de UTF-8-signoj en dosiernomoj, kiuj estas uzataj dum farado de kordaj komparaj kaj normaligaj operacioj, estis unuigitaj;
    • XFS aldonas infrastrukturon por dosiersistema sano-monitorado kaj novan ioctl por pridemandi sanan staton. Eksperimenta funkcio estis efektivigita por kontroli superblokaj nombriloj interrete.
    • Aldonita nova modula aparato-mapisto "dm-polvo", kiu ebligas al vi simuli la aperon de malbonaj blokoj en la amaskomunikilaro aŭ eraroj dum legado de disko. La modulo ebligas simpligi sencimigon kaj testadon de aplikaĵoj kaj diversaj stoksistemoj antaŭ eblaj misfunkciadoj;
    • Kondukita Signifaj agado-optimumoj por la BFQ I/O-planilo. En kondiĉoj de alta I/O-ŝarĝo, optimumigoj faris permesi Redukti la tempon de operacioj kiel lanĉado de aplikaĵoj ĝis 80%.
    • Aldonita serio de sistemvokoj por munti dosiersistemojn: fsopen(), malferma_arbo(), fspick (), fsmount (), fsconfig () и movi_munti(). Ĉi tiuj sistemvokoj permesas al vi aparte prilabori malsamajn stadiojn de muntado (prilabori la superblokon, akiri informojn pri la dosiersistemo, munti, kunligi al la munta punkto), kiuj antaŭe estis faritaj per la komuna mount() sistemvoko. Apartaj alvokoj disponigas la kapablon elfari pli kompleksajn muntajn scenarojn kaj fari apartajn operaciojn kiel ekzemple reagordi la superblokon, ebligi opciojn, ŝanĝi la muntan punkton kaj moviĝi al malsama nomspaco. Krome, aparta prilaborado ebligas al vi precize determini la kialojn de la eligo de eraraj kodoj kaj agordi plurajn fontojn por plurtavolaj dosiersistemoj, kiel overlayfs;
    • Nova operacio IORING_OP_SYNC_FILE_RANGE estis aldonita al la interfaco por nesinkrona I/O io_uring, kiu faras agojn ekvivalentajn al sistema voko sync_file_range (), kaj ankaŭ efektivigis la kapablon registri eventfd kun io_uring kaj ricevi sciigojn pri la kompletigo de operacioj;
    • Por la CIFS-dosiersistemo, la FIEMAP ioctl estis aldonita, provizante efikan ampleksmapadon, same kiel subtenon por la SEEK_DATA kaj SEEK_HOLE-reĝimoj;
    • En la subsistemo FUSE proponis API por administri datuman kaŝmemoron;
    • Btrfs optimumigis la efektivigon de qgroups kaj plibonigis fsync-ekzekutan rapidon por dosieroj kun pluraj malmolaj ligiloj. La kodo de kontrolo de integreco de datumoj estis plibonigita, kiu nun konsideras eblan damaĝon al informoj en RAM antaŭ ol flui datumojn al disko;
    • CEPH aldonis subtenon por eksportado de momentfotoj per NFS;
    • La efektivigo de NFSv4-muntado en "mola" reĝimo estis plibonigita (se eraro okazas en aliro al la servilo en "mola" reĝimo, voko al tuj resendas erarkodon, kaj en "malmola" reĝimo kontrolo ne estas donita ĝis la FS. havebleco aŭ tempotempo estas restarigita). La nova eldono provizas pli precizan pritraktadon de tempo-ekspaso, pli rapidan kraŝan reakiron kaj novan "pli mildan" muntan opcion, kiu ebligas al vi ŝanĝi la erarkodon (ETIMEDOUT) resendita kiam okazas tempo-forigo;
    • La nfsdcld API, dizajnita por spuri la staton de NFS-klientoj, permesas al la NFS-servilo ĝuste spuri la staton de la kliento post rekomenco. Tiel, la nfsdcld-demono nun povas funkcii kiel nfsdcltrack-traktilo;
    • Por AFS aldonis kopiado de bajtaj gamo seruroj en dosieroj (Byte Range Locking);
  • Virtualigo kaj Sekureco
    • Laboro estis farita por forigi lokojn en la kerno kiuj permesas kodekzekuton de skribeblaj reflektitaj memorareoj, kio permesas bloki eblajn truojn kiuj povus esti ekspluatitaj dum atako;
    • Nova kerna komandlinia parametro " mildigoj =" estis aldonita, provizante simpligitan manieron kontroli la ebligon de certaj teknikoj por protekti kontraŭ vundeblecoj asociitaj kun konjekta ekzekuto de instrukcioj sur la CPU. Pasi "mitigations=off" malŝaltas ĉiujn ekzistantajn metodojn, kaj la defaŭlta reĝimo "mitigations=auto" ebligas protekton sed ne influas la uzon de Hyper Threading. La "mildigoj=auto,nosmt" reĝimo aldone malŝaltas Hyper Threading se postulite de la protekta metodo.
    • Aldonita subteno por elektronika cifereca subskribo laŭ GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), evoluinta Vitalij Ĉikunov el Basalt SPO. Aldonita subteno por AES128-CCM al la indiĝena TLS-efektivigo. Aldonita subteno por AEAD-algoritmoj al la modulo crypto_simd;
    • En Kconfig aldonis aparta sekcio de "hardiĝo de la kerno" kun elektoj por plibonigi la protekton de la kerno. Nuntempe, la nova sekcio enhavas nur agordojn por ebligi GCC-kontrol-plibonigajn kromaĵojn;
    • La kernokodo estas preskaŭ liverita de ne-rompiĝantaj kazo deklaroj en ŝaltilo (sen reveno aŭ rompo post ĉiu kazo bloko). Restas ripari 32 el 2311 kazoj de tia uzo de ŝaltilo, post kio eblos uzi la reĝimon "-Wimplicit-fallthrough" dum konstruado de la kerno;
    • Por la PowerPC-arkitekturo, subteno por hardvarmekanismoj por limigado de nedezirataj kernaj alirpadoj al datenoj en uzantspaco estis efektivigita;
    • Aldonita bloka kodo atakoj MDS (Microarchitectural Data Sampling) klaso en Intel-procesoroj. Vi povas kontroli ĉu sistemo estas vundebla al vundeblecoj per la variablo SysFS "/sys/devices/system/cpu/vulnerabilities/mds". Disponebla du protektoreĝimoj: plena, kiu postulas ĝisdatigitan mikrokodon, kaj pretervojo, kiu ne tute garantias malplenigon de CPU-bufroj kiam kontrolo estas transdonita al uzantspaco aŭ la gastsistemo. Por kontroli protektajn reĝimojn, la parametro "mds=" estis aldonita al la kerno, kiu povas preni la valorojn "plena", "plena,nosmt" (+ malŝalti Hyper-Threads) kaj "off";
    • Sur x86-64-sistemoj, "stack guard-paĝo" protekto estis aldonita por IRQ, sencimigaj mekanismoj kaj esceptotraktiloj, kies esenco estas la anstataŭigo de memorpaĝoj ĉe la limo kun la stako, aliro kiu kondukas al la generacio de escepto (paĝ-faŭlto);
    • Aldonita sysctl agordo vm.unprivileged_userfaultfd, kiu kontrolas la kapablon de senprivilegiaj procezoj uzi la userfaultfd() sistemvokon;
  • Reta subsistemo
    • Aldonita IPv6-enirejo-subteno por IPv4-itineroj. Ekzemple, vi nun povas specifi vojregulojn kiel "ip ro add 172.16.1.0/24 per inet6 2001:db8::1 dev eth0";
    • Por ICMPv6, ioctl-vokoj icmp_echo_ignore_anycast kaj icmp_echo_ignore_multicast estas efektivigitaj por ignori ICMP ECHO por anycast kaj
      multielsendaj adresoj. Aldonita la kapablo limigi la intensecon de ICMPv6 paka pretigo;

    • Por la maŝprotokolo BATMAN (Better Approach To Mobile Adhoc Networking), kiu permesas la kreadon de malcentralizitaj retoj en kiuj ĉiu nodo estas konektita tra najbaraj nodoj, aldonis subteno por elsendado de multirolantaro al unielsendo, same kiel la kapablo kontroli per sysfs;
    • En ethtool aldonis nova Fast Link Down parametro, kiu permesas vin redukti la tempon necesan por ricevi informojn pri ligo malsupren-evento por 1000BaseT (en normalaj kondiĉoj la prokrasto estas ĝis 750ms);
    • Aperis ŝanco ligado de Foo-Over-UDP-tuneloj al specifa adreso, retinterfaco aŭ ingo (antaŭe ligado estis farita nur per ofta masko);
    • En la sendrata stako provizita ebleco efektivigi manipulilojn
      OWE (Oportunisma Sendrata Ĉifrado) en uzantspaco;

    • En Netfilter, subteno por la inet-adresfamilio estis aldonita al nat-ĉenoj (ekzemple, vi nun povas uzi unu tradukregulon por prilabori ipv4 kaj ipv6, sen apartigi la regulojn por ipv4 kaj ipv6);
    • En netlink aldonis la reĝimo strikta por strikta kontrolo de la ĝusteco de ĉiuj mesaĝoj kaj atributoj, en kiuj la atendata grandeco de atributoj ne rajtas esti superita kaj aldono de pliaj datumoj ĉe la fino de mesaĝoj estas malpermesita;
  • Memoraj kaj sistemaj servoj
    • La flago CLONE_PIDFD estis aldonita al la sistema alvoko clone(), kiam specifite, la dosierpriskribilo "pidfd" identigita kun la kreita infanprocezo estas resendita al la gepatra procezo. Ĉi tiu dosierpriskribilo, ekzemple, povas esti uzata por sendi signalojn sen timo renkonti vetkuran kondiĉon (tuj post sendado de la signalo, la cela PID povas esti liberigita pro procezfino kaj okupita per alia procezo);
    • Por la dua versio de cgroups, la frostujregila funkcio estis aldonita, per kiu vi povas ĉesi labori en cgroup kaj provizore liberigi iujn rimedojn (CPU, I/O, kaj eble eĉ memoron) por plenumi aliajn taskojn. Administrado estas farita per la kontroldosieroj cgroup.freeze kaj cgroup.events en la cgroup-arbo. Eniro 1 en cgroup.freeze frostigas procezojn en la nuna cgroup kaj ĉiuj infangrupoj. Ĉar frostigado daŭras iom da tempo, aldona cgroup.events dosiero estas provizita per kiu vi povas ekscii pri la finiĝo de la operacio;
    • Sekurigita eksportado de memoraj atributoj ligitaj al ĉiu nodo en sysfs, kio permesas vin determini el uzantspaco la naturon de prilaborado de memorbankoj en sistemoj kun heterogena memoro;
    • La subsistemo PSI (Prema Stall Information) estis plibonigita, kiu permesas analizi informojn pri la atendotempo por ricevi diversajn rimedojn (CPU, memoro, I/O) por certaj taskoj aŭ aroj de procezoj en cgrupo. Uzante PSI, uzantspacaj prizorgantoj povas pli precize taksi la nivelon de sistema ŝarĝo kaj malrapidiĝaj ŝablonoj kompare kun Ŝarĝo-Mezumo. La nova versio provizas subtenon por fiksi sentemajn sojlojn kaj la kapablon uzi la vokon poll() por ricevi sciigon, ke la fiksitaj sojloj estis ekigitaj dum certa tempodaŭro. Ĉi tiu funkcio permesas al Android monitori memormankon en frua etapo, identigi la fonton de problemoj kaj ĉesigi negravajn aplikojn sen kaŭzi problemojn rimarkeblajn por la uzanto. Kiam streĉa testado, PSI-bazitaj memorkonsuma monitorado iloj pruvis 10 fojojn malpli da falsaj pozitivoj kompare al vmpressure statistiko;
    • La kodo por kontroli programojn de BPF estis optimumigita, kio permesas kontroli ĝis 20 fojojn pli rapide por grandaj programoj. Optimumigo ebligis levi la limon de la grandeco de BPF-programoj de 4096 al miliono da instrukcioj;
    • Por BPF-programoj provizita la kapablo aliri tutmondajn datumojn, kiu permesas vin difini tutmondajn variablojn kaj konstantojn en programoj;
    • Aldonita API, kiu permesas vin kontroli ŝanĝojn en sysctl-parametroj de BPF-programoj;
    • Por la MIPS32-arkitekturo, JIT-kompililo por la eBPF virtuala maŝino estis efektivigita;
    • Por la 32-bita PowerPC-arkitekturo, subteno por la sencimiga ilo KASan (Kernel address sanitizer) estis aldonita, kiu helpas identigi erarojn kiam oni laboras kun memoro;
    • Sur x86-64-sistemoj, la limigo pri metado de ŝtatforĵetoj dum kernkraŝo (kraŝ-dump) en memorareoj super 896MB estis forigita;
    • Por la s390-arkitekturo, subteno por kerna adresspaco-hazardigo (KASLR) kaj la kapablo kontroli ciferecajn subskribojn dum ŝarĝo de la kerno per kexec_file_load () estas efektivigitaj;
    • Por la PA-RISC-arkitekturo, aldonis subtenon por la kernel-sencimigilo (KGDB), saltomarkoj kaj kprobes;
  • Ekipaĵo
    • Ŝoforo inkluzivita Fajlilo por la Malio 400/450 GPU, uzita en multaj pli malnovaj fritoj bazitaj sur la ARM-arkitekturo. Por pli novaj Maliaj GPUoj, la Panfrost-ŝoforo estis aldonita, apogante blatojn bazitajn sur Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) kaj Bifrost (Mali G3x, G5x, G7x) mikroarkitekturoj;
    • Aldonita subteno por sonaparatoj uzantaj malferman firmvaro Sono Malferma Firmvaro (SOF). Malgraŭ la havebleco de malfermitaj ŝoforoj, la firmvarkodo por sonaj blatoj ankoraŭ restis fermita kaj estis liverita en binara formo. La Sound Open Firmware-projekto estis evoluigita fare de Intel por krei malferman firmvaron por DSP-fritoj ligitaj al audiopretigo (Google poste ankaŭ aliĝis al la evoluo). Nuntempe, la projekto jam preparis la malkovron de firmware por sonaj blatoj de la platformoj Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake kaj IceLake;
    • Intel DRM-ŝoforo (i915) aldonas subtenon por blatoj
      Elkhartlake (Gen11). Aldonitaj PCI-IDoj por Comet Lake (Gen9) blatoj. Subteno por Icelake-fritoj estis stabiligita, por kiuj kromaj PCI-aparataj identigiloj ankaŭ estis aldonitaj.
      Ŝaltita
      reĝimo de nesinkrona ŝanĝado inter du bufroj en videomemoro (async flip) dum elfarado de skribaj operacioj per mmio, kiu signife pliigis la agadon de kelkaj 3D-aplikoj (ekzemple, rendimento en la 3DMark Ice Storm-testo pliiĝis je 300-400%). Aldonita teknologia subteno HDCP2.2 (Alt-bandwidth Digital Content Protection) por ĉifrado de videosignaloj elsenditaj per HDMI;

    • La amdgpu-ŝoforo por Vega20 GPU aldonis subteno por RAS ( Fidindeco, Havebleco, Serveblo) kaj eksperimenta subteno por la SMU 11 subsistemo, kiu anstataŭigis Powerplay-teknologion. Por GPU Vega12 aldonis subteno por BACO-reĝimo (Bus Active, Chip Off). Aldonita komenca subteno por XGMI, altrapida buso (PCIe 4.0) por GPU-interkonekto. Aldonitaj mankantaj identigiloj por kartoj bazitaj sur Polaris10 GPU al la amdkfd-ŝoforo;
    • La Nouveau-ŝoforo aldonis subtenon por tabuloj bazitaj sur la pecetaro NVIDIA Turing 117 (TU117, uzata en la GeForce GTX 1650). EN
      kconfig aldonis agordo por malŝalti malnoviĝintajn funkciojn, kiuj ne plu estas uzataj en nunaj eldonoj de libdrm;

    • Subteno por "templinio" sinkronigaj objektoj estis aldonita al la DRM API kaj la amdgpu-ŝoforo, permesante al vi fari sen klasika blokado.
    • La vboxvideo-ŝoforo por la virtuala GPU VirtualBox estis movita de la sursceniga branĉo al la ĉefa strukturo;
    • Aldonita rapidoŝoforo por GFX SoC ASPEED-blato;
    • Aldonita subteno por ARM SoC kaj Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, ,Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi). ) tabuloj RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
      ST Micro (stm32mp157a, stm32mp157c), NXP (
      Eckelmann ci4x10 (i.MX6DL),

      i.MX8MM EVK (i.MX8MM),

      ZII i.MX7 RPU2 (i.MX7),

      ZII SPB4 (VF610),

      Zii Ultra (i.MX8M),

      TQ TQMa7S (i.MX7Solo),

      TQ TQMa7D (i.MX7Dual),

      Kobo Aura (i.MX50),

      Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210).

Samtempe, Latin American Free Software Foundation formis
eblo tute libera kerno 5.2 - Linukso-libre 5.2-gnu, malplenigita de firmvaro kaj ŝoforelementoj enhavantaj ne-liberajn komponentojn aŭ kodsekciojn, kies amplekso estas limigita fare de la fabrikanto. Nova eldono inkluzivas dosieron alŝuton
Sona Malferma Firmvaro. Ŝargado de blobs en ŝoforoj estas malŝaltita
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp kaj ucsi_ccg. La blob-purigadkodo en la ŝoforoj kaj subsistemoj ixp4xx, imx-sdma, amdgpu, nouveau kaj goya, same kiel en la mikrokoda dokumentado, estis ĝisdatigita. Ĉesis purigi makulojn en la ŝoforo r8822be pro ĝia forigo.

fonto: opennet.ru

Aldoni komenton