Linux 5.3 kjarnaútgáfa

Eftir tveggja mánaða þróun, Linus Torvalds kynnt kjarnaútgáfu Linux 5.3. Meðal athyglisverðustu breytinganna: stuðningur við AMD Navi GPU, Zhaoxi örgjörva og Intel Speed ​​​​Select orkustjórnunartækni, hæfileikinn til að nota umwait leiðbeiningar til að bíða án þess að nota lotur,
„nýtingarklemma“ háttur sem eykur gagnvirkni fyrir ósamhverfa örgjörva, pidfd_open kerfiskallið, getu til að nota IPv4 vistföng frá 0.0.0.0/8 undirnetinu, möguleika á nftables vélbúnaðarhröðun, HDR stuðningur í DRM undirkerfinu, samþætting ACRN hypervisor.

В tilkynningu nýrri útgáfu minnti Linus alla forritara á meginreglu kjarnaþróunar - að viðhalda sömu hegðun fyrir notendarýmishluta. Breytingar á kjarnanum ættu ekki á nokkurn hátt að brjóta forrit sem eru í gangi eða leiða til afturhvarfs á notendastigi. Í þessu tilviki getur brot á hegðun valdið ekki aðeins breytingu á ABI, fjarlægingu á gamaldags kóða eða útliti villna, heldur einnig óbeinum áhrifum gagnlegra umbóta sem virka rétt. Sem lýsandi dæmi var fargað nothæft hagræðingu í Ext4 kóða, sem dregur úr fjölda drifaðganga með því að slökkva á forlestri á inode töflunni fyrir litlar I/O beiðnir.

Hagræðingin leiddi til þess að vegna minnkunar á virkni disksins byrjaði óreiðu fyrir getrandom() slembitölugjafann að safnast hægar saman og í sumum uppsetningum, við ákveðnar aðstæður, gæti orðið vart við frystingu við hleðslu þar til óreiðusafnið var fyllt. Þar sem hagræðingin er mjög gagnleg, spratt upp umræða meðal þróunaraðila þar sem lagt var til að laga vandamálið með því að slökkva á sjálfgefna lokunarham getrandom() símtalsins og bæta við valfrjálsu flaggi til að bíða eftir óreiðu, en slík breyting myndi hafa áhrif á gæði handahófskenndu talna á upphafsstigi hleðslu.

Nýja útgáfan inniheldur 15794 lagfæringar frá 1974 forriturum,
plástrastærð - 92 MB (breytingar höfðu áhrif á 13986 skrár, 258419 línur af kóða var bætt við,
599137 raðir fjarlægðar). Um 39% allra kynnt í 5.3
breytingar tengjast reklum tækja, um það bil 12% breytinga eru það
viðhorf til uppfærslu kóða sem er sértækur fyrir vélbúnaðararkitektúr, 11%
tengist netstafla, 3% skráarkerfum og 3% innri
kjarna undirkerfi.

Helstu nýjungar:

  • Minni og kerfisþjónusta
    • Áframhaldandi þróun á „pidfd“ virkni til að hjálpa til við að takast á við PID endurnotkunaraðstæður (pidfd er tengt tilteknu ferli og breytist ekki, á meðan PID getur tengst öðru ferli eftir að núverandi ferli sem tengist því PID lýkur). Það var áður bætt við kjarnann
      pidfd_send_signal() kerfiskallið og CLONE_PIDFD fánann í clone() kallinu til að fá pidfd til notkunar í idfd_send_signal(). Notkun klóna() með CLONE_PIDFD fánanum gæti valdið vandamálum hjá þjónustustjórum eða stöðvunarkerfi Android vettvangsins sem er út-af-minni. Í þessu tilviki er kall til fork() eða clone() án CLONE_PIDFD notað til að byrja.

      Kernel 5.3 kynnti kerfiskallið pidfd_open(), sem gerir þér kleift að fá athuganlegt pidfd fyrir handahófskennt núverandi ferli sem var ekki búið til með því að kalla clone() með CLONE_PIDFD fánanum. Bætti einnig við stuðningi við pidfd-könnun með því að nota poll() og epoll(), sem gerir ferlastjórnendum kleift að fylgjast með lokun handahófskenndra ferla án þess að óttast keppnisástand ef PID er úthlutað á nýtt ferli. Aðferðin til að tilkynna þegar ferli tengt pidfd hefur hætt er svipað og að tilkynna þegar undirferli þess hefur hætt;

    • Stuðningur við álagsfestingarbúnaðinn hefur verið bætt við verkefnaáætlunina (Nýtingarklemma), sem gerir þér kleift að fylgja lágmarks- eða hámarks tíðnisviðum, allt eftir verkefnum sem eru virk á örgjörvanum. Framsetta vélbúnaðurinn flýtir fyrir verkefnum sem hafa bein áhrif á gæði notendaupplifunar með því að keyra þessi verkefni að minnsta kosti á neðri hluta „umbeðinnar“ tíðni. Lág forgangsverkefni sem hafa ekki áhrif á vinnu notandans eru sett af stað með því að nota efri mörk „leyfðrar“ tíðni. Takmörk eru sett með eigindunum sched_uclamp_util_min og sched_uclamp_util_max í sched_setattr() kerfiskallinu.
    • Bætt við stuðningi við orkustjórnunartækni Intel Speed ​​​​Select, fáanlegt á völdum netþjónum með Intel Xeon örgjörvum. Þessi tækni gerir þér kleift að stilla afköst og skiptingafköst fyrir mismunandi CPU kjarna, sem gerir þér kleift að forgangsraða frammistöðu fyrir verkefni sem eru unnin á ákveðnum kjarna, sem fórnar frammistöðu á öðrum kjarna;
    • Ferlar í notendarými veitt getu til að bíða í stuttan tíma án þess að nota lykkjur með umwait leiðbeiningunum. Þessi kennsla, ásamt umonitor og tpause leiðbeiningunum, verður í boði í væntanlegum „Tremont“ flögum Intel og mun gera ráð fyrir innleiðingu tafa sem eru orkusparandi og hafa ekki áhrif á frammistöðu annarra þráða þegar Hyper Threading er notað;
    • Fyrir RISC-V arkitektúrinn hefur stuðningur við stórar minnissíður verið bætt við;
    • Kprobes rakningarbúnaðurinn hefur bætt við getu til að vísa kjarnabendingar í notendarými, sem hægt er að nota, til dæmis, til að meta innihald mannvirkja sem send eru til kerfiskalla. Möguleikinn til að setja upp athuganir á ræsingarstigi hefur einnig verið bætt við.
    • Bætti PREEMPT_RT valkostinum við stillingarskrána fyrir rauntíma notkun. Kóðanum sjálfum til að styðja rauntímaham hefur ekki enn verið bætt við kjarnann, en útlit valmöguleikans er gott merki um að langtíma Epic samþættingu Rauntíma-Preempt plástra eru að klárast;
    • Bætti við clone3() kerfiskallinu með útfærslu á stækkanlegri útgáfu af clone() viðmótinu, sem gerir kleift að tilgreina stærri fjölda fána;
    • Bætti við bpf_send_signal() meðhöndlun, sem gerir BPF forritum kleift að senda merki til handahófskenndra ferla;
    • Fyrir perf atburði í KVM hypervisor umhverfinu hefur verið bætt við nýju atburðasíukerfi, sem gerir stjórnandanum kleift að ákvarða tegundir atburða sem eru leyfðar eða ekki leyfðar fyrir eftirlit á gestakerfishliðinni;
    • Hæfni til að vinna forrit með lykkjum hefur verið bætt við eBPF umsóknarstaðfestingarkerfi ef framkvæmd lykkjunnar er takmörkuð og getur ekki leitt til þess að farið sé yfir hámarksfjölda leiðbeininga;
  • Diska undirkerfi, I/O og skráarkerfi
    • XFS skráarkerfið styður nú margþráða inode framhjáhlaup (til dæmis þegar kvóta er athugað). Nýjum ioctls BULKSTAT og INUMBERS hefur verið bætt við, sem veita aðgang að eiginleikum sem birtust í fimmtu útgáfu FS sniðsins, eins og fæðingartíma inode og getu til að stilla BULKSTAT og INUMBERS færibreytur fyrir hvern AG hóp (úthlutunarhópar);
    • Í Ext4 stuðningi bætt við tóm í möppum (ótengdar blokkir).
      Vinnsla veitt flaggið „i“ (óbreytanlegt) fyrir opnar skrár (bönnuð er að skrifa í aðstæðum ef fáninn var stilltur á þeim tíma þegar skráin var þegar opin);

    • Btrfs veitir skilgreiningu á hraðri útfærslu á crc32c á öllum arkitektúrum;
    • Í CIFS hefur kóðinn fyrir smbdirect stuðning verið fjarlægður sem tilraunaþróun. SMB3 bætti við möguleikanum á að nota dulmálsreiknirit í GCM ham. Bætti við nýjum tengimöguleika til að draga út stillingarbreytur úr ACE (Access Control Entry) færslum. Fínstillti árangur open() símtalsins;
    • Bætti möguleika við F2FS til að takmarka sorphirðu þegar keyrt er í checkpoint=slökkva stillingu. Bætti við ioctl til að fjarlægja blokkarsvið frá F2FS, sem gerir kleift að breyta stærð skiptinganna á flugi. Bætti við möguleikanum á að setja skiptiskrá í F2FS til að veita beint inn/út. Bætti við stuðningi við að festa skrá og úthluta kubbum fyrir svipaðar skrár fyrir alla notendur;
    • Bætti við stuðningi fyrir ósamstilltar aðgerðir sendmsg() og recvmsg() við viðmótið fyrir ósamstillt inntak/úttak io_uring;
    • Stuðningur við þjöppun með því að nota zstd reikniritið og getu til að staðfesta undirritaðar FS myndir hefur verið bætt við UBIFS skráarkerfið;
    • Ceph FS styður nú SELinux öryggismerki fyrir skrár;
    • Fyrir NFSv4 hefur nýr tengimöguleiki „nconnect=“ verið innleiddur, sem ákvarðar fjölda tenginga sem komið er á við netþjóninn. Umferð milli þessara tenginga verður dreift með álagsjöfnun. Að auki býr NFSv4 þjónninn nú til möppu /proc/fs/nfsd/clients með upplýsingum um núverandi viðskiptavini, þar á meðal upplýsingar um skrárnar sem þeir hafa opnað;
  • Sýndarvæðing og öryggi
    • Kjarninn inniheldur hypervisor fyrir innbyggð tæki ACRN, sem er skrifuð með það fyrir augum að vera reiðubúin fyrir rauntímaverkefni og hæfi til notkunar í verkefni sem eru mikilvæg kerfi. ACRN veitir lágmarks kostnað, tryggir litla leynd og fullnægjandi svörun þegar samskipti við búnað eru. Styður sýndarvæðingu CPU auðlinda, I/O, net undirkerfi, grafík og hljóðaðgerðir. ACRN er hægt að nota til að keyra margar einangraðar sýndarvélar í rafeindastýringareiningum, mælaborðum, upplýsingakerfum fyrir bíla, neytenda IoT tæki og aðra innbyggða tækni;
    • Í notendastillingu Linux bætt við Tímaferðastilling, sem gerir þér kleift að hægja á eða flýta tíma í sýndar-UML umhverfi til að auðvelda þér að villa tímatengdan kóða. Að auki hefur færibreytu verið bætt við
      tímaferða-byrjun, sem gerir kerfisklukkunni kleift að byrja frá tilteknu augnabliki á tímabilssniði;

    • Nýjum kjarnaskipanalínuvalkostum „init_on_alloc“ og „init_on_free“ hefur verið bætt við, þegar tilgreint er, er núllstilling á úthlutuðum og losuðum minnissvæðum virkjuð (fylling með núllum fyrir malloc og ókeypis), sem gerir ráð fyrir auknu öryggi vegna viðbótar frumstillingarkostnaðar;
    • Nýr bílstjóri bætt við virtio-iommu með útfærslu á paravirtualized 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;
    • Nýr bílstjóri bætt við virtio-pmem, sem táknar aðgang að geymslutækjum sem eru kortlögð á líkamlegt heimilisfangrými, svo sem NVDIMM;
    • Innleitt getu til að tengja dulmálslykla við notanda- eða netnafnarými (lyklar verða óaðgengilegir utan valins nafnrýmis), auk þess að vernda lykla með ACL;
    • Til dulritunar undirkerfisins bætt við stuðningur við mjög hraðvirkt hashing reiknirit sem ekki er dulmáls xxhash, hraðinn sem fer eftir minni frammistöðu;
  • Net undirkerfi
    • Virkjaði vinnslu á IPv4 vistföngum á bilinu 0.0.0.0/8, sem áður var ekki tiltækt til notkunar. Kynning á þessu undirneti mun leyfa dreifa öðrum 16 milljónum IPv4 vistföngum;
    • Í Netfilter fyrir nftables bætt við stuðningur við vélbúnaðarhröðunarkerfi fyrir pakkasíun með því að nota viðbætta rekla Flow Block API. Hægt er að setja heilar reglurtöflur með öllum keðjum á hlið netkorta. Virkjun er gerð með því að binda NFT_TABLE_F_HW fánann við töfluna. Styður einföld Layer 3 og Layer 4 lýsigögn samskiptareglur, samþykkja/hafna aðgerðum, kortlagningar eftir IP og sendanda/móttakara nettengi og samskiptategund;
    • Bætt við innbyggður stuðningur við tengingarrakningu fyrir netbrýr, sem krefst ekki notkunar á br_netfilter-hermilaginu;
    • Í nf_tables bætt við stuðningur við SYNPROXY eininguna, sem endurtekur svipaða virkni frá iptables, og hæfileikinn til að innrita reglur fyrir einstaka valkosti í IPv4 hausnum er einnig útfærður;
    • Bætti við hæfileikanum til að tengja BPF forrit við setsockopt() og getsockopt() kerfissímtöl, sem til dæmis gerir þér kleift að tengja þína eigin aðgangsstjórnun við þessi símtöl. Að auki hefur nýjum útkallspunkti (krók) verið bætt við, með því er hægt að skipuleggja símtal í BPF forritið einu sinni fyrir hvert RTT bil (fram og til baka, ping tími);
    • Fyrir IPv4 og IPv6 bætt við nýtt nexthop leiðargagnageymslukerfi sem miðar að því að auka sveigjanleika leiðartafla. Prófanir sýndu að þegar nýja kerfið var notað var sett af 743 þúsund leiðum hlaðið inn í kjarnann á aðeins 4.3 sekúndum;
    • Fyrir Bluetooth komið til framkvæmda virkni sem þarf til að styðja LE ping;
  • Оборудование
    • Bætt við stuðningur við x86-samhæfða örgjörva fyrirtækisins Zhaoxin, þróað sem afleiðing af samstarfsverkefni VIA Technologies og Shanghai sveitarfélagsins. ZX CPU fjölskyldan er byggð á x86-64 Isaiah arkitektúrnum og heldur áfram þróun tækninnar VIA Centaur;
    • DRM (Direct Rendering Manager) undirkerfið, sem og amdgpu og i915 grafíkrekla, hefur bætt við stuðningi við þáttun, vinnslu og sendingu HDR (high dynamic range) lýsigagna um HDMI tengið, sem gerir kleift að nota HDR spjöld og skjái sem geta sýna viðbótar birtusvið;
    • Amdgpu bílstjórinn hefur bætt við upphafsstuðningi fyrir AMD NAVI GPU (RX5700), sem inniheldur grunnrekla, skjásamskiptakóða (DCN2), GFX og tölvustuðning (GFX10),
      SDMA 5 (System DMA0), orkustjórnun og margmiðlunarkóðarar/afkóðarar (VCN2). amdgpu bætir einnig stuðning fyrir kort sem byggjast á Vega12 og Vega20 GPU, sem viðbótarminni og orkustjórnunarmöguleikum hefur verið bætt við;

    • Bætti við stuðningi fyrir kort sem byggjast á VegaM GPU við amdkfd ökumanninn (fyrir stakar GPUs, eins og Fiji, Tonga, Polaris);
    • Í DRM bílstjóri fyrir Intel skjákort fyrir Icelake flís komið til framkvæmda nýr fjölþátta gamma leiðréttingarhamur. Bætti við möguleikanum á að senda út í gegnum DisplayPort á YCbCr4:2:0 sniði. Nýjum fastbúnaði bætt við GuC fyrir SKL, BXT, KBL, GLK og ICL. Möguleikinn til að slökkva á skjánum í ósamstilltum ham hefur verið innleiddur. Bætt við stuðningur við að vista og endurheimta flutningssamhengið fyrir Ironlake (gen5) og gen4 (Broadwater - Cantiga) flögur, sem gerir þér kleift að endurheimta GPU ástandið úr notendarými þegar þú ferð frá einni lotuaðgerð í aðra;
    • Nouveau bílstjórinn veitir greiningu á NVIDIA Turing TU116 flísinni;
    • Möguleikar DRM/KMS rekla fyrir ARM Komeda skjáhraðla (Mali D71) hafa verið stækkaðir, stuðningur við skala, skipta/sameina lög, snúning, frestað ritun, AFBC, SMMU og litakóðunarsnið Y0L2, P010, YUV420_8/10BIT hefur verið bætt við;
    • MSM bílstjórinn bætir við stuðningi við A540 GPU Adreno röðina sem notuð er í Qualcomm örgjörvum, sem og stuðning fyrir MSM8998 DSI stjórnandi fyrir Snapdragon 835;
    • Bætt við rekla fyrir LCD spjöld Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS,
      Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 og VXT VL050-8048NT-C01;

    • Bætt við bílstjóri til að virkja afkóðun hröðunarverkfæri
      myndbönd í boði í Amlogic Meson SoC;

    • Í v3d bílstjóranum (fyrir Broadcom Video Core V GPU sem notaður er í Raspberry Pi) birtist styðja sendir tölvuskyggingar;
    • Bætt við bílstjóri fyrir SPI lyklaborð og stýrisflata sem notuð eru í nútíma gerðum af Apple MacBook og MacBookPro fartölvum;
    • Bætt við viðbótarvörn fyrir ioctl símtöl sem tengjast disklingadrifinu og ökumaðurinn sjálfur er merktur sem óviðhaldinn
      ("munaðarlaus"), sem felur í sér að prófun þess sé hætt. Ökumaðurinn er enn geymdur í kjarnanum, en ekki er hægt að tryggja rétta virkni hans. Ökumaðurinn er talinn gamaldags, þar sem erfitt er að finna vinnubúnað til að prófa hann - allir núverandi ytri drif nota að jafnaði USB tengi.

    • Bætt við cpufreq bílstjóri fyrir Raspberry Pi borð, sem gerir þér kleift að stjórna breytingum á tíðni örgjörva á kraftmikinn hátt;
    • Bætti við stuðningi við nýjan ARM SoC Mediatek mt8183 (4x Cortex-A73 + 4x Cortex-A53), TI J721E (2x Cortex-A72 + 3x Cortex-R5F + 3 DSP + MMA) og Amlogic G12B (4x Cortex-A73 + 2x A53), svo og borð:
      • Purism Librem5,
      • Aspeed BMC,
      • Microsoft Olympus BMC,
      • Kontron SMARC,
      • Novtech Meerkat96 (i.MX7),
      • ST Micro Avenger96,
      • Google Cheza (Qualcomm SDM845),
      • Qualcomm Dragonboard 845c (Qualcomm SDM845),
      • Hugsun X99 sjónvarpskassi (Rockchip RK3399),
      • Khadas Edge/Edge-V/Captain (Rockchip RK3399),
      • HiHope RZ/G2M,
      • NXP LS1021A-TSN.

Á sama tíma, Latin American Free Software Foundation myndast
вариант alveg ókeypis kjarna 5.3 - Linux-frítt 5.3-gnu, hreinsaður af vélbúnaðar- og ökumannseiningum sem innihalda ófrjálsa íhluti eða kóðahluta, en umfang þeirra er takmarkað af framleiðanda. Í nýju útgáfunni er slökkt á blobhleðslu í qcom, hdcp drm, allegro-dvt og meson-vdec rekla.
Uppfærður blob-hreinsunarkóði í reklum og undirkerfum amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, hljóðrekla fyrir skylake, sem og í örkóðaskjölunum.

Heimild: opennet.ru

Bæta við athugasemd