Nik Desanje (), i angazhuar në Google për sigurimin e ndërtimit të kernelit Linux duke përdorur kompilerin Clang dhe gjithashtu në rregullimin e gabimeve në kompilerin Rust, të mbajë në konferencën një sesion për të diskutuar mundësinë e zhvillimit të komponentëve të kernelit në gjuhën Rust. Nik organizon një mikro-konferencë që i kushtohet LLVM dhe beson se do të ishte mirë të diskutohej aspektet teknike të integrelimit të mbështetjes për Rust në kernel (ka përgatitur tashmë një prototip funksional për KBuild) dhe të kuptohet nëse është e nevojshme të shtohet një mbështetje e tillë dhe çfarë kufizimesh për përdorimin e Rust duhet pranuar.
Kujtojmë se gjatë një diskutimi të fundit në konferencën "Open Source Summit and Embedded Linux" Linus Torvalds mundësinë e zhvillimit të lidhjeve për zhvillimin e nën-sistemeve të pa-bazë të kernelit (siç janë, për shembull, drejtuesit) në gjuhë si Rust. Mundësia e zhvillimit të drejtuesve në gjuhën Rust do t'i lejonte të krijoheshin drejtues të sigurtë dhe më cilësorë me përpjekje minimale, duke eliminuar probleme si qasja në memorien pas lirimit të saj, dereferenca e pikave të null dhe shkelja e kufijve të tamponit. Të paktën disa projekte të jashtme tashmë ekzistojnë për realizimin e një mundësie të tillë:
- Zhvilluesit nga kompania "Fish in a Barrel" instrumenti për krijimin e moduleve të ngarkueshme për bërthamën Linux në gjuhën Rust, duke përdorur një grup abstrakt ndërfaqesh dhe strukturash bërthamore për të rritur mbrojtjen. Ndërfaqet gjenerohen automatikisht mbi bazën e skedave të titujve ekzistues të bërthamës me anë të utilitarit . Për ndërtimin e ndërfaqeve përdoret Clang. Modulet që ndërtohen përveç ndërfaqeve përdorin paketën staticlib.
- KĂ«rkuesit nga Universiteti i KinĂ«s nĂ« Hong Kong njĂ« projekt pĂ«r zhvillimin e drejtuesve nĂ« Rust pĂ«r sisteme tĂ« ankoruara dhe pajisje tĂ« Internetit tĂ« gjĂ«rave, i cili gjithashtu pĂ«rdor bindgen pĂ«r tĂ« gjeneruar shtresa mbi bazĂ«n e skedave tĂ« kernelit. Ky kornizĂ« lejon arritjen e rritjes sĂ« sigurisĂ« sĂ« drejtuesve pa ndryshuar kernelin â nĂ« vend qĂ« tĂ« krijohen nivele tĂ« reja izolimi nĂ« kernel pĂ«r drejtuesit, propozohet bllokimi i problemeve 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Ă« drejtues proprietarĂ« nĂ« ngutje pa kryer audite tĂ« duhur.
- Zhvilluesit e kornizës për përkthimin e kodit C në Rust, eksperimentet për transformimin e moduleve të bërthamës me ndryshime minimale manuale. Ndër problematikat e shënuara është përdorimi në shumë pjesë të bërthamës të kodit, i cili përdor zgjerimet GCC, të cilat ende nuk mbështeten në C2Rust. Për të zgjidhur këtë problem, në C2Rust planifikohet të shtohet mbështetje për atributet GCC inline, cold, alias, used dhe section, si dhe të zgjerohet funksionaliteti i assemblit inline dhe të zgjidhen problemet me strukturat që janë njëherësh të rreshtuara dhe të paketuar (p.sh., xregs_state). Një nga problemet thelbësore që kërkon punë manuale është pamundësia për të transformuar makros të vështira të C në makros Rust dhe nevoja për të rimarrë tipet, pasi C2Rust transformon tipet C në definicionet në paketën libc, por kjo paketë nuk mund të përdoret në modulet e bërthamës.
Burimi: opennet.ru
