Simulator för alla i öppen källkod
Ett öppenkodsprojekt med stor potential ligger i startgroparna i ett polsk-svenskt projekt. Emul8 är en instruktionssimulator – ett utvecklingsverktyg som många mjukvaruutvecklare jorden runt skulle kunna dra nytta av.Simulatorn Emul8, som ska släppas som öppen källkod, kommer att göra en motsvarande plattform tillgänglig för alla.
– Vi har förstås ingenting idag som kan mäta sig med Simics, säger Jesper Hillberg, vd för svenska konsultbolaget Realtime Embedded (RTE).
En första version av Emul8 som öppen källkod skulle i bästa fall kunna släppas år 2014.
– Jag hoppas vi kan släppa kod så snart som möjligt, säger Michael Gielda, delägare av polska konsulten Antmicro.
– Man ska inte släppa öppen källkod för tidigt – då blir man översvämmad med kommentarer.
Emul8 föddes på Antmicro för ett par år sedan. Företaget finansierar utvecklingen med projektpengar från kunder, och ett par personer jobbar med utvecklingen av Emul8.
RTE brukade använda Simics och emulatorn Qemu för utveckling, och bidrog även till Simics konstruktion. Samtidigt såg företaget behovet av en öppen simulator. RTE fick höra talas om Antmicros projekt och de två inledde ett samarbete.
Från ett EU-finansierat KTH-lett projekt kallat Papp får RTE 600000 euro vilket finansierar lite mer än en tjänst som arbetar med Emul8.
Simulatorn används redan i flera interna projekt.
– Vi kan använda den med partners som vi har en tät dialog med, och som vi kan stötta. Men det är en stor skillnad mellan detta och att släppa verktyget för extern användning, säger Jesper Hillberg.
En av de tidiga användarna av Emul8 är Sics, som använder den för IoT-utveckling tillsammans med sin sensornätverkssimulator Cooja.
– Vi kan därmed till exempel testa interoperabilitet i heterogena sensornätverk för att se att implementationerna av protokoll fungerar lika bra på olika CPU-arkitekturer, säger Joakim Eriksson på Sics.
Med en simulator kan man inleda mjukvaruutveckling innan hårdvara existerar.
– Vi har använt den principen ganska länge. Man kan lätt simulera 40–50 noder utan att ha någon hårdvara alls. Och när det är trådlös kommunikation mellan noderna så är det i verkligheten extremt svårt att förstå hur själva nätverket mellan noderna byggs upp – något man relativt lätt kan illustrera och visualisera i en simulerad miljö, säger Joakim Eriksson.
Simulatorer ger en gudomlig insyn i systemet – du kan frysa tiden mellan två instruktioner och vrida på varje komponent och byte i jakten på en bugg eller en flaskhals. Buggar som är svåra att återskapa i fysisk hårdvara kan du i simulatorn spela upp i repris, om och om igen.
– Varje utvecklare av kommunicerande inbyggda system – speciellt trådlösa – skulle kunna tjäna massor av tid om de kunde simulera eller emulera och detaljstudera exekveringen där, istället för att försöka gissa sig till vad som är problemen genom att enbart köra på hårdvara och titta i koden, säger Joakim Eriksson.
Idag letar RTE efter fler finansieringspartners.
– Vi behöver en kund som driver utvecklingen. Annars kommer projektet att ta mycket längre tid, säger Jesper Hillberg.
– Kiseltillverkare borde vara intresserade av virtuella miljöer för sina chip för att deras kunder ska kunna utveckla, testa och verifiera i ett tidigt skede.
Artemisprojektet Papp handlar om att ta fram verktyg för virtuell utveckling, med ett öga mot att den virtuella utvecklingen ska vara bra på att verkligen förutsäga egenskaperna hos det framtida systemet.
På frågan om varför tiden är mogen för Emul8 just nu finns många svar.
System av idag blir allt mer distribuerade och mer komplexa vilket skapar en svårare utmaning för utveckling och test. Där kan simulatorer verkligen hjälpa till.
En simulator är ett projekt med många intressenter. Genom att driva Emul8 som ett öppet projekt – en idé som är i ropet – trollar man bort bekymmer som annars skulle finnas kring bevakandet av intellektuella rättigheter.