Linux 5.14 kjarnaútgáfa

Eftir tveggja mánaða þróun kynnti Linus Torvalds útgáfu Linux kjarna 5.14. Meðal athyglisverðustu breytinganna: ný quotactl_fd() og memfd_secret() kerfissímtöl, fjarlæging á ide og hráum reklum, nýr I/O forgangsstýringur fyrir cgroup, SCHED_CORE verkáætlunarstillingu, innviði til að búa til staðfest BPF forritahleðslutæki.

Nýja útgáfan inniheldur 15883 lagfæringar frá 2002 forriturum, plástrastærðin er 69 MB (breytingarnar höfðu áhrif á 12580 skrár, 861501 línu af kóða var bætt við, 321654 línum var eytt). Um 47% allra breytinga sem kynntar eru í 5.14 tengjast tækjum, um það bil 14% breytinga tengjast uppfærslukóða sem er sérstakur fyrir vélbúnaðararkitektúr, 13% tengjast netstafla, 3% tengjast skráarkerfum og 3% tengjast innri kjarna undirkerfum.

Helstu nýjungar:

  • Diska undirkerfi, I/O og skráarkerfi
    • Nýr I/O forgangsröðunarstýring hefur verið innleiddur fyrir cgroups, rq-qos, sem getur stjórnað vinnsluforgangi beiðna um að loka á tæki sem myndast af meðlimum hvers cgroup. Nýjum forgangsstýringarstuðningi hefur verið bætt við mq-deadline I/O tímaáætlunarbúnaðinn.
    • ext4 skráarkerfið útfærir nýja ioctl skipun, EXT4_IOC_CHECKPOINT, sem þvingar allar biðfærslur úr dagbókinni og tengdum biðmunum þeirra til að skola á diskinn og skrifar einnig yfir svæðið sem dagbókin notar í geymslu. Breytingin var unnin sem hluti af átaksverkefni til að koma í veg fyrir upplýsingaleka úr skráarkerfum.
    • Frammistöðuhagræðingar hafa verið gerðar á Btrfs: með því að útrýma óþarfa skráningu á útbreiddum eiginleikum við framkvæmd fsync hefur afköst öflugra aðgerða með auknum eiginleikum aukist um allt að 17%. Að auki, þegar klippingaraðgerðir eru framkvæmdar sem hafa ekki áhrif á umfang, er full samstilling óvirk, sem stytti aðgerðatímann um 12%. Stillingu hefur verið bætt við sysfs til að takmarka I/O bandbreidd þegar FS er athugað. Bætti við ioctl símtölum til að hætta við að breyta stærð og eyða aðgerðum tækisins.
    • Í XFS hefur útfærsla á biðminni skyndiminni verið endurhönnuð, sem hefur verið skipt yfir í að úthluta minnissíðum í lotuham. Bætt skyndiminni skilvirkni.
    • F2FS bætir við möguleika til að starfa í skrifvarandi ham og útfærir þjappaða blokk skyndiminni ham (compress_cache) til að bæta afköst af handahófi lestrar. Stuðningur hefur verið útfærður við að þjappa skrám sem eru kortlagðar í minni með því að nota mmap() aðgerðina. Til að slökkva valkvætt á skráarþjöppun á grundvelli grímu hefur verið lagt til nýjan mount valkost nocompress.
    • Unnið hefur verið að því að bæta samhæfni við geymslu fyrir stafræna myndavél í exFAT reklanum.
    • Bætti við quotactl_fd() kerfiskallinu, sem gerir þér kleift að stjórna kvótum ekki í gegnum sérstaka tækjaskrá, heldur með því að tilgreina skráarlýsingu sem tengist skráarkerfinu sem kvótinn er notaður fyrir.
    • Gömlu reklarnir fyrir blokkartæki með IDE viðmótinu hafa verið fjarlægðir úr kjarnanum; þeir hafa lengi verið skipt út fyrir libata undirkerfið.
    • „hrái“ rekillinn hefur verið fjarlægður úr kjarnanum, sem veitir óbuffaðan aðgang að tækjum á bannlista í gegnum /dev/raw viðmótið. Þessi virkni hefur lengi verið innleidd í forritum sem nota O_DIRECT fánann.
  • Minni og kerfisþjónusta
    • Verkefnaáætlunarmaðurinn útfærir nýjan tímasetningarham, SCHED_CORE, sem gerir þér kleift að stjórna hvaða ferlum er hægt að framkvæma saman á sama CPU kjarna. Hægt er að úthluta hverju ferli vafrakökuauðkenni sem skilgreinir umfang trausts milli ferla (til dæmis tilheyra sama notanda eða íláti). Þegar þú skipuleggur keyrslu kóða getur tímaáætlunarmaðurinn tryggt að einum CPU kjarna sé aðeins deilt á milli ferla sem tengjast sama eiganda, sem hægt er að nota til að loka á sumum Spectre árásum með því að koma í veg fyrir að traust og ótraust verkefni keyri á sama SMT (Hyper Threading) þræði .
    • Fyrir cgroup hefur stuðningur við drápsaðgerðina verið innleiddur, sem gerir þér kleift að drepa alla ferla sem tengjast hópnum í einu (senda SIGKILL) með því að skrifa „1“ í sýndarskrána cgroup.kill.
    • Aukinn möguleiki sem tengist því að bregðast við greiningu á klofnum læsingum ("splitlæsingum") sem eiga 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 verulega lækkunar á frammistöðu, svo áður var hægt að slíta forritinu sem olli lokuninni með valdi. Nýja útgáfan bætir við kjarna skipanalínubreytu „split_lock_detect=ratelimit:N“, sem gerir þér kleift að skilgreina kerfisbundið takmörk á hraða læsingaraðgerða á sekúndu, eftir að farið er yfir það ferli sem hefur orðið uppspretta skiptan læsingar neyðist til að hætta í 20 ms í stað þess að hætta.
    • Cgroup bandbreiddarstýringin CFS (CFS bandwidth controller), sem ákvarðar hversu miklum örgjörvatíma er hægt að úthluta til hvers cgroup, útfærir getu til að skilgreina tímatakmörkuð takmörk, sem gerir ráð fyrir betri stjórnun á leyndnæmu vinnuálagi. Til dæmis, að setja cpu.cfs_quota_us á 50000 og cpu.cfs_period_us á 100000 mun leyfa hópi ferla að sóa 100 ms af CPU tíma á 50 ms fresti.
    • Bætt við upphaflegum innviðum til að búa til BPF forritahleðslutæki, sem mun enn frekar leyfa hleðslu á aðeins BPF forritum sem eru undirrituð með traustum stafrænum lykli.
    • Bætti við nýrri futex aðgerð FUTEX_LOCK_PI2, sem notar eintóna tímamæli til að reikna út tímamörk sem tekur mið af þeim tíma sem kerfið eyðir í svefnham.
    • Fyrir RISC-V arkitektúrinn er innleiddur stuðningur við stórar minnissíður (Transparent Huge-Pages) og getu til að nota KFENCE vélbúnaðinn til að greina villur þegar unnið er með minni.
    • Madvise() kerfiskallið, sem veitir leið til að hámarka minnisstjórnun ferlis, hefur bætt við MADV_POPULATE_READ og MADV_POPULATE_WRITE fánum til að búa til „síðuvillu“ á öllum minnissíðum sem eru kortlagðar til að lesa eða skrifa aðgerðir, án þess að framkvæma raunverulegan lestur eða ritun (forval). Notkun fána getur verið gagnleg til að draga úr töfum á framkvæmd forritsins, vegna fyrirbyggjandi framkvæmdar „síðuvillu“ meðhöndlunar fyrir allar óúthlutaðar síður í einu, án þess að bíða eftir raunverulegum aðgangi að þeim.
    • Kunit einingaprófunarkerfið hefur bætt við stuðningi við að keyra próf í QEMU umhverfinu.
    • Nýjum rekjamerkjum hefur verið bætt við: „osnoise“ til að fylgjast með töfum forrita af völdum truflana meðhöndlunar og „timerlat“ til að birta nákvæmar upplýsingar um tafir þegar vaknað er af tímamælismerki.
  • Sýndarvæðing og öryggi
    • Memfd_secret() kerfiskallinu hefur verið bætt við til að búa til einkaminnisvæði í einangruðu vistfangarými, sýnilegt aðeins eignarferlinu, endurspeglast ekki í öðrum ferlum og ekki beint aðgengilegt kjarnanum.
    • Í síunarkerfi seccomp kerfisins er hægt að nota eina atómaðgerð til að búa til skráarlýsingu fyrir einangrað verkefni og skila því þegar verið er að vinna úr kerfiskalli, þegar blokkunarmeðhöndlarar eru færðir inn í notendarýmið. Fyrirhuguð aðgerð leysir vandamálið við að trufla meðhöndlun í notendarými þegar merki berst.
    • Bætt við nýju kerfi til að stjórna auðlindamörkum í notendanafnarýminu, sem bindur einstaka rlimitteljara við notanda í „notandanafnarýminu“. Breytingin leysir vandamálið við notkun algengra tilfangateljara þegar einn notandi keyrir ferla í mismunandi ílátum.
    • KVM hypervisor fyrir ARM64 kerfi hefur bætt við möguleikanum á að nota MTE (MemTag, Memory Tagging Extension) viðbótina í gestakerfum, sem gerir þér kleift að binda merki við hverja minnisúthlutunaraðgerð og skipuleggja að athuga rétta notkun ábendinga til að hindra hagnýtingu á veikleikar af völdum aðgangs að þegar losuðum minnisblokkum, flæðir yfir biðminni, aðgangur fyrir frumstillingu og notkun utan núverandi samhengis.
    • Nú er hægt að stilla bendistaðfestingaraðstöðu ARM64 vettvangsins sérstaklega fyrir kjarna og notendarými. Tæknin gerir þér kleift að nota sérhæfðar ARM64 leiðbeiningar til að sannreyna endursendingarföng með stafrænum undirskriftum sem eru geymdar í ónotuðum efri bitum bendillsins sjálfs.
    • Notendastilling Linux hefur bætt við stuðningi við að nota rekla fyrir PCI tæki með sýndar PCI strætó, útfært af PCI-over-virtio bílstjóranum.
    • Fyrir x86 kerfi, bætti við stuðningi við virtio-iommu paravirtualized tækið, sem gerir kleift að senda IOMMU beiðnir eins og ATTACH, DETACH, MAP og UNMAP yfir virtio flutninginn án þess að líkja eftir minnissíðutöflum.
    • Fyrir Intel örgjörva, allt frá Skylake fjölskyldunni til Coffee Lake, er notkun Intel TSX (Transactional Synchronization Extensions), sem bjóða upp á verkfæri til að bæta árangur fjölþráða forrita með því að útrýma óþarfa samstillingaraðgerðum, sjálfgefið óvirk. Viðbætur eru óvirkar vegna möguleika á Zombieload árásum sem vinna með upplýsingaleka í gegnum rásir þriðja aðila sem á sér stað meðan á notkun TAA (TSX Asynchronous Abort) vélbúnaðarins stendur.
  • Net undirkerfi
    • Samþætting inn í kjarna MPTCP (MultiPath TCP), framlenging á TCP samskiptareglum til að skipuleggja rekstur TCP tengingar með afhendingu pakka samtímis eftir nokkrum leiðum í gegnum mismunandi netviðmót sem tengjast mismunandi IP tölum. Nýja útgáfan bætir við kerfi til að stilla þínar eigin umferðarþjöppunarstefnur fyrir IPv4 og IPv6 (multipath hash policy), sem gerir það mögulegt að ákvarða út frá notendarými hvaða reitir í pökkum, þ. val á leið fyrir pakkann.
    • Stuðningur við SOCK_SEQPACKET innstungur (pöntuð og áreiðanleg sending gagnaskráa) hefur verið bætt við virtio sýndarflutninginn.
    • Möguleiki SO_REUSEPORT falsbúnaðarins hefur verið aukinn, sem gerir nokkrum hlustunarinnstungum kleift að tengjast einu tengi í einu til að taka á móti tengingum með dreifingu komandi beiðna samtímis yfir allar innstungur sem tengdar eru í gegnum SO_REUSEPORT, sem einfaldar gerð fjölþráða netþjónaforrita. . Nýja útgáfan bætir við verkfærum til að flytja stjórn yfir í aðra innstungu ef bilun verður við vinnslu beiðni frá upphaflega valinni fals (leysir vandamálið með tap á einstökum tengingum við endurræsingu þjónustu).
  • Оборудование
    • Amdgpu bílstjórinn veitir stuðning fyrir nýju AMD Radeon RX 6000 seríuna af GPU, með kóðaheitinu „Beige Goby“ (Navi 24) og „Yellow Carp“, auk bættrar stuðnings við Aldebaran GPU (gfx90a) og Van Gogh APU. Bætti við getu til að vinna samtímis með nokkrum eDP spjöldum. Fyrir APU Renoir hefur stuðningur við að vinna með dulkóðaða biðminni í myndminni (TMZ, Trusted Memory Zone) verið innleiddur. Bætti við stuðningi fyrir heittengd skjákort. Fyrir Radeon RX 6000 (Navi 2x) GPU og eldri AMD GPU, er ASPM (Active State Power Management) stuðningur sjálfgefið virkur, sem áður var aðeins virkt fyrir Navi 1x, Vega og Polaris GPU.
    • Fyrir AMD flís hefur stuðningur við sameiginlegt sýndarminni (SVM, sameiginlegt sýndarminni) verið bætt við á grundvelli HMM (Heterogeneous memory management) undirkerfisins, sem gerir kleift að nota tæki með eigin minnisstjórnunareiningum (MMU, minnisstjórnunareining), sem getur fengið aðgang að aðalminni. Sérstaklega, með því að nota HMM, geturðu skipulagt sameiginlegt vistfangarými milli GPU og CPU, þar sem GPU getur fengið aðgang að aðalminni ferlisins.
    • Bætti við upphafsstuðningi við AMD Smart Shift tækni, sem breytir örgjörva og GPU aflstillingum á fartölvum með AMD kubbasetti og skjákorti á kraftmikinn hátt til að auka afköst fyrir leiki, myndbandsklippingu og 3D flutning.
    • i915 bílstjórinn fyrir Intel skjákort inniheldur stuðning fyrir Intel Alderlake P flís.
    • Bætt við drm/hyperv rekla fyrir Hyper-V sýndarskjákort.
    • Bætti við stuðningi fyrir Raspberry Pi 400 allt-í-einn tölvuna.
    • Bætt við dell-wmi-privacy rekla til að styðja við vélbúnaðarmyndavélar- og hljóðnemarofa sem fylgja með Dell fartölvum.
    • Fyrir Lenovo fartölvur hefur WMI viðmóti verið bætt við til að breyta BIOS stillingum í gegnum sysfs /sys/class/firmware-attributes/.
    • Aukinn stuðningur fyrir tæki með USB4 tengi.
    • Bætti við stuðningi fyrir AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 og Texas Instruments TAS2505 hljóðkort og merkjamál. Bættur hljóðstuðningur á HP og ASUS fartölvum. Bætt við plástra til að draga úr töfum áður en hljóð byrjar að spila á USB tækjum.

Heimild: opennet.ru

Bæta við athugasemd