Nick Desaulniers (), i cili punon në Google për sigurimin e ndërtimit të bërthamës Linux duke përdorur kompilatorin Clang dhe gjithashtu të rregullojë gabimet në kompilatorin Rust, të organizojë në konferencën një sesion për të diskutuar ofrimin e mundësive për zhvillimin e komponentëve të bërthamës në gjuhën Rust. Nick është duke organizuar një mikro-konferencë për LLVM dhe beson se do të ishte mirë të diskutohet për aspektet teknike të integrimit të mundshëm të mbështetjes së Rust në bërthamë (ai ka përgatitur tashmë një prototip punues për KBuild) dhe të kuptojmë nëse është e nevojshme të shtohet kjo mbështetje dhe cilat janë kufizimet në përdorimin e Rust që duhet të pranohen.
Kujtojmë se në një diskutim të fundit në konferencën "Open Source Summit and Embedded Linux" Linus Torvalds shfaqja e lidhjeve për zhvillimin e nën-sistemeve jo kryesore të bllokut (p.sh., drejtuesit) në gjuhë si Rust. Mundësia e zhvillimit të drejtuesve në gjuhën Rust do të lejonte krijimin e drejtuesve më të sigurt dhe cilësorë me përpjekje minimale, duke eliminuar probleme si aksesimi i hapësirës së kujtesës pas çlirimit të saj, dereferenca e treguesve null dhe dalja jashtë kufijve të tamponit. Aktualisht, ekzistojnë disa projekte të palëve të treta që implementojnë një mundësi të tillë:
- Zhvilluesit nga kompania «Fish in a Barrel» toolset për shkruarjen e moduleve të ngarkueshme për bllokun Linux në gjuhën Rust, duke përdorur për të rritur mbrojtjen një grup shtresash abstrakte mbi ndërfaqet dhe strukturat e bllokut. Shtresat gjenerohen automatikisht në bazë të skedave ekzistuese të bllokut me ndihmën e utilitarit . Për ndërtimin e shtresave përdoret Clang. Modulët e ndërtuar, përveç shtresave, përdorin paketën staticlib.
- Kërkuesit nga Universiteti i Kinës në Hong Kong projekt për zhvillimin e drejtorive në Rust për sisteme të integruara dhe pajisje të Internetit të Things, i cili gjithashtu përdor bindgen për të gjeneruar shtresa të bazuara në skedarët e kokës së bërthamës. Ky framework lejon rritjen e sigurisë së drejtorive pa bërë ndryshime në bërthamë — në vend të krijimit të nivelave të tjera izolimi në bërthamë për drejtoritë, propozohet që të bllokohen problemet në fazën e kompilimit duke përdorur një gjuhë më të sigurt si Rust. Ky qasje pritet të jetë e kërkuar nga prodhuesit e pajisjeve që zhvillojnë drejtorira proprietare në mënyrë të shpejtë pa kryer një audit të duhur.
- Zhvilluesit e framework-ut për të transliteruar kodin C në Rust, eksperimentet mbi transformimin e moduleve të bërthamës me ndryshime minimale manuale. Problemi që është përmendur është përdorimi i shumë pjesëve të bërthamës së kodit, ku përdoren zgjerime GCC, të cilat aktualisht nuk mbështeten në C2Rust. Për të zgjidhur këtë problem, planifikohet që në C2Rust të shtohet mbështetje për atributet GCC inline, cold, alias, used dhe section, si edhe të zgjerohet funksionaliteti i assembler-it inline dhe të zgjidhen problemet me strukturat që janë njëkohësisht të përputhura dhe të paketuar (p.sh., xregs_state). Një problem i rëndësishëm që kërkon punë manuale është pamundësia për të transformuar makrosat jo triviale të C në makrosat Rust dhe nevoja për të ri-definuar tipet, pasi C2Rust transformon tipet C në përkufizime në paketën libc, por kjo paketë nuk mund të përdoret në modulet e bërthamës.
Burimi: opennet.ru
