Pedwerydd argraffiad clytiau ar gyfer y cnewyllyn Linux gyda chefnogaeth i'r iaith Rust

Cynigiodd Miguel Ojeda, awdur y prosiect Rust-for-Linux, bedwaredd fersiwn 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 ac mae'n ddigon aeddfed i ddechrau gweithio ar greu haenau tynnu dros is-systemau cnewyllyn, yn ogystal ag ysgrifennu gyrwyr a modiwlau. Ariennir y datblygiad gan Google a'r ISRG (Internet Security Research Group), sef sylfaenydd y prosiect Let's Encrypt ac sy'n hyrwyddo HTTPS a datblygiad technolegau i wella diogelwch Rhyngrwyd.

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.

Mae'r fersiwn newydd o'r clytiau yn parhau i ddileu'r sylwadau a wnaed yn ystod y drafodaeth ar rifyn cyntaf, ail a thrydydd rhifyn y clytiau. Yn y fersiwn newydd:

  • Mae'r newid i ddefnyddio rhyddhau sefydlog Rust 1.58.0 fel y casglwr cyfeirio wedi'i wneud. Ymhlith y newidiadau angenrheidiol ar gyfer y prosiect, nad ydynt eto wedi'u cynnwys ym mhrif becyn cymorth Rust, y faner “-Zsymbol-mangling-version = v0” (a ddisgwylir yn Rust 1.59.0) a'r modd “maybe_uninit_extra” (disgwylir yn Rust 1.60.0 .XNUMX) yn cael eu nodi.
  • Ychwanegwyd gwiriadau awtomatig ar gyfer argaeledd offer Rust addas ac ehangu'r gallu i brofi cefnogaeth Rust yn y system.
  • Mae tyniadau newydd wedi'u cynnig ar gyfer cyrchu tablau adnabod dyfeisiau (“IdArray” ac “IdTable”) o'r cod Rust.
  • Haenau ychwanegol ar gyfer cyrchu swyddogaethau sy'n gysylltiedig ag amserydd (fframwaith cloc).
  • Mae gyrwyr platfform bellach yn cael eu diffinio trwy weithrediadau nodweddion.
  • Mae macro newydd wedi'i ychwanegu i symleiddio'r broses o gofrestru gyrwyr platfform, a chynigiwyd templed gyrrwr generig newydd.
  • Ychwanegwyd macros ar gyfer strwythurau "dev_*".
  • Ychwanegwyd dulliau "{read, write}*_relaxed" ar gyfer y math IoMem .
  • Wedi dileu'r eiddo FileOpener i symleiddio gweithrediadau ffeil.
  • Mae'r paramedr “ThisModule” wedi'i ychwanegu at y dadleuon a basiwyd wrth gofrestru gyrrwr.
  • Cynigir templed safonol ar gyfer creu modiwlau cnewyllyn yn yr iaith Rust.

Ffynhonnell: opennet.ru

Ychwanegu sylw