Në konferencën që po zhvillohet këto ditë, Linux Plumbers 2022, një inxhinier nga kompania Western Digital paraqiti një ligjëratë mbi zhvillimin e një drejtuesi eksperimental për disqet SSD me ndërfaqen NVM-Express (NVMe), i shkruar në gjuhën Rust dhe që punon në nivelin e kernelit Linux. Megjithëse projekti është ende në një fazë të hershme zhvillimi, testimet e kryera treguan se performanca e drejtuesit NVMe në gjuhën Rust është në përputhje me atë ekzistues në kernelin NVMe, i shkruar në gjuhën C.


Në ligjëratë u tha se drejtuesi aktual NVMe në gjuhën C i plotëson plotësisht nevojat e zhvilluesve, por nënshkalla NVMe është një platformë e mirë për të studiuar arsyet e zhvillimit të drejtuesve në gjuhën Rust, sepse është mjaft e thjeshtë, përdoret gjerësisht, i kërkon performancë të lartë, ka një implementim referent të provuar për krahasim dhe mbështet ndërfaqe të ndryshme (dev, pci, dma, blk-mq, gendisk, sysfs).
Së fundmi, vëren se drejtuesi PCI NVMe në Rust tashmë ofron funksionalitetin e nevojshëm për punë, por ende nuk është i gatshëm për përdorim të gjerë, pasi kërkon përmirësime të veçanta. Midis planeve për të ardhmen është eliminimi i bllokave të pasigurta të kodit, mbështetje për operacionet e fshirjes së pajisjeve dhe shkarkimit të drejtuesit, mbështetje për ndërfaqen sysfs, implementimi i inicializimit të vonuar, krijimi i një drejtuesi për blk-mq dhe eksperimente me përdorimin e një modeli asinkron të programimit për queue_rq.

Dhe përtej kësaj, mund të përmendim eksperimentet e realizuara nga kompania NCC Group për zhvillimin e drejtuesve në gjuhën Rust për kernelin FreeBSD. Si shembull, shqyrtohet në detaje një drejtues i thjeshtë echo, që kthen të dhënat që janë shkruar në skedarin /dev/rustmodule. Në fazën e ardhshme të eksperimentimeve, NCC Group po shqyrton mundësinë e ridizajnimit në gjuhën Rust të komponentëve bazë të kernelit për të rritur sigurinë e operacioneve rrjet dhe skedar.
Megjithatë, përderisa tregohet mundësia e krijimit të moduleve të thjeshta në gjuhën Rust, një integrim më i ngushtë i Rust në kernelin FreeBSD do të kërkojë punë shtesë. Për shembull, përmendet nevoja e krijimit të një sërë shtresash abstraksioni mbi nën-sistemat dhe strukturat e kernelit, të ngjashme me ato të përgatitura nga projekti Rust for Linux. Në të ardhmen, planifikohet të realizohen eksperimente të ngjashme me kernelin Illumos dhe të izolohet abstraksionet e përbashkëta në Rust, të cilat mund të përdoren në drejtuesit e shkruar në Rust për Linux, BSD dhe Illumos.
Sipas kompanive Microsoft dhe Google, rreth 70% e dobësive në produktet e tyre softuerike shkaktohen nga punë e pasigurt me memorjen. Supozohet se përdorimi i gjuhës Rust do të zvogëlojë rrezikun e ndodhjes së dobësive që i atribuohet punës së pasigur të memorjes dhe do të eliminojë shfaqjen e gabimeve të tilla si aksesimi në një zonë memorjeje pas lirimit të saj dhe dalja jashtë kufijve të tamponit.
Funksionaliteti i sigurt i punës me kujtesën sigurohet në Rust gjatë kompilimit përmes verifikimit të referencave, ndjekjes së pronësisë së objekteve dhe llogaritjes së kohëzgjatjes së jetës së objekteve (fusha e dukshmërisë), si dhe përmes vlerësimit të saktësisë së aksesit në memorie gjatë ekzekutimit të kodit. Rust ofron gjithashtu mjete për mbrojtjen nga tejkalimet e numrave të tërë, kërkon inicializimin e detyrueshëm të vlerave të variablave para përdorimit, trajton më mirë gabimet në bibliotekën standarde, zbaton konceptin e referencave dhe variablave të pandryshueshëm (immutable) si parazgjedhje, dhe ofron një tipizim statik të fortë për të minimizuar gabimet logjike.
Burimi: opennet.ru
