Propozimi për të diskutuar çështjen e shtimit në bërthamën Linux të veglave për zhvillim në gjuhën Rust

Nik Desanje (Nick Desaulniers), i angazhuar në Google për sigurimin i mbështetjes e ndërtimit të kernelit Linux duke përdorur kompilerin Clang dhe gjithashtu ndihmon në rregullimin e gabimeve në kompilerin Rust, propozoi të mbajë në konferencën Linux Plumbers Conference 2020 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 nuk e përjashtoi 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" pĂ«rgatitur 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 bindgen. 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 po zhvillojnĂ« 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 C2Rust pĂ«r pĂ«rkthimin e kodit C nĂ« Rust, po mbajnĂ« 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

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