Linux-next haru, mille alusel kujundatakse Linuxi 5.13 versioon, on kaasatud algne komponentide komplekt seadme draiverite arendamiseks Rust keeles. Eraldi on avaldatud dokumentatsioon Rust'i kasutamiseks Linuxi tuumas ning näidis tuumamoodul Rust keeles kirjutatud sümboolse seadme draiveriga. Koodi lisas Stephen Rothwell, Linux-next haru hooldaja. Tüüpiliselt sisaldab Linux-next haru koodi, mis on valmis järgmiseks tuuma muudatuste vastuvõtmisringiks, kuid hetkel pole selge, kas Rust'i tugi võetakse Linus Torvaldsi poolt vastu Linuxi 5.13 koosseisu, kuna kood ei ole läbinud laia arendajate arvustust.
Linuxi tuumude arendust Rusti keeles arutati aktiivselt eelmisel aastal, sealhulgas kaasates Linus Torvaldsi, kes ei välistanud sellist võimalust. Ideed toetas ka Greg Kroah-Hartman, kes vastutab Linuxi tuuma stabiilse haru toetamise eest. Rusti kasutamine draiverite arendamiseks võimaldab minimaalsete pingutustega luua turvalisi ja kvaliteetsemaid draivereid, vabanedes probleemidest nagu mälu juurde pääsemine pärast selle vabastamist, nullnäitajate de-referentsimine ja puhverduspiiride ületamine.
Rusti toe aktiveerimiseks linux-next harus on KConfig'i lisatud CONFIG_RUST ('Rust support' menüü 'General setup' all) seadistus. Kui see on lubatud, kontrollitakse, kas süsteemis on rustc kompilaator, ja selle olemasolu korral antakse võimalus lubada muid komponente, mis sõltuvad Rustist (näiteks menüü 'Kernel hacking' all ilmub 'Rust hacking' sektsioon). Rusti kasutamine vaadatakse kui võimalust, mis ei ole vaikimisi aktiivne ja ei too kaasa Rusti muutumist tuuma kohustuslikeks ehitus sõltuvusteks.
Cored komponentide koostamine Rustis on võimalik nii GCC-i kui ka Clangiga koostamisel. Rusti kasutamiseks tuumas on vajalik värskete ööversioonide rustc kompilaatori installimine, mis ei tohi olla vanem kui nightly-2021-02-20 (loodetakse lisada toimetamisversioonide tugi, kuid praegu on seotud mõnede eksperimentaalsete võimalustega). Samuti on vajalik süsteemis Rusti standardsete raamatukogude olemasolu, mis on tagatud rust-src paketiga, ja bindgen bindingsi generaator. Tugi on hetkel piiratud platvormidega x86_64 ja ARM64.
Allikas: opennet.ru
