Ẹda kẹrin 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 kẹrin ti awọn paati fun idagbasoke awakọ ẹrọ ni ede Rust fun ero nipasẹ awọn olupilẹṣẹ ekuro Linux. Atilẹyin ipata ni a ka si esiperimenta, ṣugbọn o ti gba tẹlẹ fun ifisi ni ẹka linux ti o tẹle ati pe o dagba to lati bẹrẹ iṣẹ lori ṣiṣẹda awọn fẹlẹfẹlẹ abstraction lori awọn eto inu ekuro, bakanna bi awọn awakọ kikọ ati awọn modulu. Idagbasoke naa jẹ agbateru nipasẹ Google ati ISRG (Ẹgbẹ Iwadi Aabo Intanẹẹti), eyiti o jẹ oludasile iṣẹ akanṣe Let's Encrypt ati igbega HTTPS ati idagbasoke awọn imọ-ẹrọ lati mu aabo Intanẹẹti dara si.

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.

Ẹya tuntun ti awọn abulẹ tẹsiwaju lati yọkuro awọn asọye ti a ṣe lakoko ijiroro ti akọkọ, keji ati awọn ẹya kẹta ti awọn abulẹ. Ninu ẹya tuntun:

  • Iyipada si lilo itusilẹ iduroṣinṣin ti Rust 1.58.0 bi a ti ṣe akopọ itọkasi. Lara awọn iyipada ti o ṣe pataki fun iṣẹ akanṣe naa, eyiti ko tii wa ninu ohun elo irinṣẹ Rust akọkọ, asia “-Zsymbol-mangling-version=v0” (ti a nireti ni Rust 1.59.0) ati ipo “maybe_uninit_extra” (ti a nireti ni Rust 1.60.0). .XNUMX) ṣe akiyesi.
  • Awọn sọwedowo laifọwọyi ti a ṣafikun fun wiwa ti awọn irinṣẹ ipata ti o dara ati faagun agbara lati ṣe idanwo atilẹyin ipata ninu eto naa.
  • Awọn abstractions tuntun ti ni imọran fun iwọle si awọn tabili idamo ẹrọ (“IdArray” ati “IdTable”) lati koodu Rust.
  • Awọn ipele ti a ṣafikun fun iraye si awọn iṣẹ ti o ni ibatan aago (ilana aago).
  • Awọn awakọ Platform ti wa ni asọye ni bayi nipasẹ awọn imuse abuda.
  • A ti ṣafikun Makiro tuntun lati jẹ ki iforukọsilẹ ti awọn awakọ Syeed rọrun, ati pe a ti dabaa awoṣe awakọ jeneriki tuntun kan.
  • Awọn macros ti a ṣafikun fun awọn ẹya “dev_*”.
  • Ṣafikun awọn ọna “{ka, kọ}*_isinmi” fun iru IoMem .
  • Yọ ohun-ini FileOpener kuro lati jẹ ki awọn iṣẹ ṣiṣe faili rọrun.
  • A ti ṣafikun paramita “Module yii” si awọn ariyanjiyan ti o kọja nigbati o forukọsilẹ awakọ kan.
  • Awoṣe boṣewa fun ṣiṣẹda awọn modulu ekuro ni ede Rust ni a dabaa.

orisun: opennet.ru

Fi ọrọìwòye kun