Google har lenge vært en forkjemper for mer bruk av Rust fremfor C/C++, på grunn av minnesikkerhet og mindre risiko for sikkerhetshull. Blant annet har selskapet skrevet om firmware for beskyttede virtuelle maskiner (VM-er) for sitt Android Virtualization Framework.
Nå har to av Googles Android-utviklere, Ivan Lozano og Dominik Maier, skrevet et blogginnlegg der de oppfordrer andre som jobber med firmware til å skrive om kode fra C/C++ til Rust. Det skriver The Register.
– Du vil se hvor lett det er å øke sikkerheten med "drop-in" Rust-erstatninger, skriver Google-utviklerne.
At det er lett å skrive om til Rust, vil kanskje ikke alle være enige i. Vi har tidligere skrevet om utviklere som gir opp Rust fordi læringskurven er for bratt.
Krangler om Rust eller ikke
For et par uker siden skrev vi om krangling i Rust for Linux-prosjektet, etter at en av Linux' seniorutviklere var lei av at utviklere etter hans mening ble presset til å skrive om kode i det han kalte religionen Rust.
– Du vil ikke til å tvinge alle oss til å lære Rust! sa han.
Ifølge kilder skal denne utvikleren jobbe i Google.
Googles mer offisielle holdning til Rust ser imidlertid ut til å være at man bør skrive om til Rust.
– Rust tilbyr et minnesikkert alternativ til C og C++ med sammenlignbar ytelse og kodestørrelse. I tillegg støtter den interoperabilitet med C uten noe "overhead", skriver Lozano og Maier i sitt blogginnlegg.
Mener mange misforstår C++: – Språket har de kuleste jobbene
Google: – Kritisk rolle
Google har de siste årene jobbet med å migrere flere av sine Go- og C++-prosjekter til Rust.
Og i følge The Register er Rust-utviklerne dobbelt så produktive som utviklerne som programmerer i C++.
– Vi anerkjenner Rusts kritiske rolle i å bygge sikker og pålitelig programvare i alle deler av stacken, sier Lars Bergstrøm til The Register. Han er sjef hos Google for programmeringsspråk som brukes i Android, samt sitter i styret i Rust Foundation.
Bergstrøm sier de øker bruken av Rust mange steder i Google, som i Android og Chromium. Og nå altså innenfor embedded og firmware-utvikling.
«Sårbarheter i firmware-kode kan bli utnyttet på farlige måter av ondsinnede aktører.»
Ivan Lozano og Dominik Maier skriver i sitt blogginnlegg at det å få byttet ut C/C++ med et mer minnesikkert språk er spesielt viktig innenfor firmwareutvikling for mobiltelefoner. Telefonene har ofte mange ulike komponenter som håndterer ulike operasjoner, hver komponent med sin firmware – gjerne "legacy" kodebaser skrevet i C eller C++.
– Firmware fungerer som grensesnittet mellom maskinvare og programvare på høyere nivå. Mangelen på programvare-sikkerhetsmekanismer som er standard i høyere nivå programvare gjør at sårbarheter i firmware-kode kan bli utnyttet på farlige måter av ondsinnede aktører, skriver Lozano og Maier.