EMBEDDED WORLD Har världens mest älskade programspråk drabbats av hybris? Efter att ha lyckats tränga ut C och C++ ur diverse systemnära kod höjer språket Rust nu ribban och utmanar självaste Ada i säkerhetskritiska system. Vi pratar med Florian Gilcher på Critical Section.
Det är tyska konsulten Ferrous Systems som vill se det hända. Bolaget formade till och med ett nytt dotterbolag i augusti för projektet – Critical Section. Projektet i sig har ett namn: Ferrocene.
Det som händer just nu är att projektet tar fram utvecklingsverktyg för Rust som ska kvalificeras för fordonssäkerhetsstandarden ISO 26262. Ambitionen är att så mycket som möjligt av verktygen som tas fram ska vara öppen källkod.
En säkerhetscertifiering är inget man snyter ur näsan direkt och målet beräknas vara nått först i slutet av 2022 eller början av 2023. Men det är nog en bra idé som Critical Section gör, att börja marknadsföra det redan nu. Inget hindrar dig från att börja bygga system i ”okvalificerade” Rust-verktyg i väntan på kvalificering.
Critical Section söker även partners. Så om du är aktiv inom säkerhetskritiska system så är Critical Section intresserat av din återkoppling. Det gäller även om du är verksam inom verksamhetskritiska system, som molntjänster.
Florian Gilcher |
– I molntjänster finns inte alls någon reglering som det gör inom säkerhetskritiska system, trots att driftproblem där är extremt kostsamma, konstaterar Florian Gilcher på Critical Section.
Han tror på ett uppvaknande inom fler inbyggnadsområden för behovet av verktyg med samma nivå av robusthet som inom säkerhetskritiska system. Det är därför projektet existerar.
Critical Section är även på jakt efter partners inom hårdvara och kompilatorer.
I hela fem år i rad har Rust toppat kodarforumet Stack Overflows lista över språk som älskas av sina utövare. Och det ligger med god marginal sist på listan över språk som hatas av sina utövare.
Rust är klart sist på listan över mest hatade programspråk och klart först på listan över mest älskade programspråk. För Visual Basic är det tvärtom, om du undrar. |
Rust är trots all kärlek fortfarande ett litet språk med bara tio år på nacken. I fjol kvalade det in på sista platsen, nummer 20, på Redmonks topplista över antalet språkbrukare.
Men språket bubblar uppåt. Amazon och Microsoft anställer just nu stora grupper Rustutvecklare. I februari bildades en stiftelse för Rust där vi utöver nämnda namn även hittar Huawei och Google.
Och inom inbyggda system?
– Vi ser en tillväxt där också, säger Florian Gilcher.
– Det dyker upp allt fler kodbibliotek för inbyggnadsplattformar. Arm gör investeringar i kompilatorer och stöd för Rust inom IoT och inbyggda system
Artikeln är tidigare publicerad i magasinet Elektroniktidningen. Prenumerera kostnadsfritt! |
Varje gång Critical Section lyckas övertyga en inbiten C-programmerare att testa ett modernare språk som Rust, är det en välgärning som kan tänkas leda till en generell kvalitetshöjning inom inbyggda system – se faktarutan nedan.
Men Critical Section vill nu alltså lägga ribban ännu högre och bjuda in Rust på det område som kallas säkerhetskritiska system. En nisch som idag ”ägs” idag av ett annat programspråk, Ada.
Florian Gilcher betonar att Critical Section inte förespråkar att redan fungerande Ada-kod – eller ens C-kod – ska rivas ut och skrivas om i Rust.
– Jag tror inte på stora rewrites. Mer på att skriva om mindre delar. Det som folk inte är bekväma med.Snarare än att skriva om saker som redan fungerar bra.
Hans förslag är att alla borde överväga Rust i nya inbyggnadsprojekt eller när nya funktioner adderas. Som ett robustare alternativ till C och snart kanske även som ett alternativ till Ada.
Vaccinerad mot buggarOavsett vilka direktiv och goda råd du ignorerar när du producerar programkod, så är Rust helt enkelt oförmögen att drabbas av vissa vanliga buggar som skulle kommit som ett brev på posten om du varit lika slarvig i C.
Rust är ett språk för systemnära programmering, som C, men det är ”immuniserat” mot minnesfel, som är en vanlig buggkälla i C-kod. Det är inte bara Critical Section som påstår detta om Rust, utan det var själva syftet med Rust när det konstruerades på webbläsarföretaget Mozilla för tio år sedan. I början av mars kom ett nytt vittnesmål – från Sverige. Någon har räknat ut att drygt hälften av säkerhetshålen i mästerhackern och Polhemsprisvinnaren Daniel Stenbergs filöverföringsbibliotek Curl inte skulle ha existerat om det varit skrivet i Rust istället för C. Daniel Stenberg kunde bara stämma in. Han gjorde snabbt en egen koll som bekräftade att merparten av kodbuggarna hade varit just den typ av minnesfel som Rust trollar bort. Minnesfel av det här slaget vi pratar om låter program skapa kaos genom att tappa kontrollen över vem som äger olika minnesområden. Programmen läser och skriver i varandras minne. C är känt för denna svaghet. Rust löser problemet genom att offra resurser på striktare övervakning. Det sker på ett sätt som dessutom som bonus bäddar för enklare och säkrare concurrency – att köra oberoende program samtidigt på samma processor, vilket är något som exempelvis operativsystem måste kunna hantera. |