Atẹjade keji ti awọn abulẹ fun ekuro Linux pẹlu atilẹyin fun ede Rust

Miguel Ojeda, onkọwe ti iṣẹ akanṣe Rust-for-Linux, dabaa ẹya imudojuiwọn ti awọn paati fun idagbasoke awọn awakọ ẹrọ ni ede Rust fun imọran nipasẹ awọn olupilẹṣẹ ekuro Linux. Atilẹyin ipata ni a ka si esiperimenta, ṣugbọn a ti gba tẹlẹ lori fun ifisi ni ẹka linux-tókàn. Ẹya tuntun yọkuro awọn asọye ti a ṣe lakoko ijiroro ti ẹya akọkọ ti awọn abulẹ. Linus Torvalds ti darapọ mọ ijiroro naa o si dabaa iyipada imọ-ọrọ fun sisẹ diẹ ninu awọn iṣẹ ṣiṣe diẹ.

Ranti pe awọn iyipada ti a dabaa jẹ ki o ṣee ṣe lati lo Rust bi ede keji fun idagbasoke awakọ ati awọn modulu ekuro. Atilẹyin ipata ni a gbekalẹ bi aṣayan ti ko ṣiṣẹ nipasẹ aiyipada ati pe ko ja si ni ipata ti o wa bi igbẹkẹle kikọ ti o nilo fun ekuro. Lilo Rust fun idagbasoke awakọ yoo gba ọ laaye lati ṣẹda ailewu ati awọn awakọ to dara julọ pẹlu ipa diẹ, ọfẹ lati awọn iṣoro bii iraye si iranti lẹhin didi, awọn ifọkasi itọka asan, ati awọn ifasilẹ ifipamọ.

Mimu ailewu iranti ni a pese ni ipata ni akoko iṣakojọpọ nipasẹ iṣayẹwo itọkasi, ṣiṣe itọju ohun-ini ohun ati igbesi aye ohun (opin), ati nipasẹ igbelewọn ti deede wiwọle iranti lakoko ṣiṣe koodu. Ipata tun pese aabo lodi si ṣiṣan odidi odidi, nilo ipilẹṣẹ dandan ti awọn iye oniyipada ṣaaju lilo, mu awọn aṣiṣe dara julọ ni ile-ikawe boṣewa, lo imọran ti awọn itọkasi ailagbara ati awọn oniyipada nipasẹ aiyipada, nfunni titẹ aimi to lagbara lati dinku awọn aṣiṣe ọgbọn.

Awọn iyipada ti o ṣe akiyesi julọ ni ẹya tuntun ti awọn abulẹ:

  • Koodu ipin iranti ti ni ominira lati agbara ti o ṣẹda ipo “ijaaya” nigbati awọn aṣiṣe bii ti iranti ba waye. Iyatọ ti ile-ikawe Rust alloc wa pẹlu, eyiti o tun ṣe koodu lati mu awọn ikuna, ṣugbọn ibi-afẹde to ga julọ ni lati gbe gbogbo awọn ẹya ti o nilo fun ekuro si ẹda akọkọ ti alloc (awọn ayipada ti pese tẹlẹ ati gbe si boṣewa). ipata ìkàwé).
  • Dipo awọn ile alẹ, o le lo awọn idasilẹ beta ati awọn idasilẹ iduroṣinṣin ti alakojo rustc lati ṣajọ ekuro kan pẹlu atilẹyin Rust. Lọwọlọwọ, rustc 1.54-beta1 ni a lo bi olupilẹṣẹ itọkasi, ṣugbọn lẹhin itusilẹ 1.54 ni opin oṣu, yoo ṣe atilẹyin bi olupilẹṣẹ itọkasi.
  • Atilẹyin ti a ṣafikun fun awọn idanwo kikọ ni lilo “#[idanwo]” boṣewa abuda fun ipata ati agbara lati lo awọn doctests si awọn idanwo iwe.
  • Atilẹyin ti a ṣafikun fun ARM32 ati awọn faaji RISCV ni afikun si atilẹyin x86_64 ati ARM64 tẹlẹ.
  • Awọn imudara ilọsiwaju ti GCC Rust (GCC frontend for Rust) ati rustc_codegen_gcc (rustc backend fun GCC), eyiti o kọja gbogbo awọn idanwo ipilẹ.
  • Ipele tuntun ti abstraction ni a dabaa fun lilo ninu awọn eto Rust ti awọn ilana kernel ti a kọ sinu C, gẹgẹbi awọn igi dudu-pupa, awọn nkan ti a ka awọn itọkasi, ẹda asọye faili, awọn iṣẹ-ṣiṣe, awọn faili, ati awọn olutọpa I/O.
  • Awọn paati idagbasoke awakọ ti ni ilọsiwaju atilẹyin fun module_operations module, module! Makiro, iforukọsilẹ Makiro, ati awọn awakọ ipilẹ (iwadii ati yiyọ kuro).
  • Binder ni bayi ṣe atilẹyin awọn apejuwe faili ti nkọja ati awọn kio LSM.
  • A dabaa apẹẹrẹ iṣẹ-ṣiṣe diẹ sii ti awakọ ipata - bcm2835-rng fun olupilẹṣẹ nọmba ID hardware ti awọn igbimọ Rasipibẹri Pi.

Ni afikun, diẹ ninu awọn iṣẹ akanṣe ti awọn ile-iṣẹ ti o ni ibatan si lilo Rust ninu ekuro ni mẹnuba:

  • Microsoft ti ṣe afihan ifẹ si ikopa ninu iṣẹ lati ṣepọ atilẹyin Rust sinu ekuro Linux ati pe o ti ṣetan lati pese awọn imuṣẹ awakọ fun Hyper-V lori Rust ni awọn oṣu to n bọ.
  • ARM n ṣiṣẹ lati mu ilọsiwaju atilẹyin ipata fun awọn eto-orisun ARM. Ise agbese Rust ti dabaa awọn ayipada tẹlẹ ti yoo jẹ ki awọn eto ARM 64-bit jẹ pẹpẹ Ipele 1 kan.
  • Google taara pese support fun ipata fun Linux ise agbese, ti wa ni sese titun kan imuse ti Binder interprocess ibaraẹnisọrọ siseto ni ipata, ati ki o considering awọn seese ti a atunkọ orisirisi awakọ ni ipata. Nipasẹ ISRG (Ẹgbẹ Iwadi Aabo Intanẹẹti), Google pese igbeowosile fun iṣẹ lati ṣepọ atilẹyin Rust sinu ekuro Linux.
  • IBM ti ṣe atilẹyin ekuro fun ipata fun awọn eto PowerPC.
  • Ile-iyẹwu Iwadi LSE (Systems Research Laboratory) ti ṣe agbekalẹ awakọ SPI kan ni Rust.

orisun: opennet.ru

Fi ọrọìwòye kun