Linux nukleorako adabakien bigarren edizioa Rust hizkuntzarako laguntzarekin

Miguel Ojedak, Rust-for-Linux proiektuaren egileak, Rust hizkuntzan gailu kontrolatzaileak garatzeko osagaien bertsio eguneratua proposatu zuen Linux kerneleko garatzaileek kontuan izan dezaten. Rust-en euskarria esperimentaltzat jotzen da, baina dagoeneko adostu da linux-next adarrean sartzea. Bertsio berriak adabakien lehen bertsioaren eztabaidan egindako iruzkinak ezabatzen ditu. Linus Torvalds dagoeneko batu da eztabaidan eta bit-eragiketa batzuk prozesatzeko logika aldatzea proposatu du.

Gogoratu proposatutako aldaketek Rust bigarren hizkuntza gisa erabiltzeko aukera ematen dutela kontrolatzaileak eta nukleoaren moduluak garatzeko. Rust-en euskarria lehenespenez gaituta ez dagoen aukera gisa aurkezten da eta ez du eragiten Rust nukleorako beharrezko eraikitze-menpekotasun gisa sartzea. Rust kontrolatzaileak garatzeko erabiltzeak gidari seguruagoak eta hobeak sortzea ahalbidetuko du esfortzu minimoarekin, askatu ondoren memoriarako sarbidea, erakusle nuluen deserreferentziak eta buffer gainditzeak bezalako arazorik gabe.

Memoria segurua den manipulazioa Rust-en eskaintzen da konpilazio garaian erreferentziak egiaztatzen, objektuen jabetzaren eta objektuaren bizitzaren (esparrua) jarraipena eginez, baita kodearen exekuzioan memoriarako sarbidearen zuzentasunaren ebaluazioaren bidez ere. Rust-ek osoko gainezkatzeen aurkako babesa eskaintzen du, erabili aurretik aldagaien balioak derrigorrezko hasieratzea eskatzen du, liburutegi estandarrean akatsak hobeto kudeatzen ditu, erreferentzia eta aldagai aldaezinen kontzeptua lehenespenez aplikatzen du, idazketa estatiko sendoa eskaintzen du akats logikoak minimizatzeko.

Adabakien bertsio berrian aldaketa nabarmenenak:

  • Memoria esleitzeko kodea "izua" egoera sortzetik libratzen da, hala nola, memoria falta den erroreak gertatzen direnean. Rust alloc liburutegiaren aldaera bat sartzen da, kodea berriro lantzen duena hutsegiteei aurre egiteko, baina azken helburua nukleorako beharrezkoak diren ezaugarri guztiak alloc-en edizio nagusira transferitzea da (aldaketak dagoeneko prestatu eta estandarrera transferitu dira. Herdoila liburutegia).
  • Gaueko eraikitzeen ordez, orain rustc konpilatzailearen beta bertsioak eta bertsio egonkorrak erabil ditzakezu Rust euskarria duen nukleo bat konpilatzeko. Gaur egun, rustc 1.54-beta1 erreferentzia-konpilatzaile gisa erabiltzen da, baina hilaren amaieran 1.54 bertsioa kaleratu ondoren, erreferentzia-konpilatzaile gisa onartuko da.
  • Rust-erako "#[test]" atributu estandarra erabiliz probak idazteko laguntza eta doctestak probak dokumentatzeko erabiltzeko gaitasuna gehitu da.
  • ARM32 eta RISCV arkitekturarako euskarria gehitu da aurretik onartzen ziren x86_64 eta ARM64ez gain.
  • GCC Rust-en (GCC frontend-a Rust-erako) eta rustc_codegen_gcc (rustc-en backend-a GCC-rako) inplementazioak hobetu dira, eta orain oinarrizko proba guztiak gainditzen ditu.
  • Abstrakzio-maila berri bat proposatzen da Rust-en C-n idatzitako nukleo-mekanismoen erabilerarako, hala nola zuhaitz gorri-beltzak, erreferentziaz zenbatutako objektuak, fitxategi deskribatzaileak sortzea, zereginak, fitxategiak eta I/O bektoreak.
  • Gidariak garatzeko osagaiek file_operations modulurako, module! makrorako, makro-erregistrorako eta oinarrizko kontrolatzaileentzako laguntza hobetu dute (zundatu eta kendu).
  • Binder-ek fitxategi-deskribatzaileak eta LSM kakoak pasatzea onartzen du orain.
  • Rust kontrolatzaile baten adibide funtzionalagoa proposatzen da - bcm2835-rng Raspberry Pi plaken hardware ausazko zenbaki-sorgailurako.

Gainera, Herdoila nukleoan erabiltzearekin lotutako zenbait enpresaren proiektuak aipatzen dira:

  • Microsoft-ek Rust euskarria Linux nukleoan integratzeko lanetan parte hartzeko interesa agertu du eta datozen hilabeteetan Hyper-V on Rust-erako kontrolatzaileen inplementazioak emateko prest dago.
  • ARM ARMan oinarritutako sistemetarako Rust laguntza hobetzeko lanean ari da. Rust proiektuak 64 biteko ARM sistemak Tier 1 plataforma bihurtuko dituzten aldaketak proposatu ditu dagoeneko.
  • Google-k zuzenean eskaintzen du Rust for Linux proiekturako, Binder prozesuen arteko komunikazio-mekanismoaren inplementazio berri bat garatzen ari da Rust-en, eta Rust-en hainbat kontrolatzaile birlantzeko aukera aztertzen ari da. ISRG (Internet Security Research Group) bidez, Google-k Rust euskarria Linux nukleoan integratzeko lanetarako finantzaketa eman zuen.
  • IBM-k kernelaren euskarria ezarri du Rust-erako PowerPC sistemetarako.
  • LSE (Systems Research Laboratory) laborategiak SPI gidari bat garatu du Rust-en.

Iturria: opennet.ru

Gehitu iruzkin berria