Linux 5.7 kjarnaútgáfa

Eftir tveggja mánaða þróun, Linus Torvalds kynnt kjarnaútgáfu Linux 5.7. Meðal athyglisverðustu breytinganna: ný útfærsla á exFAT skráarkerfinu, bareudp eining til að búa til UDP göng, vernd byggð á auðkenningu bendils fyrir ARM64, hæfni til að tengja BPF forrit við LSM meðhöndlara, ný útfærsla á Curve25519, skipt- læsa skynjari, BPF samhæfni við PREEMPT_RT, fjarlægir takmörk á 80 stafa línustærð í kóðanum, að teknu tilliti til örgjörva hitastigsvísa í verkefnaáætluninni, getu til að nota klón() til að kveikja ferli í öðrum cgroup, vörn gegn skrifum í minni með því að nota userfaultfd.

Nýja útgáfan inniheldur 15033 lagfæringar frá 1961 forriturum,
plástrastærð - 39 MB (breytingar höfðu áhrif á 11590 skrár, bætti við 570560 línum af kóða,
297401 raðir fjarlægðar). Um 41% allra kynnt í 5.7
breytingar tengjast reklum tækja, um það bil 16% breytinga eru það
viðhorf til uppfærslu kóða sem er sértækur fyrir vélbúnaðararkitektúr, 13%
tengist netstafla, 4% skráarkerfum og 4% innri
kjarna undirkerfi.

Helstu nýjungar:

  • Diska undirkerfi, I/O og skráarkerfi
    • Bætti við nýrri exFAT bílstjóri útfærslu, stofnað byggt á núverandi „sdfat“ (2.x) kóðagrunni sem Samsung þróaði fyrir Android snjallsíma sína. Ökumaðurinn sem áður var bætt við kjarnann var byggður á eldri Samsung kóða (útgáfa 1.2.9) og var um 10% á eftir nýja ökumanninum í frammistöðu. Við skulum muna að það varð mögulegt að bæta exFAT stuðningi við kjarnann eftir Microsoft опубликовала opinberar forskriftir og gerðu exFAT einkaleyfi aðgengileg fyrir höfundarréttarfrjálsa notkun á Linux.
    • Btrfs útfærir nýja ioctl() skipun - BTRFS_IOC_SNAP_DESTROY_V2, sem gerir þér kleift að eyða undirkafla með auðkenni hans. Fullur stuðningur við klónun innbyggða umfangs er veittur. Fjöldi afpöntunarpunkta fyrir endurdreifingaraðgerðir hefur verið stækkaður, sem hefur dregið úr löngum biðum þegar „afturkalla jafnvægi“ skipunina. Ákvörðun baktengla að umfangi hefur verið flýtt (til dæmis hefur keyrslutími prófskriftar minnkað úr klukkutíma í nokkrar mínútur). Bætti við hæfileikanum til að hengja skráarumfang við hverja inóðu trésins. Lokunarkerfið sem notað er þegar skrifað er í undirskil og þegar NOCOW er útilokað hefur verið endurhannað. Bætt skilvirkni fsync framkvæmd fyrir svið.
    • XFS hefur bætt lýsigagnaskoðun og fsck fyrir virkar skipting. Lagt hefur verið til bókasafn til að endurbyggja btree mannvirki, sem í framtíðinni verður notað til að endurvinna xfs_repair og innleiða möguleikann á endurheimt án þess að aftengja skiptinguna.
    • Tilraunastuðningur við að setja skiptisneið í SMB3 geymslum hefur verið bætt við CIFS. Innleiddi POSIX viðbætur á readdir, skilgreindar í SMB3.1.1 forskriftinni. Bætt skrifafköst fyrir 64KB síður þegar skyndiminni=stöng stilling er virkjuð og samskiptareglur 2.1+ eru notaðar.
    • FS EXT4 hefur verið flutt úr bmap og iopoll yfir í að nota iomap.
    • F2FS veitir valfrjálsan stuðning fyrir gagnaþjöppun með því að nota zstd reikniritið. Sjálfgefið er að LZ4 reikniritið er notað fyrir þjöppun. Bætti við stuðningi við "chattr -c commit" skipunina. Uppsetningartímaskjár fylgir. Bætti við ioctl F2FS_IOC_GET_COMPRESS_BLOCKS til að fá upplýsingar um fjölda þjappaðra blokka. Bætt við úttak þjöppunargagna í gegnum statx.
    • Ceph skráarkerfið hefur bætt við getu til að framkvæma skráargerð og eyðingu á staðnum (aftengja) án þess að bíða eftir svari frá þjóninum (vinnur í ósamstilltum ham). Breytingin, til dæmis, getur bætt árangur verulega þegar rsync tólið er keyrt.
    • Hæfni til að nota virtiofs sem skráarkerfi á efstu stigi hefur verið bætt við OVERLAYFS.
    • Endurskrifað slóðarkóði í VFS, táknrænn hlekkþáttunarkóði hefur verið endurunninn og tengingarpunktur hefur verið sameinaður.
    • Í scsi undirkerfinu til óforréttinda notenda leyft framkvæmd ZBC skipana.
    • Í dm_writecache komið til framkvæmda getu til að hreinsa skyndiminni smám saman út frá max_age færibreytunni, sem setur hámarkslíftíma blokkar.
    • Í dm_integrity bætt við stuðningur við „henta“ aðgerðina.
    • Í null_blk bætt við stuðningur við villuskipti til að líkja eftir bilunum meðan á prófun stendur.
    • Bætt við getu til að senda udev tilkynningar um breytingar á stærð tækjabúnaðar.
  • Net undirkerfi
    • Netfilter fylgir breytingar, sem flýtir verulega fyrir vinnslu stórra samsvörunarlista (nftables-sett), sem krefjast þess að athuga blöndu af undirnetum, netgáttum, samskiptareglum og MAC vistföngum.
      Hagræðingar kynnt inn í nft_set_pipapo (PIle PAcket POlicies) eininguna, sem leysir vandamálið við að passa innihald pakka við handahófskennd svæðisástandssvið sem notuð eru í síunarreglum, svo sem IP og netgáttasvið (nft_set_rbtree og nft_set_hash vinna millibilssamsvörun og beina endurspeglun gilda ). Útgáfan af pipapo vektorvædd með því að nota 256 bita AVX2 leiðbeiningar á kerfi með AMD Epyc 7402 örgjörva sýndi 420% frammistöðuaukningu þegar 30 þúsund færslur voru flokkaðar, þ. Aukningin þegar borin var saman samsetning af undirneti og gáttarnúmeri við þáttun 1000 færslur var 87% fyrir IPv4 og 128% fyrir IPv6.

    • Bætt við bareudp eining, sem gerir þér kleift að hylja ýmsar L3 samskiptareglur, eins og MPLS, IP og NSH, inn í UDP göng.
    • Samþætting MPTCP (MultiPath TCP) íhluta, framlengingu á TCP samskiptareglum til að skipuleggja rekstur TCP tengingar með afhendingu pakka samtímis eftir nokkrum leiðum í gegnum mismunandi netviðmót tengd mismunandi IP tölum, hefur haldið áfram.
    • Bætt við stuðningur við vélbúnaðarhröðunarkerfi til að umlykja Ethernet ramma í 802.11 (Wi-Fi).
    • Þegar tæki er fært úr einu nafnarými netkerfis í annað er aðgangsréttur og eignarhald á samsvarandi skrám í sysfs breytt.
    • Bætti við möguleikanum á að nota SO_BINDTODEVICE fánann fyrir notendur sem ekki eru rót.
    • Þriðji hluti plástra hefur verið samþykktur, sem breytir ethtool verkfærasettinu úr ioctl() í að nota netlink viðmótið. Nýja viðmótið gerir það auðveldara að bæta við viðbótum, bætir villumeðferð, gerir kleift að senda tilkynningar þegar ástand breytist, einfaldar samskipti milli kjarna og notendarýmis og dregur úr fjölda nafngreindra lista sem þarf að samstilla.
    • Bætti við möguleikanum á að nota sérstaka vélbúnaðarhraðla til að framkvæma tengingarrakningaraðgerðir.
    • Í netfilter bætt við krókur til að tengja flokkara útgefinna pakka (egress), sem bætti við áður núverandi krók fyrir komandi pakka (inngangur).
  • Sýndarvæðing og öryggi
    • Bætt við vélbúnaðarútfærslu á auðkenningu bendils (Auðkenning bendills), sem notar sérhæfðar ARM64 CPU leiðbeiningar til að verjast árásum með því að nota return-oriented programming (ROP) tækni, þar sem árásarmaðurinn reynir ekki að setja kóðann sinn í minni, heldur starfar á stykki af vélaleiðbeiningum sem þegar eru til í hlaðnum bókasöfnum, endar með eftirlitsskilaboði. Öryggi kemur niður á því að nota stafrænar undirskriftir til að staðfesta endursendingarföng á kjarnastigi. Undirskriftin er geymd í ónotuðum efstu bitum bendillsins sjálfs. Ólíkt hugbúnaðarútfærslum fer sköpun og sannprófun á stafrænum undirskriftum fram með því að nota sérstakar CPU leiðbeiningar.
    • Bætt við hæfileikinn til að vernda minnissvæði frá skrifum með því að nota userfaultfd() kerfiskallið, hannað til að meðhöndla síðuvillur (aðgang að óúthlutuðum minnissíðum) í notendarými. Hugmyndin er að nota userfaultfd() bæði til að greina aðgangsbrot að síðum sem merktar eru sem skrifvarðar og til að hringja í meðhöndlun sem getur brugðist við slíkum skriftilraunum (til dæmis til að meðhöndla breytingar á meðan á myndun lifandi skyndimynda af ferli í gangi, segir handtaka þegar minnisdumpum er varpað á disk, útfært sameiginlegt minni, rakið breytingar á minni). Virkni jafngildi með því að nota mprotect() í tengslum við SIGSEGV merkjahöndlun, en það virkar áberandi hraðar.
    • SELinux hefur úrelt „checkreqprot“ færibreytuna, sem gerir þér kleift að slökkva á minnisverndarathugunum við vinnslu reglna (sem leyfir notkun keyranlegra minnisvæða, óháð reglum sem tilgreindar eru í reglunum). Kernfs tákntenglar hafa leyfi til að erfa samhengi móðurskránna sinna.
    • Uppbygging innifalinn mát KRSI, sem gerir þér kleift að tengja BPF forrit við hvaða LSM króka sem er í kjarnanum. Breytingin gerir þér kleift að búa til LSM einingar (Linux Security Module) í formi BPF forrita til að leysa endurskoðunarvandamál og lögboðna aðgangsstýringu.
    • Framkvæmt Hagræðir frammistöðu /dev/random með því að flokka CRNG gildi í stað þess að hringja í RNG leiðbeiningar hver fyrir sig. Bætt afköst getrandom og /dev/random á ARM64 kerfum sem veita RNG leiðbeiningar.
    • Útfærsla á sporöskjulaga feril Curve25519 skipt út fyrir valmöguleikann frá bókasafninu HACL, fyrir það gefið stærðfræðileg sönnun um formlega sannprófun á áreiðanleika.
    • Bætt við kerfi til að upplýsa um ókeypis minnissíður. Með því að nota þetta kerfi geta gestakerfi sent upplýsingar um síður sem eru ekki lengur notaðar til hýsingarkerfisins og gestgjafinn getur tekið síðugögnin til baka.
    • Í vfio/pci bætt við stuðningur við SR-IOV (Single-Root I/O Virtualization).
  • Minni og kerfisþjónusta
    • Frá 80 til 100 stafir aukist takmörkun á hámarkslínulengd í frumtextum. Á sama tíma er enn mælt með því að forritarar haldi sig innan 80 stafa í hverri línu, en þetta er ekki lengur erfitt takmörk. Að auki mun það nú aðeins leiða til byggingarviðvörunar ef farið er yfir línustærðarmörkin ef checkpatch er keyrt með '--strict' valkostinum. Breytingin mun gera það að verkum að ekki er hægt að afvegaleiða athygli framkvæmdaaðila með því meðferð með bilum og finnst meira frjáls þegar þú stillir kóða, sem og mun koma í veg fyrir of mikið línubrot, truflandi kóðaskilning og leit.
    • Bætt við stuðningur við EFI blandaðan ræsiham, sem gerir þér kleift að hlaða 64 bita kjarna úr 32 bita fastbúnaði sem keyrir á 64 bita örgjörva án þess að nota sérhæfðan ræsiforrit.
    • Virkt kerfi til að auðkenna og kemba klofna læsa (“skipt læsing"), sem á sér stað þegar aðgangur er að ójöfnuðum gögnum í minni vegna þess að þegar frumeindafyrirmæli eru framkvæmd fara gögnin yfir tvær CPU skyndiminni línur. Slík lokun leiðir til verulegs árangursáfalls (1000 lotur hægari en atómaðgerð á gögnum sem falla í eina skyndiminni línu). Það fer eftir "split_lock_detect" ræsibreytu, kjarninn getur greint slíka læsingu á flugi og gefið út viðvaranir eða sent SIGBUS merki til forritsins sem veldur læsingunni.
    • Verkefnaáætlunin veitir rakningu hitaskynjara (Hitaþrýstingur) og útfært með hliðsjón af ofþenslu þegar verkefni eru sett. Með því að nota tölfræðina sem veitt er getur hitauppstreymisstjórinn stillt hámarkstíðni örgjörva þegar ofhitnun er og verkefnaáætlunin tekur nú tillit til minnkunar á tölvuorku vegna slíkrar lækkunar á tíðni þegar hann skipuleggur verkefni til að keyra (áður brást tímaáætlunarmaðurinn við breytingum í tíðni með ákveðinni töf, um nokkurt skeið að taka ákvarðanir byggðar á uppblásnum forsendum um tiltæka tölvuauðlindir).
    • Verkefnaáætlunin inniheldur óbreytilegir vísbendingar álagsmælingu, sem gerir þér kleift að meta álagið rétt, óháð núverandi notkunartíðni CPU. Breytingin gerir þér kleift að spá nákvæmari fyrir um hegðun verkefna við aðstæður þar sem breytist spennu og örgjörvatíðni. Til dæmis mun verkefni sem neytti 1/3 af örgjörvaforða við 1000 MHz neyta 2/3 af tilföngum þegar tíðnin fer niður í 500 MHz, sem áður skapaði ranga forsendu um að það væri keyrt á fullri afköstum (þ.e.a.s. verkefni birtust stærra fyrir tímaáætlunina aðeins með því að minnka tíðnina, sem leiddi til þess að rangar ákvarðanir voru teknar í schedutil cpufreq seðlabankastjóra).
    • Intel P-state bílstjórinn, sem er ábyrgur fyrir vali á frammistöðustillingum, hefur verið skipt yfir í notkun tímaáætlun.
    • Möguleikinn á að nota BPF undirkerfið þegar kjarninn er í gangi í rauntíma (PREEMPT_RT) hefur verið innleiddur. Áður, þegar PREEMPT_RT var virkt, þurfti að gera BPF óvirkt.
    • Ný tegund af BPF forriti hefur verið bætt við - BPF_MODIFY_RETURN, sem hægt er að tengja við fall í kjarnanum og breyta gildinu sem þessi aðgerð skilar.
    • Bætt við tækifæri Notkun clone3() kerfiskallsins til að búa til ferli í cgroup sem er öðruvísi en foreldra cgroup, sem gerir móðurferlinu kleift að beita takmörkunum og virkja bókhald strax eftir að nýtt ferli eða þráður hefur komið af stað. Til dæmis getur þjónustustjóri beint úthlutað nýjum þjónustum til aðskilda cgroups og ný ferli, þegar þau eru sett í „frosna“ cgroups, verða tafarlaust stöðvuð.
    • í Kbuild bætt við stuðningur við umhverfisbreytuna "LLVM=1" til að skipta yfir í Clang/LLVM verkfærakistuna þegar kjarnann er byggður. Kröfur fyrir binutils útgáfuna hafa verið hækkaðar (2.23).
    • Hluti /sys/kernel/debug/kunit/ hefur verið bætt við kembiforrit með niðurstöðum kunit prófana.
    • Bætt við kjarna ræsibreytu pm_debug_messages (samlíkt við /sys/power/pm_debug_messages), sem gerir kleift að senda út villuleitarupplýsingar um virkni orkustjórnunarkerfisins (gagnlegt þegar villuleit eru vandamál með dvala og biðham).
    • Að ósamstilltu I/O tengi io_úring stuðningi bætt við splæsa() и val á atómbuffi.
    • Bætt cgroup snið með því að nota perf verkfærakistuna. Áður gat perf aðeins sniðið verkefni í tilteknum cgroup og gat ekki fundið út hvaða cgroup núverandi úrtak tilheyrir. perf sækir nú cgroup upplýsingar fyrir hvert sýni, sem gerir þér kleift að setja upp fleiri en einn cgroup og beita flokkun eftir
      cgroup í skýrslum.

    • cgroupfs, gervi-FS til að stjórna cgroups, hefur bætt við stuðningi við útbreidda eiginleika (xattrs), sem þú getur til dæmis skilið eftir viðbótarupplýsingar fyrir umsjónarmenn í notendarými.
    • Í cgroup minnisstýringu bætt viðog stuðningur við endurtekna vernd á „memory.low“ gildinu, sem stjórnar lágmarksmagni vinnsluminni sem hópmeðlimir fá. Þegar þú setur upp stigveldi cgroup með "memory_recursiveprot" valmöguleikanum mun gildi "memory.low" sem er stillt fyrir neðri hnúta dreifast sjálfkrafa til allra barnahnúta.
    • Bætt við Uacce (Unified/User-space-access-intended Accelerator Framework) ramma til að deila sýndarvistföngum (SVA, Shared Virtual Addressing) á milli örgjörva og jaðartækja, sem gerir vélbúnaðarhröðlum kleift að fá aðgang að gagnaskipulagi í aðal CPU.
  • Vélbúnaðararkitektúr
    • Fyrir ARM arkitektúrinn er hæfileikinn til að heita-sækja minni útfærður.
    • Fyrir RISC-V arkitektúrinn hefur stuðningi við heittengingu og fjarlægingu örgjörva (CPU hotplug) verið bætt við. Fyrir 32 bita RISC-V er eBPF JIT útfært.
    • Möguleikinn á að nota 32 bita ARM kerfi til að keyra KVM gestaumhverfi hefur verið fjarlægð.
    • Fjarlægði „dúkkuna“ NUMA útfærsluna fyrir s390 arkitektúrinn, sem engin notkunartilvik fundust fyrir til að ná fram afköstum.
    • Fyrir ARM64, bætti við stuðningi við AMU (Activity Monitors Unit) viðbótina, sem er skilgreind í ARMv8.4 og veitir frammistöðuteljara sem eru notaðir til að reikna út leiðréttingarstuðla tíðniskala í verkefnaáætluninni.
  • Оборудование
    • Bætt við stuðningur við vDPA tæki sem nota gagnaskiptarás sem er í samræmi við virtio forskriftir. vDPA tæki geta annað hvort verið líkamlega tengdur búnaður eða sýndartæki sem líkjast eftir hugbúnaði.
    • Í GPIO undirkerfinu birtist ný ioctl() skipun til að fylgjast með breytingum, sem gerir þér kleift að upplýsa ferlið um breytingar á ástandi hvaða GPIO línu sem er. Sem dæmi um notkun nýju skipunarinnar lagt til gpio-watch tól.
    • Í i915 DRM bílstjóri fyrir Intel skjákort innifalið sjálfgefinn stuðningur fyrir Tigerlake („Gen12“) flögur og bætt við upphafsstuðningi fyrir OLED baklýsingu. Bættur stuðningur við Ice Lake, Elkhart Lake, Baytrail og Haswell flögur.
    • Í amdgpu bílstjóri bætt við getu til að hlaða fastbúnaði inn í USBC flöguna fyrir ASIC. Bættur stuðningur við AMD Ryzen 4000 „Renoir“ flögur. Það er nú stuðningur við að stjórna OLED spjöldum. Sýnir fastbúnaðarstöðu í kembiforritum.
    • Möguleikinn á að nota OpenGL 4 í gestakerfum hefur verið bætt við vmwgfx DRM rekla fyrir VMware sýndarvæðingarkerfi (áður var OpenGL 3.3 studd).
    • Bætt við nýjum DRM ökumanni tímas fyrir TI Keystone palla skjákerfið.
    • Bætt við rekla fyrir LCD spjöld: Feixin K101 IM2BA02, Samsung s6e88a0-ams452ef01, Novatek NT35510, Elida KD35T133, EDT, NewEast Optoelectronics WJFH116008A, Rocktech RK101D, 01D, 350D, 54004D, XNUMXD, XNUMXD, XNUMXD, XNUMX.
    • Til orkustjórnunarkerfisins bætt við stuðningur við Atom-undirstaða Intel Jasper Lake (JSL) vettvang.
    • Bætt við stuðningi fyrir Pinebook Pro fartölvu byggða á Rockchip RK3399, Pine64 PineTab spjaldtölvu og snjallsíma PinePhone byggt á Allwinner A64.
    • Bætt við stuðningi fyrir nýja hljóðmerkjamál og flís:
      Amlogic AIU, Amlogic T9015, Texas Instruments TLV320ADCX140, Realtek RT5682, ALC245, Broadcom BCM63XX I2S, Maxim MAX98360A, Presonus Studio 1810c, MOTU MicroBook IIc.

    • Bætt við stuðningi fyrir ARM töflur og palla Qualcomm Snapdragon 865 (SM8250), IPQ6018, NXP i.MX8M Plus, Kontron „sl28“, 11 i.MX6 TechNexion Pico töfluvalkostir, þrír nýir Toradex Colibri valkostir, Samsung S7710 Galaxy Xcover 2 byggt á ST -Ericsson u8500, DH Electronics DHCOM SoM og PDK2, Renesas M3ULCB, Hoperun HiHope, Linutronix Testbox v2, PocketBook Touch Lux 3.

Heimild: opennet.ru

Bæta við athugasemd