Rhyddhau cnewyllyn Linux 5.1

Ar ôl dau fis o ddatblygiad, Linus Torvalds cyflwyno rhyddhau cnewyllyn Linux 5.1. Ymhlith y newidiadau mwyaf nodedig: rhyngwyneb newydd ar gyfer I/O io_uring asyncronig, y gallu i ddefnyddio NVDIMM fel RAM, cefnogaeth ar gyfer cof rhithwir a rennir yn Nouveau, cefnogaeth ar gyfer monitro graddadwy o systemau ffeiliau mawr iawn trwy fanotify, y gallu i ffurfweddu cywasgu Zstd lefelau yn Btrfs, triniwr cpuidle TEO newydd, gweithredu galwadau system i ddatrys problem 2038, y gallu i gychwyn o ddyfeisiau mapiwr dyfais heb initramfs, modiwl SafeSetID LSM, cefnogaeth ar gyfer clytiau byw cyfun.

Y prif arloesiadau:

  • Is-system ddisg, systemau I/O a ffeiliau
    • Wedi gweithredu rhyngwyneb newydd ar gyfer I/O asyncronig - io_uring, sy'n nodedig am ei gefnogaeth i arolygon barn I/O a'r gallu i weithio gyda byffro neu hebddo. Gadewch inni gofio nad oedd y mecanwaith I/O asyncronaidd a gynigiwyd yn flaenorol “aio” yn cefnogi I/O wedi'i glustogi, dim ond yn y modd O_DIRECT y gallai weithredu (heb byffro a osgoi'r storfa), wedi cael problemau cloi oherwydd aros am argaeledd metadata, a arddangos costau gorbenion mawr oherwydd copïo data yn y cof.

      O fewn yr API
      Ceisiodd datblygwyr io_uring ddileu diffygion yr hen ryngwyneb aio. Gan cynhyrchiant io_uring yn agos iawn i SPDK ac mae gryn dipyn ar y blaen i libaio wrth weithio gyda phleidleisio wedi'i alluogi. Mae llyfrgell wedi'i pharatoi ar gyfer defnyddio io_uring mewn rhaglenni terfynol sy'n rhedeg yn y gofod defnyddiwr lesu, sy'n darparu fframwaith lefel uchel dros y rhyngwyneb cnewyllyn;

    • Yn y mecanwaith olrhain digwyddiad yn y FS fanotify() wedi adio cefnogaeth ar gyfer olrhain superblock a sefyllfaoedd newid strwythur dirion (digwyddiadau o greu, dileu a symud cyfeiriaduron). Mae'r nodweddion a gyflwynir yn helpu i ddatrys y problemau scalability sy'n codi wrth greu olrhain newid ailadroddus mewn systemau ffeiliau mawr iawn gan ddefnyddio'r mecanwaith inotify (yn flaenorol dim ond trwy inotify y gellid olrhain newidiadau uniongyrchol, ond
      perfformiad mewn amodau olrhain cylchol o gyfeiriaduron nythu mawr yn gadael llawer i'w ddymuno). Nawr gellir monitro o'r fath yn effeithiol trwy fanotify;

    • Ar system ffeiliau Btrfs wedi adio y gallu i addasu'r lefel cywasgu ar gyfer yr algorithm zstd, y gellir ei ystyried yn gyfaddawd gorau posibl rhwng y lz4 cyflym ond aneffeithiol a'r cywasgu araf ond da xz. Trwy gyfatebiaeth â sut yr oedd yn bosibl gosod y lefel cywasgu wrth ddefnyddio zlib yn flaenorol, mae cefnogaeth ar gyfer yr opsiwn mowntio “-o compress = zstd: level” wedi'i ychwanegu ar gyfer zstd. Yn ystod y profion, roedd y lefel gyntaf isaf yn darparu cywasgu data 2.658 gwaith gyda chyflymder cywasgu o 438.47 MB/s, cyflymder datgywasgu o 910.51 MB/s a defnydd cof o 780 MB, a'r lefel uchaf 15 wedi'i darparu 3.126 gwaith, ond gyda chywasgiad cyflymder o 37.30 MB/s dadbacio 878.84 MB/s a defnydd cof 2547 MB;
    • Wedi adio y gallu i gychwyn o system ffeiliau sydd wedi'i lleoli ar y ddyfais mapiwr dyfais, heb ddefnyddio initramfs. Gan ddechrau gyda'r rhyddhau cnewyllyn cyfredol, gellir defnyddio dyfeisiau mapiwr dyfais yn uniongyrchol yn ystod y broses gychwyn, er enghraifft, fel rhaniad gyda'r system ffeiliau gwraidd. Mae'r rhaniad wedi'i ffurfweddu gan ddefnyddio'r paramedr cychwyn “dm-mod.create”. Mae modiwlau mapiwr dyfeisiau y caniateir eu llwytho yn cynnwys: “crypt”, “oedi”, “llinol”, “ciplun-tarddiad” a “verity”;
    • Mae'r faner F2FS_NOCOW_FL wedi'i hychwanegu at y system ffeiliau F2FS sy'n cyfeirio at yriannau Flash, sy'n eich galluogi i analluogi modd copi-ar-ysgrifennu ar gyfer ffeil benodol;
    • System ffeil wedi'i thynnu o'r cnewyllyn Exofs, sy'n amrywiad o ext2, wedi'i addasu ar gyfer gweithio gyda storfa gwrthrychau OSD (Dyfais Storio Seiliedig ar Wrthrych). Mae cefnogaeth i'r protocol SCSI ar gyfer dyfeisiau storio gwrthrychau o'r fath hefyd wedi'i ddileu;
  • Rhithwiroli a Diogelwch
    • Ychwanegwyd opsiwn PR_SPEC_DISABLE_NOEXEC i prctl() i reoli gweithrediad hapfasnachol y cyfarwyddiadau ar gyfer y broses a ddewiswyd. Mae opsiwn newydd yn caniatáu ichi analluogi gweithredu hapfasnachol yn ddetholus ar gyfer prosesau y gallai ymosodiad Specter ymosod arnynt o bosibl. Mae'r clo yn para tan yr alwad gyntaf i weithredwr();
    • Gweithredu modiwl LSM SafeSetID, sy'n caniatáu i wasanaethau system reoli defnyddwyr yn ddiogel heb breintiau cynyddol (CAP_SETUID) a heb ennill breintiau gwraidd. Neilltuir breintiau trwy ddiffinio rheolau mewn diogelwch yn seiliedig ar restr wen o rwymiadau dilys (yn y ffurflen “UID1: UID2”);
    • Ychwanegwyd newidiadau lefel isel sydd eu hangen ar gyfer llwytho modiwlau diogelwch ar sail stac (LSMs). Cyflwyno'r opsiwn cist cnewyllyn "lsm" i reoli pa fodiwlau sy'n cael eu llwytho ac ym mha drefn;
    • Mae cefnogaeth ar gyfer bylchau enwau ffeiliau wedi'i ychwanegu at yr is-system archwilio;
    • Ehangwyd galluoedd structleak ategyn GCC, sy'n eich galluogi i rwystro gollyngiadau posibl o gynnwys cof Darperir cychwyniad unrhyw newidynnau a ddefnyddir yn y cod trwy fynediad cyfeirio ar y pentwr;
  • Is-system rhwydwaith
    • Ar gyfer socedi gweithredu opsiwn newydd "SO_BINDTOIFIINDEX" tebyg i
      "SO_BINDTODEVICE", ond gan gymryd fel dadl rhif mynegai y rhyngwyneb rhwydwaith yn lle enw'r rhyngwyneb;

    • Mae'r pentwr mac80211 wedi ychwanegu'r gallu i aseinio BSSIDs lluosog (cyfeiriadau MAC) i un ddyfais. Fel rhan o brosiect i wneud y gorau o berfformiad WiFi, mae stac mac80211 wedi ychwanegu cyfrif amser awyr a'r gallu i ddosbarthu amser awyr ymhlith gorsafoedd lluosog (wrth weithredu yn y modd pwynt mynediad, gan ddyrannu llai o amser trosglwyddo i orsafoedd diwifr araf, yn lle dosbarthu amser yn gyfartal ymhlith pawb gorsafoedd);
    • Ychwanegwyd mecanwaith"iechyd devlink", sy'n darparu hysbysiadau pan fydd problemau'n codi gyda'r rhyngwyneb rhwydwaith;
  • Gwasanaethau cof a system
    • Gweithredwyd danfoniad signal diogel sy'n caniatáu ailddefnyddio PID. Er enghraifft, wrth alw lladd yn flaenorol, gallai sefyllfa godi lle, yn syth ar ôl anfon signal, gallai'r PID targed gael ei ryddhau oherwydd terfynu'r broses a'i feddiannu gan broses arall, a byddai'r signal yn cael ei drosglwyddo i broses arall yn y pen draw. I ddileu sefyllfaoedd o'r fath, mae galwad system newydd pidfd_send_signal wedi'i ychwanegu, sy'n defnyddio disgrifyddion ffeil o /proc/pid i sicrhau rhwymiad proses sefydlog. Hyd yn oed os caiff y PID ei ailddefnyddio yn ystod prosesu galwadau system, ni fydd y disgrifydd ffeil yn newid a gellir ei ddefnyddio'n ddiogel i anfon signal i'r broses;
    • Wedi adio y gallu i ddefnyddio dyfeisiau cof parhaol (cof parhaus, er enghraifft NVDIMM) fel RAM. Hyd yn hyn, roedd y cnewyllyn yn cefnogi dyfeisiau fel dyfeisiau storio, ond nawr gellir eu defnyddio hefyd fel RAM ychwanegol. Gweithredir y nodwedd mewn ymateb i ddymuniadau defnyddwyr sy'n barod i ddioddef oedi perfformiad ac sydd am ddefnyddio'r API rheoli cof cnewyllyn Linux brodorol yn lle defnyddio systemau dyrannu cof gofod defnyddiwr presennol sy'n rhedeg ar ben mmap ar gyfer y dax ffeil;
    • Ychwanegwyd triniwr segur CPU newydd (cpuidle, yn penderfynu pryd y gellir rhoi'r CPU mewn moddau arbed pŵer dwfn; po ddyfnach yw'r modd, y mwyaf yw'r arbedion, ond hefyd po hiraf y mae'n ei gymryd i adael y modd) - TEO (Llywodraethwr sy'n Canolbwyntio ar Ddigwyddiadau Amserydd ). Hyd yn hyn, mae dau driniwr cpuidle wedi'u cynnig - "bwydlen" ac "ysgol", sy'n amrywio o ran heuristics. Mae'r triniwr "bwydlen" wedi gwybod problemau gyda gwneud penderfyniadau hewristig, er mwyn dileu y penderfynwyd paratoi triniwr newydd. Mae TEO wedi'i leoli fel dewis amgen i driniwr y "bwydlen", gan ganiatáu ar gyfer perfformiad uwch tra'n cynnal yr un lefel o ddefnydd pŵer.
      Gallwch chi actifadu'r triniwr newydd gan ddefnyddio'r paramedr cychwyn “cpuidle.governor=teo”;

    • Fel rhan o'r gwaith i ddileu problemau 2038, a achosir gan orlif o'r math time_t 32-did, yn cynnwys galwadau system sy'n cynnig cownteri amser 32-bit ar gyfer pensaernïaeth 64-bit. O ganlyniad, gellir defnyddio'r strwythur time_t 64-bit nawr ar bob pensaernïaeth. Mae newidiadau tebyg hefyd wedi'u gweithredu yn yr is-system rhwydwaith ar gyfer opsiynau stamp amser socedi rhwydwaith;
    • I mewn i'r system clytio poeth ar gyfer y craidd (clytio byw) wedi adio Nodwedd “Amnewid Atomig” ar gyfer cymhwyso cyfres o newidiadau yn atomig i un ffwythiant. Mae'r nodwedd hon yn caniatáu ichi ddosbarthu clytiau cryno sy'n cwmpasu sawl newid ar unwaith, yn lle'r broses o gymhwyso clytiau byw fesul cam mewn trefn a ddiffinnir yn llym, sy'n eithaf anodd ei chynnal. Yn flaenorol, roedd yn rhaid i bob newid dilynol fod yn seiliedig ar gyflwr y swyddogaeth ar ôl y newid diwethaf, ond mae bellach yn bosibl lluosogi nifer o newidiadau yn gysylltiedig ag un cyflwr cychwynnol ar unwaith (h.y., gall cynhalwyr gynnal un darn cyfun o'i gymharu â'r cnewyllyn sylfaen yn lle hynny. cadwyn o glytiau sy'n dibynnu ar ei gilydd );
    • Cyhoeddwyd cefnogaeth anghymeradwy ar gyfer y fformat ffeil gweithredadwy a.out a
      tynnu cod ar gyfer cynhyrchu ffeiliau craidd mewn fformat a.out, sydd mewn cyflwr segur. Nid yw'r fformat a.out wedi'i ddefnyddio ar systemau Linux ers amser maith, ac nid yw cynhyrchu ffeiliau a.out wedi'i gefnogi ers amser maith gan offer modern mewn ffurfweddau Linux diofyn. Yn ogystal, gellir gweithredu'r llwythwr ar gyfer ffeiliau a.out yn gyfan gwbl yn y gofod defnyddiwr;

    • Mae'r gallu i nodi a dileu cod nas defnyddiwyd wedi'i ychwanegu at fecanwaith dilysu rhaglen BPF. Mae'r cnewyllyn hefyd yn cynnwys clytiau gyda chefnogaeth spinlock ar gyfer yr is-system BPF, gan ddarparu galluoedd ychwanegol ar gyfer rheoli gweithrediad cyfochrog rhaglenni BPF;
  • Offer
    • Yn Nouveau gyrrwr wedi adio cefnogaeth ar gyfer rheoli cof heterogenaidd, gan ganiatáu i'r CPU a'r GPU gael mynediad i ardaloedd cof cydamserol cyffredin. Mae'r system cof rhithwir a rennir (SVM, cof rhithwir a rennir) yn cael ei gweithredu ar sail yr is-system HMM (Rheoli cof Heterogenaidd), sy'n caniatáu defnyddio dyfeisiau gyda'u hunedau rheoli cof eu hunain (MMU, uned rheoli cof), a all gael mynediad prif gof. Yn benodol, gan ddefnyddio HMM, gallwch drefnu gofod cyfeiriad a rennir rhwng y GPU a'r CPU, lle gall y GPU gael mynediad at brif gof y broses. Ar hyn o bryd dim ond ar gyfer GPUs teulu Pascal y mae cefnogaeth SVM wedi'i alluogi, er bod cefnogaeth yn cael ei darparu ar gyfer GPUs Volta a Turing hefyd. Ar ben hynny, yn Nouveau wedi adio ioctl newydd i reoli mudo ardaloedd cof proses i gof GPU;
    • Mewn gyrrwr Intel DRM ar gyfer GPU Skylake ac yn ddiweddarach (gen9+) cynnwys Yn ddiofyn, mae modd fastboot yn dileu newidiadau modd diangen yn ystod y cychwyn. Wedi adio новые dynodwyr dyfais yn seiliedig ar ficrosaernïaeth Coffelake a Ice Lake. Ar gyfer sglodion Coffelake wedi adio cefnogaeth GVT (rhithwiroli GPU). Ar gyfer GPUs rhithwir gweithredu Cefnogaeth VFIO EDID. Ar gyfer paneli LCD MIPI/DSI wedi adio cefnogaeth ar gyfer elfennau ACPI/PMIC. Gweithredwyd dulliau teledu newydd 1080p30/50/60 teledu;
    • Ychwanegwyd cefnogaeth ar gyfer Vega10/20 BACO GPU i'r gyrrwr amdgpu. Wedi gweithredu rheolaeth pŵer Vega 10/20 a thablau rheoli oerach Vega 10. Ychwanegwyd dynodwyr dyfais PCI newydd ar gyfer GPUs Picasso. Wedi adio rhyngwyneb ar gyfer rheoli dibyniaethau y gellir eu hamserlennu er mwyn osgoi terfynau amser;
    • Wedi adio Gyrrwr DRM/KMS ar gyfer cyflymyddion sgrin ARM Komeda (Mali D71);
    • Cefnogaeth ychwanegol ar gyfer paneli sgrin Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 a Kingdisplay kd097d04;
    • Cefnogaeth ychwanegol ar gyfer Rockchip RK3328, Cirrus Logic CS4341 a CS35L36, MediaTek MT6358, Qualcomm WCD9335 a codecau sain Ingenic JZ4725B, yn ogystal â llwyfan sain Mediatek MT8183;
    • Cefnogaeth ychwanegol i reolwyr NAND Flash STMicroelectronics FMC2, Amlogic Meson;
    • Ychwanegwyd cefnogaeth cyflymydd ar gyfer systemau caledwedd Habana AI;
    • Cefnogaeth ychwanegol i reolwyr Ethernet gigabit NXP ENETC a rhyngwynebau diwifr MediaTek MT7603E (PCIe) a MT76x8.

Ar yr un pryd, Sefydliad Meddalwedd Rydd America Ladin ffurfio
opsiwn cnewyllyn hollol rhad ac am ddim 5.1 - Linux-libre 5.1-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. Yn y datganiad newydd, mae llwytho blob yn anabl yn y gyrwyr mt7603 a goya. Cod glanhau blob wedi'i ddiweddaru mewn gyrwyr ac is-systemau wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifiex, btmrvl, btmtk a touchscreen_dmi. Mae glanhau blobiau yn y llwythwr firmware lantiq xrx200 wedi'i atal oherwydd ei fod yn cael ei dynnu o'r cnewyllyn.

Ffynhonnell: opennet.ru

Ychwanegu sylw