Framework fir sécher Treiber fir de Linux Kernel an Rust ze schreiwen

De Josh Triplett, deen bei Intel schafft an am Comité ass deen d'Entwécklung vu Crates.io iwwerwaacht, schwätzt um Open Source Technology Summit agefouert en Aarbechtsgrupp, deen als Zil huet, d'Rust-Sprooch am Beräich vun der Systemprogramméierung op Paritéit mat der C-Sprooch ze bréngen.

An engem Aarbechtsgrupp, deen amgaang ass erstallt ze ginn, wäerte Rust Entwéckler, zesumme mat Ingenieuren aus Intel, Spezifikatioune virbereeden, déi d'Funktionalitéit definéieren, déi am Rust fir Systemprogramméiere muss implementéiert ginn. Systemprogramméiere erfuerdert dacks niddereg-Niveau Manipulatioun, sou wéi d'Ausféierung vun privilegiéierten Prozessorinstruktiounen an detailléiert Informatioun iwwer den Zoustand vum Prozessor ze kréien. Vun den ähnlechen Fonctiounen déi scho fir Rust entwéckelt ginn, gëtt Ënnerstëtzung fir onbenannt Strukturen, Gewerkschaften, Versammlungssprooch-Inserts (den "asm!" Makro) an de BFLOAT16 Floating Point Number Format bemierkt.

De Josh mengt datt d'Zukunft vun der Systemprogramméierung zu Rust gehéiert, an d'C Sprooch an de modernen Realitéite behaapt d'Plaz, déi an de leschte Jore vun der Assemblée besat war. Rust
net nëmmen Entwéckler entlaascht vun de Problemer, déi an der C Sprooch inherent sinn, déi entstinn wéinst der niddereger Aarbecht mat Erënnerung, awer bitt och d'Méiglechkeet et an der Entwécklung vu modernen Programméierungsparadigmen ze benotzen.

Wärend Diskussiounen Opféierungen
De Josh ass op d'Iddi komm fir d'Fäegkeet ze addéieren fir Chauffeuren am Linux Kernel an der Rust Sprooch z'entwéckelen, wat et méiglech mécht méi sécher a besser Chauffeuren mat minimalem Effort ze kreéieren, gratis vu Probleemer wéi Erënnerungszougang nom Befreiung, null Pointer-Dereferenzen a Pufferiwwerschëss.

De Greg Kroah-Hartman, dee verantwortlech ass fir de stabile Branche vum Linux Kernel z'erhalen, huet seng Bereetschaft ausgedréckt fir e Kader fir d'Entwécklung vun Treiber an der Rust Sprooch un de Kernel ze addéieren wann et wierklech Virdeeler iwwer C huet, zum Beispill, et wäert sécher sinn. Bindungen iwwer Kernel API. Zousätzlech betruecht de Greg dëse Kader nëmmen als Optioun, net als Standard aktiv, fir datt Rust net als Build Ofhängegkeet vum Kernel enthält.

Et huet sech erausgestallt, datt schonn e puer Teams an dëser Richtung schaffen. Zum Beispill, Entwéckler vun der Firma "Fësch an engem Barrel" virbereet e Toolkit fir gelueden Moduler fir de Linux Kernel an der Rust Sprooch ze schreiwen, mat enger Rei vun abstrakte Schichten iwwer d'Interfaces a Kernelstrukturen fir d'Sécherheet ze erhéijen. Schichten ginn automatesch generéiert op Basis vun den existente Kernel Header Dateien mat dem Utility bindgen. Clang gëtt benotzt fir Schichten ze bauen. Zousätzlech zu Interlayer benotzen déi versammelt Moduler de staticlib Package.

Parallel entwéckelt En anere Projet konzentréiert sech op d'Entwécklung vun Treiber fir embedded Systemer an IoT-Geräter, déi och Bindgen benotzt fir Schichten ze generéieren baséiert op Kernel Header Dateien. De Kader erlaabt Iech d'Sécherheet vum Chauffer ze verbesseren ouni Ännerungen am Kärel ze maachen - anstatt zousätzlech Isolatiounsniveauen fir Chauffeuren am Kernel ze kreéieren, gëtt proposéiert fir Probleemer an der Kompiléierungsstadium ze blockéieren, mat der méi sécherer Rust Sprooch. Et gëtt ugeholl datt sou eng Approche vun Ausrüstungshersteller gefuerdert ka sinn, déi propriétaire Chauffeuren séier entwéckelen ouni e richtegen Audit ze maachen.

Net all déi virgesinn Funktionalitéit ass nach ëmgesat ginn, awer de Kader ass scho ganz gëeegent fir Aarbecht a gouf benotzt fir e schaffende Chauffer fir den LAN9512 USB Ethernet Controller ze schreiwen deen am Raspberry Pi 3 Board geliwwert gëtt. C Sprooch. Et gëtt bemierkt datt d'Modulgréisst an d'Overhead vu Runtime Komponenten beim Entwecklung vun engem Chauffer am Rust onwichteg sinn, wat de Kader erlaabt fir Apparater mat limitéierten Ressourcen ze benotzen.

Source: opennet.ru

Setzt e Commentaire