Rhyddhau cnewyllyn Linux 5.8

Ar ôl dau fis o ddatblygiad, Linus Torvalds cyflwyno rhyddhau cnewyllyn Linux 5.8. Ymhlith y newidiadau mwyaf nodedig: synhwyrydd cyflwr ras KCSAN, mecanwaith cyffredinol ar gyfer cyflwyno hysbysiadau i ofod defnyddwyr, cefnogaeth caledwedd ar gyfer amgryptio mewnol, gwell mecanweithiau diogelwch ar gyfer ARM64, cefnogaeth i brosesydd Baikal-T1 Rwsiaidd, y gallu i osod achosion procfs ar wahân. , gweithredu mecanweithiau diogelwch Cysgodol ar gyfer ARM64 Call Stack a BTI.

Daeth cnewyllyn 5.8 y mwyaf o ran nifer y newidiadau i'r holl gnewyllyn yn ystod bodolaeth gyfan y prosiect. At hynny, nid yw'r newidiadau'n gysylltiedig ag unrhyw un is-system, ond maent yn cwmpasu gwahanol rannau o'r cnewyllyn ac maent yn gysylltiedig yn bennaf ag ail-weithio a glanhau mewnol. Mae'r newidiadau mwyaf i'w gweld mewn gyrwyr. Roedd y fersiwn newydd yn cynnwys 17606 o atebion gan 2081 o ddatblygwyr, a effeithiodd ar tua 20% o'r holl ffeiliau yn y storfa cod cnewyllyn. Maint y clwt yw 65 MB (effeithiwyd ar y newidiadau ar 16180 o ffeiliau, ychwanegwyd 1043240 o linellau cod, dilëwyd 489854 o linellau). Mewn cymhariaeth, roedd gan y gangen 5.7 15033 o atebion a maint clwt o 39 MB. Mae tua 37% o'r holl newidiadau a gyflwynwyd yn 5.8 yn gysylltiedig â gyrwyr dyfais, mae tua 16% o'r newidiadau yn ymwneud â diweddaru cod sy'n benodol i bensaernïaeth caledwedd, mae 11% yn gysylltiedig â'r pentwr rhwydwaith, mae 3% yn gysylltiedig â systemau ffeiliau, a 4% yn gysylltiedig ag is-systemau cnewyllyn mewnol.

Y prif arloesiadau:

  • Rhithwiroli a Diogelwch
    • Darperir llwytho modiwlau cnewyllyn sydd ag adrannau â chod lle mae'r darnau sy'n caniatáu gweithredu ac ysgrifennu yn cael eu gosod ar yr un pryd. Gweithredwyd y newid fel rhan o brosiect mwy i gael gwared ar y cnewyllyn o ddefnyddio tudalennau cof sy'n caniatáu gweithredu ac ysgrifennu ar yr un pryd.
    • Mae bellach yn bosibl creu achosion procfs ar wahân, gan ganiatáu defnyddio pwyntiau gosod procfs lluosog, wedi'u gosod â gwahanol opsiynau, ond sy'n adlewyrchu'r un gofod enw dynodwr proses (gofod enw pid). Yn flaenorol, dim ond un cynrychioliad mewnol yr oedd pob pwynt mowntio procf yn ei adlewyrchu, ac roedd unrhyw newid i baramedrau'r mowntio yn effeithio ar yr holl bwyntiau mowntio eraill sy'n gysylltiedig â'r un gofod enw ID proses. Ymhlith y meysydd lle gallai fod galw am osod gwahanol opsiynau yw gweithredu ynysu ysgafn ar gyfer systemau gwreiddio gyda'r gallu i guddio rhai mathau o brosesau a nodau gwybodaeth mewn procfs.
    • Rhoddwyd cefnogaeth i'r mecanwaith ar gyfer platfform ARM64
      Stack Cysgod-Galw, a ddarperir gan y casglwr Clang i amddiffyn rhag trosysgrifo cyfeiriad dychwelyd swyddogaeth yn achos gorlif clustogi pentwr. Hanfod yr amddiffyniad yw cadw'r cyfeiriad dychwelyd mewn pentwr “cysgod” ar wahân ar ôl trosglwyddo rheolaeth i swyddogaeth ac adalw'r cyfeiriad hwn cyn gadael y swyddogaeth.

    • Mae cefnogaeth cyfarwyddiadau wedi'i ychwanegu ar gyfer platfform ARM64 ARMv8.5-BTI (Dangosydd Targed y Gangen) i ddiogelu gweithrediad setiau o gyfarwyddiadau na ddylid canghennog iddynt. Mae rhwystro trawsnewidiadau i adrannau mympwyol o god yn cael eu gweithredu i atal creu teclynnau mewn campau sy'n defnyddio technegau rhaglennu sy'n canolbwyntio ar ddychwelyd (ROP - Rhaglennu sy'n Canolbwyntio ar Ddychwelyd; nid yw'r ymosodwr yn ceisio gosod ei god yn y cof, ond mae'n gweithredu ar ddarnau sydd eisoes yn bodoli o gyfarwyddiadau peiriant sy'n gorffen gyda chyfarwyddyd rheoli dychwelyd, y mae cadwyn o alwadau wedi'i hadeiladu ohono i gael y swyddogaeth a ddymunir).
    • Cefnogaeth caledwedd ychwanegol ar gyfer amgryptio mewnol dyfeisiau bloc (Amgryptio Mewn-lein). Mae dyfeisiau amgryptio Inlinep fel arfer wedi'u cynnwys yn y gyriant, ond maent wedi'u lleoli'n rhesymegol rhwng cof system a disg, gan amgryptio a dadgryptio I/O yn dryloyw yn seiliedig ar allweddi cnewyllyn penodol ac algorithm amgryptio.
    • Ychwanegwyd yr opsiwn llinell orchymyn cnewyllyn "initrdmem" i'ch galluogi i nodi cyfeiriad cof corfforol yr initrd wrth osod y ddelwedd gychwynnol yn RAM.
    • Ychwanegwyd gallu newydd: CAP_PERFMON i gael mynediad i'r is-system perf a pherfformio monitro perfformiad. CAP_BPF, sy'n caniatáu rhai gweithrediadau BPF (fel llwytho rhaglenni BPF) a oedd angen hawliau CAP_SYS_ADMIN yn flaenorol (mae hawliau CAP_SYS_ADMIN bellach wedi'u rhannu'n gyfuniad o CAP_BPF, CAP_PERFMON, a CAP_NET_ADMIN).
    • Ychwanegwyd dyfais virtio-mem newydd sy'n eich galluogi i blygio poeth a phlygio cof i systemau gwesteion.
    • Wedi dwyn gweithrediadau mapio yn /dev/mem ar waith os yw gyrrwr y ddyfais yn defnyddio ardaloedd cof sy'n gorgyffwrdd.
    • Ychwanegwyd amddiffyniad bregusrwydd CROSStalk/SRBDS, sy'n eich galluogi i adfer canlyniadau rhai cyfarwyddiadau a weithredwyd ar graidd CPU arall.
  • Gwasanaethau cof a system
    • Yn y ddogfen sy'n diffinio'r rheolau ar gyfer fformatio'r cod, derbyn argymhellion ar gyfer defnyddio terminoleg gynhwysol. Ni argymhellir i ddatblygwyr ddefnyddio'r cyfuniadau 'meistr / caethwas' a 'rhestr ddu / rhestr wen', yn ogystal â'r gair 'caethwas' ar wahân. Mae'r argymhellion yn ymwneud â defnyddiau newydd yn unig o'r termau hyn. Bydd cyfeiriadau at y geiriau penodedig sydd eisoes yn bodoli yn y craidd yn parhau heb eu cyffwrdd. Mewn cod newydd, caniateir defnyddio'r termau sydd wedi'u marcio os oes angen i gefnogi'r API a'r ABI a ddatgelir yn y gofod defnyddwyr, yn ogystal ag wrth ddiweddaru'r cod i gefnogi caledwedd neu brotocolau presennol y mae eu manylebau'n gofyn am ddefnyddio termau penodol.
    • Offeryn dadfygio wedi'i gynnwys KCSAN (Cnewyllyn Concurrency Sanitizer), a gynlluniwyd ar gyfer canfod deinamig amodau rasio y tu mewn i'r craidd. Cefnogir y defnydd o KCSAN wrth adeiladu yn GCC a Clang, ac mae angen addasiadau arbennig ar amser llunio i olrhain mynediad cof (defnyddir torbwyntiau sy'n cael eu sbarduno pan fydd cof yn cael ei ddarllen neu ei addasu). Mae datblygiad KCSAN yn canolbwyntio ar atal cadarnhaol ffug, scalability, a rhwyddineb defnydd.
    • Wedi adio mecanwaith cyffredinol cyflwyno hysbysiadau o'r cnewyllyn i ofod defnyddwyr. Mae'r mecanwaith yn seiliedig ar y gyrrwr pibell safonol ac mae'n caniatáu ichi ddosbarthu hysbysiadau o'r cnewyllyn yn effeithlon dros sianeli sy'n agored yn y gofod defnyddwyr. Mae pwyntiau derbyn hysbysiadau yn bibellau sy'n cael eu hagor mewn modd arbennig ac sy'n caniatáu i negeseuon a dderbynnir o'r cnewyllyn gael eu cronni mewn byffer cylch. Mae darllen yn cael ei berfformio gan y swyddogaeth darllen () arferol. Mae perchennog y sianel yn pennu pa ffynonellau yn y cnewyllyn sydd angen eu monitro a gall ddiffinio hidlydd i anwybyddu rhai mathau o negeseuon a digwyddiadau. O'r digwyddiadau, dim ond gweithrediadau ag allweddi sy'n cael eu cefnogi ar hyn o bryd, megis ychwanegu/tynnu allweddi a newid eu priodoleddau. Bwriedir defnyddio'r digwyddiadau hyn yn GNOME.
    • Parhau i ddatblygu ymarferoldeb 'pidfd' i helpu i ymdrin â sefyllfaoedd ailddefnyddio PID (mae pidfd yn gysylltiedig â phroses benodol ac nid yw'n newid, tra gall PID fod yn gysylltiedig â phroses arall ar ôl i'r broses gyfredol sy'n gysylltiedig â'r PID hwnnw ddod i ben). Mae'r fersiwn newydd yn ychwanegu cefnogaeth ar gyfer defnyddio pidfd i atodi proses i ofodau enwau (gan ganiatáu i pidfd gael ei nodi wrth weithredu'r alwad system setns). Mae defnyddio pidfd yn eich galluogi i reoli ymlyniad proses i sawl math o ofodau enw gydag un alwad, gan leihau'n sylweddol nifer y galwadau system angenrheidiol a gweithredu ymlyniad yn y modd atomig (os yw atodiad i un o'r gofodau enw yn methu, ni fydd y lleill yn cysylltu) .
    • Ychwanegwyd galwad system newydd faccessat2(), yn wahanol i
      faccessat() dadl ychwanegol gyda baneri sy'n cydymffurfio ag argymhellion POSIX (yn flaenorol cafodd y baneri hyn eu hefelychu yn llyfrgell C, ac mae'r faccessat2 newydd yn caniatáu iddynt gael eu gweithredu yn y cnewyllyn).

    • Yn Cgroup wedi adio gosodiad cof.swap.high y gellir ei ddefnyddio i arafu tasgau sy'n cymryd gormod o le cyfnewid.
    • I'r rhyngwyneb I/O asyncronig io_uring cefnogaeth ychwanegol ar gyfer galwad system ti ().
    • Ychwanegwyd mecanwaith"iterator BPF, wedi'i gynllunio i allbynnu cynnwys strwythurau cnewyllyn i ofod defnyddwyr.
    • Darperir y gallu i ddefnyddio byffer cylch ar gyfer cyfnewid data rhwng rhaglenni BPF.
    • I mewn i'r mecanwaith padata, wedi'i gynllunio i drefnu cyflawni tasgau yn gyfochrog yn y cnewyllyn, ychwanegodd gefnogaeth ar gyfer tasgau aml-edau gyda chydbwyso llwyth.
    • Yn y mecanwaith pstore, sy'n eich galluogi i arbed gwybodaeth dadfygio am achos y ddamwain mewn mannau cof nad ydynt yn cael eu colli rhwng ailgychwyn, wedi adio backend ar gyfer arbed gwybodaeth i rwystro dyfeisiau.
    • O'r gangen gnewyllyn PREEMPT_RT symud gweithredu cloeon lleol.
    • Wedi adio API dyrannu byffer newydd (AF_XDP), gyda'r nod o symleiddio ysgrifennu gyrwyr rhwydwaith gyda chefnogaeth XDP (Llwybr Data eXpress).
    • Ar gyfer pensaernïaeth RISC-V, mae cefnogaeth ar gyfer dadfygio cydrannau cnewyllyn gan ddefnyddio KGDB wedi'i roi ar waith.
    • Cyn rhyddhau 4.8, cynyddwyd y gofynion ar gyfer y fersiwn o GCC y gellir ei ddefnyddio i adeiladu'r cnewyllyn. Yn un o'r datganiadau nesaf bwriedir codi'r bar i GCC 4.9.
  • Is-system ddisg, systemau I/O a ffeiliau
    • Yn Mapper Dyfais wedi adio triniwr dm-ebs newydd (efelychu maint bloc), y gellir ei ddefnyddio i efelychu maint bloc rhesymegol llai (er enghraifft, i efelychu sectorau 512-beit ar ddisgiau maint sector 4K).
    • Mae system ffeiliau F2FS bellach yn cefnogi cywasgu gan ddefnyddio'r algorithm LZO-RLE.
    • Mewn dm-crypt wedi adio cefnogaeth ar gyfer allweddi wedi'u hamgryptio.
    • Mae Btrfs wedi gwella'r modd yr ymdrinnir â gweithrediadau darllen yn y modd I/O uniongyrchol. Wrth osod cyflymu gwirio is-adrannau a chyfeiriaduron wedi'u dileu a adawyd heb riant.
    • Mae paramedr “nodelete” wedi'i ychwanegu at CIFS, sy'n caniatáu gwiriadau caniatâd arferol ar y gweinydd, ond yn gwahardd y cleient rhag dileu ffeiliau neu gyfeiriaduron.
    • Mae Ext4 wedi gwella'r modd yr ymdrinnir â gwallau ENOSPC wrth ddefnyddio multithreading. Mae xattr wedi ychwanegu cefnogaeth i'r gofod enw gnu.* a ddefnyddir yn GNU Hurd.
    • Ar gyfer Ext4 a XFS, mae cefnogaeth ar gyfer gweithrediadau DAX wedi'i alluogi (mynediad uniongyrchol i'r system ffeiliau gan osgoi storfa'r dudalen heb ddefnyddio lefel y ddyfais bloc) mewn perthynas â ffeiliau a chyfeiriaduron unigol.
    • Mewn galwad system statx() baner wedi'i hychwanegu STATX_ATTR_DAX, sydd, pan nodir hynny, yn adalw gwybodaeth gan ddefnyddio'r injan DAX.
    • EXFAT wedi adio cefnogaeth ar gyfer dilysu ardal cychwyn.
    • Mewn BRASTER gwella llwytho elfennau FS yn rhagweithiol. Dangosodd profi gyriant USB 2TB araf ostyngiad yn yr amser cwblhau prawf o 383 i 51 eiliad.
  • Is-system rhwydwaith
    • Yn y cod ar gyfer rheoli gweithrediad pontydd rhwydwaith wedi adio cefnogaeth protocol MRP (Protocol Dileu Swydd yn y Cyfryngau), sy'n caniatáu goddef diffygion trwy ddolennu switshis Ethernet lluosog.
    • I system rheoli traffig (Tc) wedi adio gweithred “giât” newydd, sy'n ei gwneud hi'n bosibl diffinio cyfnodau amser ar gyfer prosesu a thaflu rhai pecynnau.
    • Mae cefnogaeth ar gyfer profi'r cebl rhwydwaith cysylltiedig a hunan-ddiagnosis o ddyfeisiau rhwydwaith wedi'i ychwanegu at y cnewyllyn a'r cyfleustodau ethtool.
    • Mae cefnogaeth ar gyfer algorithm MPLS (Newid Label Multiprotocol) wedi'i ychwanegu at y pentwr IPv6 ar gyfer llwybro pecynnau gan ddefnyddio newid label multiprotocol (cefnogwyd MPLS yn flaenorol ar gyfer IPv4).
    • Cefnogaeth ychwanegol ar gyfer trosglwyddo pecynnau IKE (Internet Key Exchange) a IPSec dros TCP (RFC 8229) i osgoi blocio CDU posibl.
    • Ychwanegwyd dyfais bloc rhwydwaith rnbd, sy'n eich galluogi i drefnu mynediad o bell i ddyfais bloc gan ddefnyddio'r cludiant RDMA (InfiniBand, RoCE, iWARP) a'r protocol RTRS.
    • Yn y stac TCP wedi adio cefnogaeth ar gyfer cywasgu amrediad mewn ymatebion cydnabod dethol (SACK).
    • Ar gyfer IPv6 gweithredu Cefnogaeth TCP-LD (RFC 6069, Amhariadau Cysylltedd Hir).
  • Offer
    • Mae'r gyrrwr DRM i915 ar gyfer cardiau fideo Intel yn cynnwys cefnogaeth ar gyfer sglodion Intel Tiger Lake (GEN12) yn ddiofyn, y mae gweithredu y gallu i ddefnyddio system SAGV (System Agent Geyserville) i addasu amlder a foltedd yn ddeinamig yn dibynnu ar ddefnydd pŵer neu ofynion perfformiad.
    • Mae'r gyrrwr amdgpu wedi ychwanegu cefnogaeth ar gyfer y fformat picsel FP16 a'r gallu i weithio gyda byfferau wedi'u hamgryptio mewn cof fideo (TMZ, Trusted Memory Zone).
    • Cefnogaeth ychwanegol ar gyfer synwyryddion pŵer ar gyfer proseswyr AMD Zen a Zen2, yn ogystal â synwyryddion tymheredd ar gyfer AMD Ryzen 4000 Renoir. Darperir cefnogaeth ar gyfer adalw gwybodaeth defnydd pŵer trwy'r rhyngwyneb ar gyfer AMD Zen a Zen2 RAPL (Rhedeg Terfyn Pŵer Cyfartalog).
    • Ychwanegwyd cefnogaeth ar gyfer fformat addasydd NVIDIA i'r gyrrwr Nouveau. Ar gyfer gv100, mae'r gallu i ddefnyddio dulliau sganio interlaced wedi'i roi ar waith. Ychwanegwyd diffiniad vGPU.
    • Ychwanegwyd cefnogaeth ar gyfer GPUs Adreno A405, A640 ac A650 i'r gyrrwr MSM (Qualcomm).
    • Wedi adio fframwaith mewnol ar gyfer rheoli adnoddau DRM (Rheolwr Rendro Uniongyrchol).
    • Cefnogaeth ychwanegol ar gyfer ffonau smart Xiaomi Redmi Note 7 a Samsung Galaxy S2, yn ogystal â gliniaduron Elm / Hana Chromebook.
    • Gyrwyr ychwanegol ar gyfer paneli LCD: ASUS TM5P5 NT35596, Starry KR070PE2T, Leadtek LTK050H3146W, Visionox rm69299, Boe tv105wum-nw0.
    • Cefnogaeth ychwanegol ar gyfer byrddau a llwyfannau ARM Renesas "RZ / G1H", Realtek RTD1195, Realtek RTD1395 / RTD1619, Rockchips RK3326, AMLogic S905D, S905X3, S922XH, Olimex A20-OLinuXino-LIME-LM-50 Check Point
      , Beacon i.MX8m-Mini, Qualcomm SDM660/SDM630, Xnano X5 TV Box, Stinger96, Beaglebone-AI.

    • Cefnogaeth ychwanegol i brosesydd MIPS Loongson-2K (talfyredig Loongson64). Ar gyfer CPU Loongson 3, mae cefnogaeth ar gyfer rhithwiroli gan ddefnyddio'r hypervisor KVM wedi'i ychwanegu.
    • Wedi adio
      cefnogaeth i'r prosesydd Baikal-T1 Rwsiaidd a'r system-ar-sglodyn yn seiliedig arno BE-T1000. Mae prosesydd Baikal-T1 yn cynnwys dau graidd superscalar P5600 MIPS 32 r5 sy'n gweithredu ar 1.2 GHz. Mae'r sglodion yn cynnwys storfa L2 (1 MB), rheolydd cof DDR3-1600 ECC, 1 porthladd Ethernet 10Gb, 2 borthladd Ethernet 1Gb, rheolydd PCIe Gen.3 x4, 2 borthladd SATA 3.0, USB 2.0, GPIO, UART, SPI, I2C. Mae'r prosesydd yn darparu cefnogaeth caledwedd ar gyfer rhithwiroli, cyfarwyddiadau SIMD a chyflymydd cryptograffig caledwedd integredig sy'n cefnogi GOST 28147-89. Datblygir y sglodyn gan ddefnyddio uned graidd prosesydd MIPS32 P5600 Warrior wedi'i thrwyddedu gan Imagination Technologies.

Ar yr un pryd, Sefydliad Meddalwedd Rydd America Ladin ffurfio
opsiwn cnewyllyn hollol rhad ac am ddim 5.8 - Linux-libre 5.8-gnu, wedi'i glirio o elfennau firmware a gyrrwr sy'n cynnwys cydrannau nad ydynt yn rhydd neu adrannau cod, y mae eu cwmpas yn gyfyngedig gan y gwneuthurwr. Mae'r datganiad newydd yn analluogi llwytho blob mewn gyrwyr ar gyfer Fideo Atom ISP, MediaTek 7663 USB / 7915 PCIe, Realtek 8723DE WiFi, Renesas PCI xHCI, HabanaLabs Gaudi, Trawsnewidydd Cyfradd Sampl Asynchronous Gwell, Mwyhadur Siaradwr Integredig Maxim MAX98390, 38060 Microsemi Connector Audio Connector, ac I2C EEPROM Caethwas. Cod glanhau blob wedi'i ddiweddaru yn Adreno GPU, HabanaLabs Goya, sgrin gyffwrdd x86, vt6656 a gyrwyr ac is-systemau btbcm.

Ffynhonnell: opennet.ru

Ychwanegu sylw