Ail argraffiad o glytiau ar gyfer y cnewyllyn Linux gyda chefnogaeth i'r iaith Rust

Cynigiodd Miguel Ojeda, awdur y prosiect Rust-for-Linux, fersiwn wedi'i diweddaru o gydrannau ar gyfer datblygu gyrwyr dyfeisiau yn yr iaith Rust i'w hystyried gan ddatblygwyr cnewyllyn Linux. Ystyrir bod cefnogaeth rhwd yn arbrofol, ond mae eisoes wedi'i gytuno i'w gynnwys yn y gangen linux-nesaf. Mae'r fersiwn newydd yn dileu'r sylwadau a wnaed yn ystod y drafodaeth ar y fersiwn gyntaf o'r clytiau. Mae Linus Torvalds eisoes wedi ymuno â'r drafodaeth ac wedi cynnig newid y rhesymeg ar gyfer prosesu rhai gweithrediadau did.

Dwyn i gof bod y newidiadau arfaethedig yn ei gwneud hi'n bosibl defnyddio Rust fel ail iaith ar gyfer datblygu gyrwyr a modiwlau cnewyllyn. Cyflwynir cefnogaeth rust fel opsiwn nad yw'n cael ei alluogi yn ddiofyn ac nad yw'n arwain at gynnwys Rust ymhlith y dibyniaethau adeiladu gofynnol ar gyfer y cnewyllyn. Bydd defnyddio Rust i ddatblygu gyrwyr yn caniatáu ichi greu gyrwyr mwy diogel a gwell heb fawr o ymdrech, yn rhydd o broblemau fel cyrchu man cof ar ôl iddo gael ei ryddhau, dadgyfeirio awgrymiadau nwl, a gor-redeg byffer.

Darperir diogelwch cof yn Rust ar amser llunio trwy wirio cyfeiriadau, cadw golwg ar berchnogaeth gwrthrych ac oes gwrthrych (cwmpas), yn ogystal â thrwy werthuso cywirdeb mynediad cof wrth weithredu cod. Mae Rust hefyd yn darparu amddiffyniad rhag gorlifiadau cyfanrif, yn gofyn am ymgychwyn gorfodol o werthoedd amrywiol cyn ei ddefnyddio, yn trin gwallau yn well yn y llyfrgell safonol, yn cymhwyso'r cysyniad o gyfeiriadau a newidynnau digyfnewid yn ddiofyn, yn cynnig teipio statig cryf i leihau gwallau rhesymegol.

Y newidiadau mwyaf amlwg yn y fersiwn newydd o'r clytiau:

  • Mae'r cod dyrannu cof yn cael ei ryddhau o'r posibilrwydd o greu cyflwr "panig" pan fydd gwallau megis y tu allan i'r cof yn digwydd. Mae amrywiad o lyfrgell aloc Rust wedi'i gynnwys, sy'n ail-weithio'r cod i drin methiannau, ond y nod yn y pen draw yw trosglwyddo'r holl nodweddion sydd eu hangen ar gyfer y cnewyllyn i'r prif rifyn o alloc (mae'r newidiadau eisoes wedi'u paratoi a'u trosglwyddo i'r safon Llyfrgell rhwd).
  • Yn lle adeiladu bob nos, gallwch nawr ddefnyddio datganiadau beta a datganiadau sefydlog o'r casglwr rustc i lunio cnewyllyn gyda chefnogaeth Rust. Ar hyn o bryd, defnyddir rustc 1.54-beta1 fel y casglwr cyfeirio, ond ar ôl i'r datganiad 1.54 gael ei ryddhau ar ddiwedd y mis, bydd yn cael ei gefnogi fel y casglwr cyfeirio.
  • Ychwanegwyd cefnogaeth ar gyfer ysgrifennu profion gan ddefnyddio'r nodwedd safonol “#[test]” ar gyfer Rust a'r gallu i ddefnyddio doctests i ddogfennu profion.
  • Cefnogaeth ychwanegol ar gyfer pensaernïaeth ARM32 a RISCV yn ogystal â x86_64 ac ARM64 a gefnogwyd yn flaenorol.
  • Gwell gweithrediad GCC Rust (frontend GCC ar gyfer Rust) a rustc_codegen_gcc (backend rustc ar gyfer GCC), sydd bellach yn pasio pob prawf sylfaenol.
  • Cynigir lefel newydd o echdynnu i'w ddefnyddio mewn rhaglenni Rust o fecanweithiau cnewyllyn a ysgrifennwyd yn C, megis coed coch-du, ​​gwrthrychau wedi'u cyfrif yn gyfeirnod, creu disgrifydd ffeiliau, tasgau, ffeiliau, a fectorau I/O.
  • Mae cydrannau datblygu gyrwyr wedi gwella cefnogaeth ar gyfer y modiwl file_operations, y modiwl! macro, cofrestru macro, a gyrwyr elfennol (chwilio a thynnu).
  • Mae Binder bellach yn cefnogi disgrifyddion ffeiliau pasio a bachau LSM.
  • Cynigir enghraifft fwy ymarferol o yrrwr Rust - bcm2835-rng ar gyfer generadur caledwedd haprifau byrddau Raspberry Pi.

Yn ogystal, sonnir am brosiectau rhai cwmnïau sy'n ymwneud â defnyddio Rust yn y cnewyllyn:

  • Mae Microsoft wedi mynegi diddordeb mewn cymryd rhan yn y gwaith i integreiddio cefnogaeth Rust i'r cnewyllyn Linux ac mae'n barod i ddarparu gweithrediadau gyrrwr ar gyfer Hyper-V ar Rust yn y misoedd nesaf.
  • Mae ARM yn gweithio i wella cefnogaeth Rust ar gyfer systemau sy'n seiliedig ar ARM. Mae'r prosiect Rust eisoes wedi cynnig newidiadau a fyddai'n gwneud systemau ARM 64-did yn blatfform Haen 1.
  • Mae Google yn darparu cefnogaeth uniongyrchol i'r prosiect Rust for Linux, mae'n datblygu gweithrediad newydd o fecanwaith cyfathrebu rhyngbroses Binder yn Rust, ac mae'n ystyried y posibilrwydd o ail-weithio amrywiol yrwyr yn Rust. Trwy ISRG (Grŵp Ymchwil Diogelwch Rhyngrwyd), darparodd Google gyllid ar gyfer gwaith i integreiddio cefnogaeth Rust i'r cnewyllyn Linux.
  • Mae IBM wedi gweithredu cefnogaeth cnewyllyn ar gyfer systemau Rust for PowerPC.
  • Mae labordy LSE (Systems Research Laboratory) wedi datblygu gyrrwr SPI yn Rust.

Ffynhonnell: opennet.ru

Ychwanegu sylw