Linux kjarna 5.14

Linux kjarna 5.14

Eftir tveggja mánaða þróun, Linus Torvalds kynnt kjarnaútgáfu Linux 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:

  • disk undirkerfi, inntak/úttak og skráarkerfi:
    • fyrir cgroup komið til framkvæmda nýr I/O forgangsstýringur - 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 komið til framkvæmda ný ioctl skipun EXT4_IOC_CHECKPOINT, sem þvingar allar biðfærslur úr logginum og tengdum biðmunum yfir á diskinn og skrifar einnig yfir svæðið sem innskráningargeymslan notar. Breytingin var unnin sem hluti af átaksverkefni til að koma í veg fyrir upplýsingaleka úr skráarkerfum;
    • í Btrfs kynnt Hagræðing afkasta: Með því að koma í veg fyrir óþarfa skráningu á útvíkkuðum eiginleikum við framkvæmd fsync, jókst árangur ákafur aðgerða með útvíkkuðum eiginleikum 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 endurunnin útfærsla á biðminni skyndiminni, sem er flutt yfir á úthlutun minnisblaða í lotuham. Bætt skyndiminni skilvirkni;
    • F2FS bætti við möguleika til að vinna í skrifvarandi ham og útfærði þjappað 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 með grímu hefur verið lagt til nýjan mount valkost nocompress;
    • unnið hefur verið í exFAT reklanum til að bæta samhæfni við geymslu sumra stafrænna myndavéla;
    • bætt við kerfiskalli quotactl_fd(), 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;
    • Gamlir reklar fyrir blokkartæki með IDE viðmótinu hafa verið fjarlægðir úr kjarnanum; þeir hafa lengi verið skipt út fyrir libata undirkerfið. Stuðningur við gömul tæki hefur haldist að fullu, breytingarnar varða aðeins möguleikann á að nota gamla rekla, við notkun sem drif voru kölluð /dev/hd*, en ekki /dev/sd*;
    • „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:
    • nýr tímasetningarhamur hefur verið innleiddur í verkefnaáætluninni SCHED_CORE, sem gerir þér kleift að stjórna hvaða ferli geta keyrt 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 fyrir sumar Spectre árásir með því að koma í veg fyrir að áreiðanleg og óáreiðanleg verkefni gangi á sama SMT (Hyper Threading) þræði ;
    • fyrir cgroup vélbúnaðinn 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æsingar“) sem eiga sér stað þegar aðgangur er að ósamræmdum gögnum í minni vegna þeirrar staðreyndar 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ínubreytunni „split_lock_detect=ratelimit:N“, sem gerir þér kleift að skilgreina kerfistakmörk á hraða læsingaraðgerða á sekúndu, eftir að farið er yfir það ferli sem varð 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 má úthluta hverjum cgroup, hefur getu til að skilgreina takmörk sem eru takmörkuð af tiltekinni aðgerðalengd, sem gerir betri stjórn á leyndnæmu á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 100ms af CPU tíma á 50ms fresti;
    • bætt við upphafleg innviði til að búa til BPF forritahleðslutæki, sem mun enn frekar leyfa niðurhal á aðeins BPF forritum sem eru undirrituð með áreiðanlegum 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úr, stuðning fyrir stórar minnissíður (Transparent Huge-Pages) og getu til að nota KFENCE til að bera kennsl á villur þegar unnið er með minni;
    • inn í madvise() kerfiskallið, sem veitir leið til að hámarka stjórnun vinnsluminni, bætt við MADV_POPULATE_READ og MADV_POPULATE_WRITE fánar til að búa til „síðuvillu“ á öllum minnissíðum sem eru kortlagðar fyrir les- eða skrifað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, þökk sé fyrirbyggjandi framkvæmd „síðuvillu“ meðhöndlunar fyrir allar óúthlutaðar síður í einu, án þess að bíða eftir raunverulegum aðgangi að þeim;
    • í einingaprófunarkerfi kunit bætt við stuðningur við að keyra próf í QEMU umhverfinu;
    • ný merki bætt við: "osnoði" til að fylgjast með töfum forrita sem orsakast af meðhöndlun truflana, og " timerlat " til að birta nákvæmar upplýsingar um tafir þegar vaknað er af tímamælismerki;
  • sýndarvæðing og öryggi:
    • bætt við kerfiskall memfd_secret(), sem gerir þér kleift að búa til einkaminnisvæði í einangruðu heimilisfangarými, aðeins sýnilegt eigandaferlinu, endurspeglast ekki í öðrum ferlum og ekki beint aðgengilegt kjarnanum;
    • í seccomp kerfiskallasíunarkerfinu, þegar læsingarmeðhöndlarar eru færðir inn í notendarými, er hægt að nota eina atómaðgerð til að búa til skráarlýsingu fyrir einangrað verkefni og skila því þegar unnið er úr kerfiskalli. Fyrirhuguð aðgerð leysir vandamálið með truflun á stjórnanda í notendarými þegar merki berst;
    • bætt við nýr vélbúnaður að stjórna auðlindatakmörkun í notendanafnarýminu, sem bindur einstaka rlimitteljara við notanda í „notandanafnarýminu“. Breytingin leysir vandamálið við notkun algengra auðlindateljara þ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;
    • Auðkenning bendils sem ARM64 pallurinn býður upp á er nú hægt að stilla 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ð því að nota stafrænar undirskriftir sem eru geymdar í ónotuðum efri bitum bendillsins sjálfs;
    • í notendastillingu Linux bætt við stuðningur við notkun ökumanna fyrir PCI tæki með sýndar PCI strætó, útfærð af PCI-over-virtio ökumanninum;
    • fyrir x86 kerfi, bætti við stuðningi við para-sýndar virtio-iommu tækið, sem gerir þér 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, frá Skylake fjölskyldunni til Coffee Lake, er sjálfgefið óvirkt fyrir notkun Intel TSX (Transactional Synchronization Extensions), sem bjóða upp á verkfæri til að bæta afköst fjölþráða forrita með því að útrýma óþarfa samstillingaraðgerðum. Viðbætur eru óvirkar vegna möguleika á árásum Zombieload, meðhöndla leka upplýsinga í gegnum rásir þriðja aðila sem á sér stað við notkun kerfisins fyrir ósamstillta truflun á aðgerðum (TAA, TSX ósamstilltur hætta);
  • net undirkerfi:
    • áframhaldandi samþætting í kjarna MPTCP (MultiPath TCP), framlengingu á 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ýju tölublaði bætt við kerfi til að stilla þína eigin umferðarhassstefnu fyrir IPv4 og IPv6 (multipath hash policy), sem gerir það mögulegt úr notendarýminu að ákvarða hvaða reitir í pökkum, þ. fyrir pakkann;
    • falsstuðningur hefur verið bætt við sýndarflutninga virtio SOCK_SEQPACKET (regluleg og áreiðanleg sending gagnaskráa);
    • 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 beiðna sem berast samtímis yfir allar innstungur sem tengdar eru í gegnum SO_REUSEPORT, sem einfaldar gerð fjölþráða netþjónaforrita. . Í nýju útgáfunni bætt við aðferð til að flytja stjórn yfir í aðra innstungu ef bilun er þegar unnið er úr beiðni frá upphaflega valinni innstungu (leysir vandamálið með tap á einstökum tengingum við endurræsingu þjónustu);
  • búnaður:
    • í amdgpu bílstjóri komið til framkvæmda stuðningur við 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 stuðningur við ASPM (Active State Power Management) orkusparnaðarkerfi virkt sjálfgefið, 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. Þar á meðal 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ætt við upphaflegum tæknistuðningi AMD Smart Shift, sem breytir kraftmiklum orkunotkunarbreytum örgjörvans og GPU á fartölvum með flís og AMD skjákorti til að auka afköst í leikjum, myndvinnslu og 3D flutningi;
    • í i915 bílstjóri fyrir Intel skjákort innifalið stuðningur við Intel Alderlake P flís;
    • bætt við drm/hyperv rekla fyrir Hyper-V sýndarskjákortið;
    • bætt við simpledrm grafíkrekla sem notar EFI-GOP eða VESA framebuffer sem UEFI vélbúnaðinn eða BIOS gefur til úttaks. Megintilgangur ökumanns er að veita myndræna úttaksmöguleika á fyrstu stigum ræsingar, áður en hægt er að nota fullan DRM rekla. Einnig er hægt að nota ökumanninn sem bráðabirgðalausn fyrir búnað sem enn hefur ekki innfædda DRM-rekla;
    • bætt við allt-í-einn tölvustuðningur Raspberry Pi 400;
    • Bætt við dell-wmi-privacy rekla til að styðja við vélbúnaðarrofa myndavélar og hljóðnema sem fylgja með Dell fartölvum;
    • fyrir Lenovo fartölvur bætt við WMI tengi til að breyta BIOS breytum í gegnum sysfs /sys/class/firmware-attributes/;
    • útvíkkað stuðningur við tæki með USB4 tengi;
    • bætt við stuðningur fyrir hljóðkort og merkjamál AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 og Texas Instruments TAS2505. 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 á tækjum með USB tengi.

Heimild – opennet.ru.

Heimild: linux.org.ru