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
