WD po zhvillon një driver NVMe në gjuhën Rust. Eksperimente me Rust në FreeBSD.

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.

WD po zhvillon një driver NVMe në gjuhën Rust. Eksperimente me Rust në FreeBSD.
WD po zhvillon një driver NVMe në gjuhën Rust. Eksperimente me Rust në FreeBSD.

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.

Luaj videon

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

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster