Projekt Fake för Virtutech

Relevanta dokument
Projekt Fake för Virtutech

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002

Preliminär specifikation av projekt

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

Unix-miljöer i större sammanhang

Linuxadministration I 1DV417 - Laboration 3 Installation av ny hårddisk, RAID och logisk volymhantering

Föreläsning 2. Operativsystem och programmering

SKOLFS. beslutade den XXX 2017.

Projektet. TNMK30 - Elektronisk publicering

Projekt Fake för Virtutech

Grupputvärdering Gängbildning

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

CVS-Introduktion. CyberRymden Introduktion till CVS,17 november (27) Marcus Rejås

STADSLEDNINGSKONTORET SOA SDK IT-AVDELNINGEN VERSION 2.1. Läs mig först. Stockholms stad SOA-plattform. Sida 1 (5)

Avslutning. Kapitel Komprimering av filer

TDP003 Projekt: Egna datormiljön

Projektuppgift.

Pragmatisk programmering. Cyberrymden Marcus Rejås Pragmatisk programmering,16 december (29)

Introduktion till hårdvara, mjukvara och operativsystem

Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1

Projektuppgift - Biblioteket

Introduktion till programmering med hjälp av Lego Mindstorm

Inledande programmering med C# (1DV402) Introduktion till C#

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Skolverkets föreskrifter om ämnesplan för ämnet mjukvarudesign inom vidareutbildning i form av ett fjärde tekniskt år;

Versionshantering. Problem som uppstår i större (samt även mindre) projekt:

Webservice & ERP-Integration Rapport

Projektpresentation. Uppdragsgivare: Alex Olwal

Editering, Kompilering och Exekvering av Javaprogram

PROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Introduktion till programmering, hösten 2011

SKOLFS. beslutade den XXX 2017.

KTH Programutvecklingsprojekt med mjukvarukonstruktion 2D1362. Projektpresentation

Tfn Telephone. Kontr Checked. Skapa PDF-filer i Windows

Programvaror - Jo, tack, det vill vi ha...

Inlämningsarbete Case. Innehåll Bakgrund bedömning inlämningsarbete... 2 Inlämnade arbeten... 4

TDDC77 Objektorienterad Programmering

Projektuppgift - Gymmet

DDR PC SOFTWARE 2 RELEASENOTES VERSION 2.5. Swerob Service AB Global Robot Parts AB

Datorsystem och programmering

IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, ]

TMP Consulting - tjänster för företag

LABBINTRODUKTION. Laboranter: Kurs: - Sonny Johansson, Sigurd Israelsson. Utskriftsdatum:

Handbok Simond. Peter H. Grasch

Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,

Pragmatisk programmering. Cyberrymden Marcus Rejås Pragmatisk programmering,19 september (26)

Systembeskrivning. Systemskiss. Moduler.

TDP001: Handhavande av datormiljö, 4 hp. Ola Leifler, Institutionen för datavetenskap

Introduktion till git

Programvara på Nada. Johan Berglund Systemgruppen, Nada

Övning Installation av Gentoo och/eller Arch Linux

Portfolio Johan Brink

Open Source - Eller som vi säger, Fri programvara

LiTH Segmentering av MR-bilder med ITK Efterstudie MCIV. Anders Eklund. Status

Open Source - Eller som vi säger, Fri programvara

LABORATION 1 Pingpong och Installation av Server 2008 R2

Linux på skrivbordet - Myt eller möjlighet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Operativsystem och användargränssnitt

Instruktioner för att kunna programmera på skolans datorer

Inlämningsuppgifter, EDAF30, 2015

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING AV LEGO-ROBOT VIA NXC

Mobilt Efos och ny metod för stark autentisering

Slutrapport projektgenomförande - Aurora Innovation AB

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Linux som utvecklingsmiljö

Säkerställ er tillgänglighet Kommunikationsrapporteringsverktyg

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson

LAJKA-GUIDE. Så kör du. Windows på din Mac. 7 Fler spel och program 7 Enklare än Bootcamp 7 Körs direkt i OSX 7 Helt gratis

Mobilt Efos och ny metod för stark autentisering

Programmering. Hur, var, när och varför. 22 November. Lars Ohlén Tieto

Handbok för Nero ImageDrive

Tfn Telephone Kontr Checked. Revisionshistoria Revision history Rev Namn Name Datum Date Ändring Change

Webbservrar, severskript & webbproduktion

Linköpings Tekniska Högskola Institutionen för Datavetanskap (IDA), Software and Systems (SaS) (c) Klas Arvidsson

Specifikation för Projekt Alhanko

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

NSi Output Manager Vanliga frågor och svar. Version 3.2

Projektplan. LiTH Segmentering av MR-bilder med ITK Anders Eklund. Version 1.0. Status. Bilder och grafik projektkurs, CDIO MCIV LIPs

Allmänt om programvaror och filer i Windows.

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

Linuxadministration I 1DV417 - Laboration 7 SSH-magi och systemtrolleri. Marcus Wilhelmsson 6 mars 2013

DIG IN TO Dator och nätverksteknik

Handbok KMix Gaurav Chaturvedi Utvecklare: Christian Esken Utvecklare: Helio Chissini de Castro Utvecklare: Brian Hanson Översättare: Stefan Asserhäll

Mobilt Efos och ny metod för stark autentisering

Linux på skrivbordet - Myt eller möjlighet

CRM i molnet en integrationsutmaning? Fredrik Setterberg, COO

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

Mekanismer för mediadistribution

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

WEBBTEKNIK. Ämnets syfte

WEBBTEKNIK. Ämnets syfte

Projektuppgift - Banken

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Kommentarer till Skatteverkets förslag till föreskrifter (SKVFS 2013:X) om kontrollsystem till kassaregister

Transkript:

Kungl. Tekniska Högskolan NADA 2D1954, Programutvecklingsprojektet för D3 Period 3-4, 2003 Grupp A6, Uppdrag 30e för Virtutech Projekt Fake för Virtutech Projektpresentation Lars Dobos Marcus Johansson Fredrik Jönsson Christian Liljequist Andreas Nilsson Peder Sparell Jacob Tardell Revision: RCSfile: pres.tex,v Revision: 1.11 Date: 2003/05/15 15:37:57

2 Innehåll 1 Inledning 1 2 Deltagare 1 2.1 Ansvarsfördelning i gruppen..................... 1 3 Problembeskrivning 1 4 Genomförande 2 4.1 Datormiljö............................... 2 4.2 Metodik................................ 3 4.3 Kontakt med slutanvändare..................... 3 5 Funktioner 3 6 Användning 4 7 Referenser 4

1 1 Inledning Projektet Fake har utvecklat en drivrutin för filsystem för Virtutechs simulator Simics. Projektet är en del av kursen programutvecklingsprojektet (2D1954) för D3 våren 2003 med Lars Kjelldahl som kursledare. För att effektivt kunna designa, utveckla och testa nya hårdvaruplattformar och mjukvara till dessa behöver man kunna simulera designen i ett tidigt skede. Företaget Virtutech har utvecklat en sådan simulator som de kallar Simics. Den kan köras på flera plattformar och sedan simulera andra plattformar. Vårt bidrag är en drivrutin till Simics som gör det möjligt att nå värddatorns filsystem när man simulerar Windows 2000. Vi har nu utvecklat en körbar drivrutin som gör detta möjligt. 2 Deltagare I projektgruppen ingår Lars Dobos, Marcus Johansson, Fredrik Jönsson, Christian Liljequist, Andreas Nilsson, Peder Sparell, Jacob Tardell. Från uppdragsgivarens sida har Gustav Hållberg och Bengt Werner deltagit. Anna Stockhaus från Nada har varit tillgänglig som mentor. Vi vill passa på att tacka Anna, Bengt och Gustav för deras hjälp med projektet! 2.1 Ansvarsfördelning i gruppen Arbetet har fördelats enligt följande inom projektgruppen: Lars Dobos Programmering och koddokumentationen, Marcus Johansson Minnesanteckningar och programmering, Fredrik Jönsson Utvecklings- och driftmiljö samt programmering, Christian Liljequist Programmering, Andreas Nilsson Projektledning, design och kontakter med Virtutech samt programmering, Peder Sparell Programmering, Jacob Tardell Dokumentation, CVS, avtal och kontakter med kursledningen. Det är i huvudsak den indelning vi hade från början och den har fungerat under hela projektet. 3 Problembeskrivning För att effektivt kunna designa, utveckla och testa nya hårdvaruplattformar och mjukvara till dessa behöver man kunna simulera designen i ett tidigt skede, långt innan hårdvaran finns färdig. Med simuleringsteknik kan man korta ner utvecklingstiden och prova olika möjligheter vid det egna skrivbordet.

2 Det svenska företaget Virtutech har utvecklat en sådan simulator som de kallar Simics. Den kan köras på flera värdplattformar och sedan simulera andra plattformar. Den simulatorn har tidigare främst stött utveckling kring Suns plattformar eftersom man haft ett långtgående samarbete med dem. Simics stödjer även utveckling av andra plattformar och där har vi bidragit med en ny drivrutin till Simics som gör det möjligt att nå värddatorns filsystem från det simulerade operativsystemet när man simulerar Windows 2000. Sedan tidigare stödjer Simics anrop mot värdfilsystemet från Solaris och Linux utvecklade internt på Virtutech av Gustav Hållberg. Stöd för Windows saknades. Tidigare var man tvungen att montera en ISO-image för att kunna hämta in data. Någon möjlighet att skriva till värdfilssystemet från den simulerade miljön har inte funnits tidigare. Syftet med denna utökning har varit att ge möjlighet att anropa värdfilsystemet även från Windows. För att kunna uppnå detta behöver man en ny drivrutin för filsystemet i Windows 2000. 4 Genomförande 4.1 Datormiljö CVS användes för versionshantering och synkronisering av de olika projektmedlemmarnas aktiviteter. Såväl källkod som dokumentation och annat projektrelaterad förvarades i CVS, som låg på NADA:s datorer. Simics installerades på en dedikerad maskin, fake.nada.kth.se, som var tillräckligt snabb för att kunna simulera Windows utan att testfaserna av utvecklingen blev lidande med långa väntetider. Vi använde Solaris som operativsystem på maskinen. Åtkomst till maskinen gavs genom SSH. Utöver detta behövdes även en maskin som kunde sköta kompilering av själva drivrutinen. Detta sköttes av en Windows-maskin vilken vi fjärrstyrde genom SSH och rdesktop. Kompileringen automatiserades av GNU Make som kopierade filerna till maskinen, beordrade kompilering, samt hämtade tillbaka binärfil samt logg. Därefter byggdes en ISO-image av drivrutinen, som sedan kunde monteras i vår simulerade windows-miljö, för att därefter registreras och aktiveras i Windows. För koddokumentation användes Doxygen, som påminner i användning och funktionalitet om Javadoc, med den huvudsakliga skillnaden att även programspråket C hanteras. Doxygen kan utifrån programkoden och dess kommentarer dynamiskt bygga en webbaserad dokumentation, som ger en god överblick och är enkel att använda. Doxygen kan även generera dokumentation lämplig för utskrift, bland annat PDF. Make-skript användes också för att sköta publicering till projektplatsen på webben, generering av Doxygen-dokumentation av källkoden, samt andra aktiviteter som lämpade sig att skötas med skript. Projektplatsen på webben delades upp i en publik och en projektintern del. På den publika förvarades dokument relaterade till projektet. Den interna höll minnesanteckningar, deadlines och kontaktuppgifter.

3 4.2 Metodik Utvecklingsarbetet utfördes till stor del parvis. Andreas var oftast närvarande då han besatt störst insikt kring designfrågor och specifika detaljer. Ofta utvecklades först en grovhuggen implementation av en given programdel, som sedan successivt förfinades och integrerades i drivrutinen. Manuella tester utfördes efterhand för att utvärdera och felsöka specifika funktioner. Då en drivrutin inte har något naturligt grafiskt gränssnitt, handlade felsökningen ofta om att sätta brytpunkter samt skriva ut debugmeddelanden som gav information om exekveringsförloppet. Vår initiala ambition att följa vattenfallsmodellen för programmeringen har alltså i princip efterlevts, även om utvecklingsmetodiken delar vissa av de centrala koncepten inom Extreme Programming. Ett iterativt arbetssätt har inte varit lämpligt då kraven från uppdragsgivaren var mycket konkreta och inte undergick någon revision under projektets gång. Dokumentationen skrevs med utgångspunkt från de dokumentmallar som Karl Meinke visade på sin föreläsning. Inga revideringar av vare sig kravspecifikation eller designdokument har genomförts, vilket var väntat. 4.3 Kontakt med slutanvändare Gustav och Bengt på Virtutech har löpande informerats om arbetet via deras forum på Simics hemsida. Vi har även demonstrerat resultat för dem. Dock har vi valt att inte släppa koden innan vi har haft en färdig release. Vi har upplåtit kod och dokumentation till Virtutech enligt MIT:s licensvillkor. Dessa innebär att Virtutech är fria att använda kod och dokumentation hur de vill så länge de anger att vi har skrivit koden. 5 Funktioner Drivrutinen kan i dagsläget Registreras och monteras av en genom Simics simulerad Windows 2000- installation. Öppna filer från värdfilsystemet, på begäran av Windows. Läsa filer från värdfilsystemet, på begäran av Windows. Stänga filer som öppnats. Avmonteras på begäran av Windows. Detta möjliggör konkret att användare av Simics slipper gå omvägen att skapa ISO-filer med den data som vill läsas in i den simulerade Windows-miljön och montera dessa som CD-enheter i Windows. Nu existerar istället värdfilsystemet som en nätverksenhet i Windows. Funktionaliteten ovan uppfyller kraven satta i kravspecifikationen, undantaget möjligheten att lista innehållet i kataloger. Denna funktionalitet är påbörjad och i princip färdigställd, men är ännu ej fungerande. Drivrutinen är förberedd för att utökas med stöd för bland annat exekvering av filer, borttagning av filer samt skrivstöd för kataloger och filer.

4 6 Användning Vår filsystemsdrivrutin skall tillåta en användare av Simics att från det i Simics simulerade Windows, komma åt värdfilsystemet (det vill säga filsystemet i operativsystemet som Simics körs under). Detta skall ske genom att filsystemsdrivrutinen implementerar Simics värdfilsystemprotokoll samt kommunicerar med värdfilsystemobjektet i Simics. Sannolikt kommer Virtutech att integrera drivrutinen som någon sorts modul i Simics, vilket gör att installation av den till den simulerade Windowsinstallation sker enkelt på för Simics sedvanligt manér. För närvarande stödjer Simics anrop mot värdfilsystemet från Solaris och Linux. Tanken är att vår drivrutin skall ingå som modul i Simics. Montering av värdfilsystemet skall då ske genom att användaren ger ett kommando i Simics kommando-fönster, på liknande sätt som man i dagsläget monterar en cd-skiva i det simulerade Windows. Då skall användaren i den simulerade maskinen få tillgång till värdens filsystem genom en extra enhet (t.ex F:). 7 Referenser Fakes projektplats http://www.nada.kth.se/projects/proj03/fake/ Virtutech http://www.virtutech.com/ Simics http://www.simics.net/ Open Source License Index http://www.opensource.org/licenses/ MIT License http://www.opensource.org/licenses/mit-license.php Karl Meinkes dokumentationsmallar http://www.nada.kth.se/ karlm/pss05doctemplates.htm CVS http://www.cvshome.org/docs/manual/