Linux kernelerako adabakien laugarren edizioa Rust hizkuntzarako laguntzarekin

Miguel Ojedak, Rust-for-Linux proiektuaren egileak, Rust hizkuntzan gailu kontrolatzaileak garatzeko osagaien laugarren bertsioa proposatu zuen Linux nukleoko garatzaileek kontuan izan dezaten. Rust-en euskarria esperimentaltzat hartzen da, baina dagoeneko adostu da linux-next adarrean sartzea eta nahikoa heldua da kernel azpisistemen gainean abstrakzio-geruzak sortzeko lanean hasteko, baita kontrolatzaileak eta moduluak idazten ere. Garapena Googlek eta ISRGk (Internet Security Research Group) finantzatzen dute, Let's Encrypt proiektuaren sortzailea dena eta HTTPS eta Interneteko segurtasuna hobetzeko teknologien garapena sustatzen 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 berriak adabakien lehen, bigarren eta hirugarren edizioen eztabaidan egindako iruzkinak ezabatzen jarraitzen du. Bertsio berrian:

  • Erreferentzia-konpilatzaile gisa Rust 1.58.0 bertsio egonkorra erabiltzeko trantsizioa egin da. Rust tresna-kit nagusian oraindik sartzen ez diren proiekturako beharrezkoak diren aldaketen artean, β€œ-Zsymbol-mangling-version=v0” bandera ( Rust 1.59.0-n espero da) eta β€œmaybe_uninit_extra” modua ( Rust 1.60.0-n espero da). .XNUMX) adierazi dira.
  • Rust tresna egokien erabilgarritasunari buruzko egiaztapen automatikoak gehitu dira eta Rust-en laguntza sisteman probatzeko gaitasuna zabaldu da.
  • Abstrakzio berriak proposatu dira Rust kodetik gailu identifikatzaileen taulak ("IdArray" eta "IdTable") sartzeko.
  • Tenporizadorearekin lotutako funtzioetara sartzeko geruzak gehitu dira (erlojuaren esparrua).
  • Plataformaren kontrolatzaileak ezaugarrien inplementazioen bidez definitzen dira orain.
  • Makro berri bat gehitu da plataforma-gidarien erregistroa errazteko, eta gidari-txantiloi generiko berri bat proposatu da.
  • "dev_*" egituretarako makroak gehitu dira.
  • "{read,write}*_relaxed" metodoak gehitu dira IoMem motarako .
  • FileOpener propietatea kendu da fitxategien eragiketak errazteko.
  • "ThisModule" parametroa gehitu da kontrolatzaile bat erregistratzean emandako argumentuei.
  • Rust hizkuntzan nukleoaren moduluak sortzeko txantiloi estandar bat proposatzen da.

Iturria: opennet.ru

Gehitu iruzkin berria