Simics
Simics är en simulator som utvecklats av svenska startup-bolaget Virtutech, sedermera uppköpt av Intel och Wind River[1]. Utvecklingen av Simics har fortsatt inom Intel och Wind River. Simics kan simulera ett komplett datorsystem på en så låg nivå att man kan köra ett helt oförändrat operativsystem i den virtuella maskinen, och det fungerar precis som om det hade körts på en riktig dator. Men till skillnad från den riktiga datorn har man i simulatorn full insyn i, och kontroll över exekveringen på lägsta funktionella nivån (enskilda maskininstruktioner). Simics tillåter användaren att spara maskinens hela tillstånd till fil ("checkpoint"). Vidare är simuleringen deterministisk, vilket gör att exekvering från samma starttillstånd alltid ger exakt samma exekveringsväg. Dessa två funktioner gör det möjligt att uppnå illusionen av att exekvera kod baklänges. Vill man exekvera en instruktion bakåt hoppar Simics tillbaka till närmast föregående mikro-checkpoint, för att sedan exekvera framåt till instruktionen före där man startade [2].
Simics simulerar ett antal olika CPU-arkitekturer, inklusive x86 (både 32- och 64-bitar), ARM, Sparc V8, UltraSPARC, Power Architecture, MIPS, IA64, H8. Utöver CPU:erna simuleras också all annan hårdvara i några typiska datorsystem, som till exempel hårddiskar, PCI-bryggor, nätverkskort, grafikkort med mera.
Kommersiell användning
redigeraSimics används för programvaruutveckling framför allt bland företag som tillverkar datorservrar, data- och telekomutrustning och rymd- och flygsystem (aerospace). Simics används för att kunna påbörja programvaruutveckling innan hårdvara finns tillgänglig, för att ge utvecklaren tillgång till en komplett programmeringsmiljö och testmiljö oberoende av tillgång till specifik hårdvara, och som ett avancerat avlusningsverktyg[3].
Bland projekt där Simics använts eller används finns porteringen av Microsoft Windows till AMD:s 64-bitars x86-arkitektur (processorfamiljen Opteron), utvecklingen av programvara för IBM:s Power6-baserade servrar, Ericssons CPP-system (3G-system), SwitchCores Xpeedium3-system, och NASA:s Orion[4].
Akademisk användning
redigeraSimics är tillgängligt gratis för akademisk användning (i binärformat) och används inom datorarkitekturforskning samt inom undervisning (framför allt operativsystemskurser). Flera forskningsramverk för att testa nya datorarkitekturidéer har utvecklats ovanpå Simics, bland andra GEMS från University of Wisconsin-Madison, Vasa från Uppsala Universitet samt SimFLEX från Carnegie-Mellon University.
Historik
redigeraSimics (tidigare skrivit SimICS) började utvecklas vid Swedish Institute of Computer Science, SICS, i början av 1990-talet, under ledning av Peter S. Magnusson. 1998 bildades Virtutech AB som en avknoppning från SICS för att kommersialisera Simics. 2010 köpte Intel upp Virtutech för att använda Simics internt. Extern försäljning av Simics sköts av Intels dotterbolag Wind River.
Referenser
redigeraNoter
redigera- ^ Peter Magnusson (2013). ”Foreword - Simics -- The Early Years”. Intel Technology Journal 17 (2). http://www.intel.com/content/www/us/en/research/intel-technology-journal/2013-volume-17-issue-02-intel-technology-journal.html.
- ^ Jakob Engblom (Juni 2013). ”Back to Reverse Execution - Wind River Blog”. Arkiverad från originalet den 5 juli 2016. https://web.archive.org/web/20160705215438/http://blogs.windriver.com/tools/2013/06/back-to-reverse-execution.html. Läst 4 juli 2016.
- ^ Jakob Engblom (30 maj 2016). ”Finding a kernel 1-2-3 bug by running Wind River Simics on Simics”. https://blogs.intel.com/evangelists/2016/05/30/finding-kernel-1-2-3-bug-running-wind-river-simics-simics/. Läst 4 juli 2016.
- ^ ”Virtutech® Simics® Selected to Provide Virtual Platform for NASA Orion”. http://www.businesswire.com/news/home/20090211005221/en/Virtutech%C2%AE-Simics%C2%AE-Selected-Provide-Virtual-Platform-NASA. Läst 4 juli 2016.