Linux 5.8 kjarnaútgáfa

Eftir tveggja mánaða þróun, Linus Torvalds kynnt kjarnaútgáfu Linux 5.8. Meðal athyglisverðustu breytinganna: KCSAN kappakstursskynjari, alhliða kerfi til að senda tilkynningar til notendarýmis, vélbúnaðarstuðningur fyrir innbyggða dulkóðun, aukið öryggiskerfi fyrir ARM64, stuðningur við rússneska Baikal-T1 örgjörvann, hæfileikinn til að tengja procfs tilvik sérstaklega upp. , útfærsla á Shadow öryggisbúnaði fyrir ARM64 Call Stack og BTI.

Kernel 5.8 varð sá stærsti hvað varðar fjölda breytinga á öllum kjarna á meðan verkefnið stóð yfir. Þar að auki eru breytingarnar ekki tengdar neinu einu undirkerfi, heldur ná yfir mismunandi hluta kjarnans og eru aðallega tengdar innri endurvinnslu og hreinsun. Mestu breytingarnar sjást hjá ökumönnum. Nýja útgáfan innihélt 17606 lagfæringar frá 2081 þróunaraðila, sem hafði áhrif á um það bil 20% allra skráa í kjarnakóðageymslunni. Plástrastærðin er 65 MB (breytingarnar höfðu áhrif á 16180 skrár, 1043240 línum af kóða var bætt við, 489854 línum var eytt). Til samanburðar var 5.7 útibúið með 15033 lagfæringar og plástrastærð 39 MB. Um 37% allra breytinga sem kynntar eru í 5.8 tengjast tækjum, um það bil 16% breytinga tengjast uppfærslu kóða sem er sértækur fyrir vélbúnaðararkitektúr, 11% tengjast netstafla, 3% tengjast skráarkerfum og 4% tengjast innri kjarna undirkerfum.

Helstu nýjungar:

  • Sýndarvæðing og öryggi
    • Boðið er upp á hleðslu á kjarnaeiningum sem hafa hluta með kóða þar sem bitarnir sem leyfa framkvæmd og ritun eru stilltir samtímis. Breytingin var innleidd sem hluti af stærra verkefni til að losa kjarnann við notkun minnissíður sem leyfa samtímis framkvæmd og ritun.
    • Það er nú hægt að búa til aðskilin procfs tilvik, sem gerir kleift að nota marga procfs tengipunkta, festa með mismunandi valkostum, en endurspegla sama ferli auðkenni nafnrýmis (pid nafnrými). Áður endurspegluðu allir procfs tengipunktar aðeins eina innri framsetningu og allar breytingar á festingarbreytum höfðu áhrif á alla aðra festingarpunkta sem tengdust sama ferli ID nafnrými. Meðal svæða þar sem uppsetning með mismunandi valkostum getur verið eftirsótt er innleiðing á léttri einangrun fyrir innbyggð kerfi með getu til að fela ákveðnar gerðir af ferlum og upplýsingahnútum í procfs.
    • Stuðningur við vélbúnaðinn hefur verið útfærður fyrir ARM64 pallinn
      Shadow-Call Stack, útvegað af Clang þýðandanum til að vernda gegn því að skrifa yfir aftur heimilisfang falls ef stafla biðminni flæðir yfir. Kjarninn í vörninni er að vista heimilisfangið í sérstökum „skugga“ stafla eftir að stjórn hefur verið flutt yfir á aðgerð og endurheimt þetta heimilisfang áður en aðgerðinni er hætt.

    • Kennslustuðningi hefur verið bætt við fyrir ARM64 pallinn ARMv8.5-BTI (Branch Target Indicator) til að vernda framkvæmd setts leiðbeininga sem ekki ætti að greina frá. Útilokun á umskiptum yfir í handahófskennda hluta kóða er útfærð til að koma í veg fyrir að græjur séu búnar til í hetjudáð sem notar skilamiðaða forritunartækni (ROP - Return-Oriented Programming; árásarmaðurinn reynir ekki að setja kóðann sinn í minni, heldur starfar á verkum sem þegar eru til. af vélaleiðbeiningum sem endar með leiðbeiningum um bakstýringu, þaðan sem hringkeðja er byggð upp til að fá æskilega virkni).
    • Bætt við vélbúnaðarstuðningi fyrir innbyggða dulkóðun blokkartækja (Innbyggð dulkóðun). Inlinep dulkóðunartæki eru venjulega innbyggð í drifið, en eru rökrétt staðsett á milli kerfisminni og disks, gagnsæ dulkóða og afkóða I/O byggt á kjarna-tilgreindum lyklum og dulkóðunaralgrími.
    • Bætti við "initrdmem" kjarna skipanalínuvalkostinum til að leyfa þér að tilgreina líkamlegt minnisfang initrd þegar upphafsræsimyndin er sett í vinnsluminni.
    • Bætt við nýjum möguleika: CAP_PERFMON til að fá aðgang að perf undirkerfinu og framkvæma frammistöðueftirlit. CAP_BPF, sem leyfir ákveðnar BPF aðgerðir (svo sem að hlaða BPF forritum) sem áður kröfðust CAP_SYS_ADMIN réttinda (CAP_SYS_ADMIN réttindi eru nú skipt í blöndu af CAP_BPF, CAP_PERFMON og CAP_NET_ADMIN).
    • Bætt við nýtt virtio-mem tæki sem gerir þér kleift að tengja og heita minni í gestakerfi.
    • Innleitt innköllun á kortlagningaraðgerðum í /dev/mem ef tækjastjórinn notar skarast minnissvæði.
    • Bætt við varnarleysisvörn CROSSTalk/SRBDS, sem gerir þér kleift að endurheimta niðurstöður ákveðinna leiðbeininga sem framkvæmdar eru á öðrum CPU kjarna.
  • Minni og kerfisþjónusta
    • Í skjalinu sem skilgreinir reglurnar um að forsníða kóðann, samþykkt ráðleggingar um notkun hugtaka fyrir alla. Ekki er mælt með því að hönnuðir noti samsetningarnar 'meistari / þræll' og 'svartur listi / hvítlisti', sem og orðið 'þræll' sérstaklega. Tilmælin varða aðeins nýja notkun þessara skilmála. Minningar á tilgreind orð sem þegar eru til í kjarnanum verða ósnert. Í nýjum kóða er notkun merktu skilmálanna leyfð ef þörf krefur til að styðja við API og ABI sem eru afhjúpuð í notendarými, sem og þegar kóðann er uppfærður til að styðja núverandi vélbúnað eða samskiptareglur þar sem forskriftir krefjast notkunar ákveðinna skilmála.
    • Villuleitartæki fylgir KCSAN (Kernel Concurrency Sanitizer), hannað fyrir kraftmikla uppgötvun keppnisaðstæður inni í kjarnanum. Notkun KCSAN er studd þegar byggt er inn í GCC og Clang, og krefst sérstakra breytinga á samsetningartíma til að fylgjast með minnisaðgangi (notaðir eru brotpunktar sem koma af stað þegar minni er lesið eða breytt). Áherslan í þróun KCSAN var á forvarnir gegn fölskum jákvæðum, sveigjanleika og auðveldri notkun.
    • Bætt við alhliða vélbúnaður skila tilkynningum frá kjarnanum til notendarýmis. Vélbúnaðurinn er byggður á venjulegu pípudriflinum og gerir þér kleift að dreifa tilkynningum frá kjarnanum á skilvirkan hátt yfir rásir sem eru opnar í notendarými. Tilkynningamóttökupunktar eru rör sem eru opnuð í sérstökum ham og gera kleift að safna skilaboðum sem berast frá kjarnanum í hringjabuff. Lestur fer fram með venjulegu read() falli. Rásaeigandinn ákvarðar hvaða heimildir í kjarnanum þarf að fylgjast með og getur skilgreint síu til að hunsa ákveðnar tegundir skilaboða og atburða. Af viðburðum eru aðeins aðgerðir með lyklum studdar eins og er, eins og að bæta við/fjarlægja lykla og breyta eiginleikum þeirra. Áætlað er að þessir atburðir verði notaðir í GNOME.
    • Áframhaldandi þróun á 'pidfd' virkninni til að hjálpa til við að takast á við PID endurnotkunaraðstæður (pidfd er tengt tilteknu ferli og breytist ekki, en PID getur tengst öðru ferli eftir að núverandi ferli sem tengist því PID lýkur). Nýja útgáfan bætir við stuðningi við að nota pidfd til að tengja ferli við nafnrými (sem gerir kleift að tilgreina pidfd þegar setns kerfiskallið er keyrt). Með því að nota pidfd geturðu stjórnað viðhengi ferlis við nokkrar gerðir nafnrýma með einu símtali, fækkað verulega fjölda nauðsynlegra kerfissímtala og útfært viðhengi í atómham (ef viðhengi við eitt nafnasvæðisins mistekst, munu hinir ekki tengjast) .
    • Bætti við nýju kerfiskalli faccessat2(), öðruvísi en
      faccessat() viðbótarrök með fánum sem eru í samræmi við POSIX ráðleggingar (áður voru þessir fánar líkt eftir í C ​​bókasafninu og nýja faccessat2 gerir kleift að útfæra þá í kjarnanum).

    • Í Cgroup bætt við memory.swap.high stilling sem hægt er að nota til að hægja á verkefnum sem taka of mikið skiptipláss.
    • Að ósamstilltu I/O tengi io_úring bætti við stuðningi við tee() kerfiskall.
    • Bætt við vélbúnaði "BPF endurtekning, hannað til að gefa út innihald kjarnamannvirkja í notendarými.
    • Veitt getu til að nota hringjabuff fyrir gagnaskipti á milli BPF forrita.
    • Inn í vélbúnaðinn padata, hannað til að skipuleggja samhliða framkvæmd verkefna í kjarnanum, bætti við stuðningi við fjölþráða verkefni með álagsjafnvægi.
    • Í pstore vélbúnaðinum, sem gerir þér kleift að vista villuleitarupplýsingar um orsök hrunsins á minnissvæðum sem glatast ekki á milli endurræsingar, bætt við bakendi til að vista upplýsingar til að loka á tæki.
    • Frá PREEMPT_RT kjarnagreininni flutti framkvæmd staðbundinna læsinga.
    • Bætt við nýtt biðminniúthlutunar API (AF_XDP), sem miðar að því að einfalda ritun netrekla með XDP (eXpress Data Path) stuðningi.
    • Fyrir RISC-V arkitektúrinn hefur stuðningur við villuleit í kjarnahlutum með KGDB verið innleiddur.
    • Fyrir útgáfu 4.8 hafa kröfurnar fyrir útgáfu GCC sem hægt er að nota til að byggja upp kjarnann verið auknar. Í einni af næstu útgáfum er fyrirhugað að hækka griðina í GCC 4.9.
  • Diska undirkerfi, I/O og skráarkerfi
    • Í Device Mapper bætt við nýr dm-ebs (herma eftir blokkastærð) meðhöndlun, sem hægt er að nota til að líkja eftir minni rökrænni blokkastærð (til dæmis til að líkja eftir 512 bæta geirum á 4K geirastærðar diskum).
    • F2FS skráarkerfið styður nú þjöppun með því að nota LZO-RLE reikniritið.
    • Í dm-crypt bætt við stuðningur við dulkóðaða lykla.
    • Btrfs hefur bætt meðhöndlun á lesaðgerðum í beinni I/O ham. Við uppsetningu flýtt athugaðu eydda undirkafla og möppur sem eru skildar eftir án foreldris.
    • „nodelete“ færibreytu hefur verið bætt við CIFS, sem leyfir eðlilega heimildaskoðun á þjóninum, en bannar viðskiptavininum að eyða skrám eða möppum.
    • Ext4 hefur bætt villumeðferð ENOSPC þegar fjölþráður er notaður. xattr hefur bætt við stuðningi við gnu.* nafnrýmið sem notað er í GNU Hurd.
    • Fyrir Ext4 og XFS er stuðningur við DAX aðgerðir virkur (beinn aðgangur að skráarkerfinu, framhjá skyndiminni síðunnar án þess að nota blokkunarstigið) í tengslum við einstakar skrár og möppur.
    • Í kerfiskalli statx() fána bætt við STATX_ATTR_DAX, sem þegar tilgreint er, sækir upplýsingar með DAX vélinni.
    • EXFAT bætt við stuðningur við staðfestingu á ræsisvæði.
    • Í FAT bætt fyrirbyggjandi hleðslu á FS þáttum. Að prófa hægan 2TB USB drif sýndi minnkun á próflokunartíma úr 383 í 51 sekúndu.
  • Net undirkerfi
    • Í kóðanum til að stjórna rekstri netbrúa bætt við stuðningur við samskiptareglur MRP (Media Redundancy Protocol), sem gerir ráð fyrir bilunarþoli með lykkju á mörgum Ethernet rofum.
    • Til umferðarstjórnunarkerfis (Tc) bætt við ný „hlið“ aðgerð, sem gerir það mögulegt að skilgreina tímabil til að vinna úr og fleygja ákveðnum pakka.
    • Stuðningur við að prófa tengda netsnúruna og sjálfsgreiningu nettækja hefur verið bætt við kjarnann og ethool tólið.
    • Stuðningur við MPLS (Multiprotocol Label Switching) reiknirit hefur verið bætt við IPv6 stafla til að beina pökkum með því að nota fjölsamskiptamerkisskipti (MPLS var áður stutt fyrir IPv4).
    • Bætti við stuðningi við að senda IKE (Internet Key Exchange) og IPSec pakka yfir TCP (RFC 8229) til að komast framhjá mögulegri UDP-blokkun.
    • Bætt við netblokkunartæki rnbd, sem gerir þér kleift að skipuleggja fjaraðgang að blokkartæki með því að nota RDMA flutning (InfiniBand, RoCE, iWARP) og RTRS samskiptareglur.
    • Í TCP stafla bætt við stuðningur við sviðsþjöppun í sértækri viðurkenningu (SACK) svörum.
    • Fyrir IPv6 komið til framkvæmda TCP-LD stuðningur (RFC 6069, Langar truflanir á tengingum).
  • Оборудование
    • i915 DRM bílstjórinn fyrir Intel skjákort inniheldur sjálfgefið stuðning fyrir Intel Tiger Lake (GEN12) flís, sem komið til framkvæmda getu til að nota SAGV (System Agent Geyserville) kerfið til að stilla tíðni og spennu á virkan hátt eftir orkunotkun eða afkastakröfum.
    • Amdgpu bílstjórinn hefur bætt við stuðningi við FP16 pixlasniðið og getu til að vinna með dulkóðuðum biðminni í myndminni (TMZ, Trusted Memory Zone).
    • Bætti við stuðningi við aflskynjara fyrir AMD Zen og Zen2 örgjörva, sem og hitaskynjara fyrir AMD Ryzen 4000 Renoir. Stuðningur við að sækja upplýsingar um orkunotkun í gegnum viðmótið er veittur fyrir AMD Zen og Zen2 RAPL (Running Average Limit).
    • Bætti við stuðningi fyrir NVIDIA breytisniðið við Nouveau bílstjórann. Fyrir gv100 hefur möguleikinn á að nota fléttaðar skannastillingar verið innleiddar. Bætt við vGPU skilgreiningu.
    • Bætti stuðningi við Adreno A405, A640 og A650 GPU við MSM (Qualcomm) bílstjórann.
    • Bætt við innri ramma fyrir stjórnun DRM (Direct Rendering Manager) auðlinda.
    • Bætti við stuðningi fyrir Xiaomi Redmi Note 7 og Samsung Galaxy S2 snjallsíma, sem og Elm/Hana Chromebook fartölvur.
    • Bætt við rekla fyrir LCD spjöld: ASUS TM5P5 NT35596, Starry KR070PE2T, Leadtek LTK050H3146W, Visionox rm69299, Boe tv105wum-nw0.
    • Bætti við stuðningi við ARM borð og palla Renesas "RZ/G1H", Realtek RTD1195, Realtek RTD1395/RTD1619, Rockchips RK3326, AMLogic S905D, S905X3, S922XH, Olimex A20-OLinuXino-LIME-e, Check Point
      , Beacon i.MX8m-Mini, Qualcomm SDM660/SDM630, Xnano X5 TV Box, Stinger96, Beaglebone-AI.

    • Bætt við stuðningi við MIPS örgjörva Loongson-2K (skammstafað Loongson64). Fyrir CPU Loongson 3 hefur stuðningi við sýndarvæðingu með því að nota KVM hypervisor verið bætt við.
    • Bætt við
      stuðningur við rússneska Baikal-T1 örgjörvann og kerfið á flís sem byggir á honum BE-T1000. Baikal-T1 örgjörvinn inniheldur tvo P5600 MIPS 32 r5 ofurskala kjarna sem starfa á 1.2 GHz. Kubburinn inniheldur L2 skyndiminni (1 MB), DDR3-1600 ECC minnisstýringu, 1 10Gb Ethernet tengi, 2 1Gb Ethernet tengi, PCIe Gen.3 x4 stjórnandi, 2 SATA 3.0 tengi, USB 2.0, GPIO, UART, SPI, I2C. Örgjörvinn veitir vélbúnaðarstuðning fyrir sýndarvæðingu, SIMD leiðbeiningar og samþættan dulritunarhraðal fyrir vélbúnað sem styður GOST 28147-89. Kubburinn er þróaður með því að nota MIPS32 P5600 Warrior örgjörva kjarnaeiningu með leyfi frá Imagination Technologies.

Á sama tíma, Latin American Free Software Foundation myndast
вариант alveg ókeypis kjarna 5.8 - Linux-frítt 5.8-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ýja útgáfan slekkur á blobhleðslu í rekla fyrir Atom ISP Video, MediaTek 7663 USB/7915 PCIe, Realtek 8723DE WiFi, Renesas PCI xHCI, HabanaLabs Gaudi, Enhanced Asynchronous Sample Rate Converter, Maxim Integrated MAX98390 Speaker ZL38060 Home Processor, Microsemi Connected Home Processor. og I2C EEPROM þræll. Uppfærður blob-hreinsunarkóði í Adreno GPU, HabanaLabs Goya, x86 snertiskjá, vt6656 og btbcm rekla og undirkerfi.

Heimild: opennet.ru

Bæta við athugasemd