Kungl. Tekniska Högskolan NADA 2D1954, Programutvecklingsprojekt för D3 Period 3-4, 2003 Grupp A6, Uppdrag 30e för Virtutech Projekt Fake för Virtutech User Requirements Document (URD) Lars Dobos Marcus Johansson Fredrik Jönsson Christian Liljequist Andreas Nilsson Peder Sparell Jacob Tardell Revision: RCSfile: urd.tex,v Revision: 1.9 Date: 2003/03/04 22:24:44
2 1 Introduktion 1.1 Syfte Detta dokument beskriver de användarkrav som ställs på den filsystemdrivrutin som skall utvecklas. Syftet med detta dokument är att begränsa projektets omfattning och att styra projektet mot kundens krav. 1.2 Ramar för programvaran Filsystemdrivrutinen utgör ett gränsnitt mellan Windows och Simics. Windows ges möjlighet att nå filsystemet utanför den simulerade miljön. 1.3 Förklaringar Filsystem utökning av operativsystemet. ger ett generiskt gränssnitt för tillträde till filer, oavsett var de ligger - på nätverket, disk osv IFS Kit en samling.h-filer för programmering av filsystemet Simics simulator från Virtutech för att simulera en mängd skilda processorplattformar 1.4 Referenser För de tekniska termer som förekommer i texten där ingen förklaring ges, se följande referenser: Virtutech - http://www.virtutech.com/ Bosse i Umeå - http://www.acc.umu.se/~bosse/ Nagar, R., (1997) Windows NT File System Internals: A Developer s Guide, O Reilly & Associates, Inc., Sebastopol, CA 2 Generell beskrivning av produkten 2.1 Produktperspektiv En användare av Virtuetech Simics, som är en CPU-simulator, skall kunna använda ovanstående drivrutin i Simics. Filsystemdrivrutinen skall tillåta en användare av Simics att från Windows, körandes inne i Simics, komma åt värdfilsystemet (det vill säga filsystemet i operativsystemet som Simics körs under). Detta skall ske genom att filsystemdrivern implementerar Simics värdfilsystemprotokoll samt kommunicerar med värdfilsystemobjektet i Simics. Värdfilsystemsprotokollet och värdfilsystemobjektet är sedan tidigare definierat av Virtutech (hostfs-protocol). Värdfilsystemobjektet finns implementerat i Simics.
3 2.2 Generell funktionalitet För närvarande stödjer Simics anrop mot värdfilsystemet från Solaris och Linux. Denna utökning är tänkt att fungera som en utökning av Simics för att ge möjlighet att anropa värdfilsystemet även från Windows. En användare av produkten som den beskrivs i punkt 2.1 skall i första hand kunna utföra följande operationer: 1. Montera filsystemet 2. Öppna roten till filsystemet 3. Listning av filerna i en katalog på värdfilsystemet 4. Öppna existerande filer i trädet 5. Kunna läsa innehållet i dessa filer 6. Stänga öppna filer 7. Avmontera filsystem Inom en utökad, önskad funktionalitet ska användaren kunna utföra följande operationer, högst prioritet först: 1. Skrivstöd Möjligheten att kopiera nya filer til värddatorns filsystem, i första hand utan överksrivning av gamla filer. D.v.s. i första hand motsvarigheten till POSIX-anropet create och i andra hand till truncate, givet att dessa har motsvarigheter i Windows. 2. Redigeringsstöd Möjlighet att radera filer och kataloger från värddatorns filsystem. 3. Exekveringsstöd Möjlighet att exekvera program direkt från värddatorns filsystem, utan att först behöva kopiera den till den simulerade datorns lokala filsystem. Stöd skall finnas för att ha både exekverbara filer (.exe) samt dynamiska länkbibliotek (.dll) på värdfilsystemet. 4. Skapa kataloger 5. Skapa länkar i trädet 2.3 Generella begränsningar för produkten Denna produkts framtagande utförs som en del av kursen Programutvecklingsprojekt (2D1954) för D3 på KTH vårterminen 2003. Därför är produktens utveckling begränsad till den tidsperiod som kursen ges under. Kursen slutar under maj 2003. På grund av ovanstående anledningar skall produktens funktionaliteter begränsas enligt följande: Endast stöd för reguljära filer, d.v.s. för vilka S_ISREG(m) är sant. Produkten förväntas endast fungera när värddatorn kör antingen Sun Solaris 8 eller Linux 2.4. Dock bör Windows has i åtanke.
4 Inga prestandakrav Inga säkerhetskrav Ingen minnesmappning av filer Inget stöd för cache-manager eller virtuellt minne för Windows NT Inget stöd för quota Inget stöd för multipla strömmar 2.4 Användarinformation Produkten kommer att användas av personer som använder Simics. En person som använder produkten behöver vara bekant och insatt i hur Simics används och fungerar, då produkten kommer användas som en del av Simics. I övrigt ställs inga ytterliggare krav på användaren. 2.5 Operationsmiljö Den värddator som Simics använder tillhandahåller den fysiska miljö där filer som hanteras av produkten är lagrade. Denna värdmiljö kan vara hårdvara från Sun, Intel eller andra system som stöds av Simics. Produkten skall fungera under Windows 2000 SP3 och Simics 1.6.1. Produktens gränsytor avgränsas av hostfsobject i Simics respektive ntifs i Windows. Simics hostfs finns dokumenterat i dokument från Virtutech. ntifs finns beskrivet i litteraturen. Gränsytorna är låsta till den version för respektive produkt ovan. 3 Specifika krav 3.1 Funktionalitetskrav Produkten skall ha följande specifika krav på funktionalliteten. I första hand: Kommandon som förväntas fungera är cd,dir samt copy där destinationsfilen ligger på den simlerade datorns lokala filsystem. Filsystemet skall följa Simics anropsmodell. Öppning av filer/kataloger sker med fopen Läsning av filer sker med fscanf, fgetc. Stängning av filer hanteras korrekt, cachat data skrivs ned Produkten skall stödja katalogstrukturer djupare än en nivå. Listning av filer i kataloger skall kunna ske i Windows utforskare. I andra hand: Tillåta öppnandet av filer i skrivläge(vid nyskapande av filer) Skriva till filer med fputc, fprintf.
5 3.2 Specifika begränsningar Inget stöd för minnesmappning av filer. Filaccess sker genom fgetc respektive fputc. 3.3 Dokumentation Dokuementationen förekommer i tre typer. All kod skall dokumenteras löpande enligt Javadocs kodkonvention (även om vår kod är skriven i C). Den dokumentationen skall vara på engelska och följa med programkoden. Projektstyrningsdokumenten skall i möjligaste mån följa de mallar som Karl Meinke tillhandahöll på sin föreläsning. Dessa dokuement skall skrivas på svenska. Till det kommer dokument som beskriver olika aspekter av filsystem. Dessa är interna för projektgruppen. 4 Ändringar Nedan kommer ändringar efter den 4 mars 2003 att noters. Ändringar skall även loggas i CVS när originalfilen ändras.