Projekt Fake för Virtutech

Storlek: px
Starta visningen från sidan:

Download "Projekt Fake för Virtutech"

Transkript

1 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 Designdokument Lars Dobos Marcus Johansson Fredrik Jönsson Christian Liljequist Andreas Nilsson Peder Sparell Jacob Tardell Revision: RCSfile: design.tex,v Revision: 1.9 Date: 2003/05/16 11:32:36

2 2 Innehåll 1 Inledning Syfte Begränsning Termer Referenser Dokumentstruktur Övergripande beskrivning Relation till andra projekt och moduler Krav Funktionella krav Prestandakrav Säkerhetskrav Synkroniseringskrav Interferrenskrav Systemkrav Funktionalitet i implementationen Övergripande design 3 5 Implementation Sammanfattning av exekveringsflödet Anropsflöde för inladdning Anropsflöde för öppning av filer Anropsflöde vid läsning Anropsflöde vid listning Operativsystemets moduler FakeFS funktioner (ett axplock) FakeFS strukturer DEVICE_EXTENSION FCB CCB Operativsystemets funktioner Operativsystemets strukturer Implementering Nolloperations filsystemsfunktioner Betydande filsystemsfunktioner DriverEntry DriverUnload FakeFsIrpCreate FakeFsIrpClose FakeFsIrpWrite FakeFsIrpCleanup FakeFsIrpDeviceControl FakeFsIrpDirectoryControl FakeFsIrpQueryInformation

3 3 7.5 FakeFsIrpQueryVolumeInformation FakeFsIrpRead FakeFsIrpShutdown Noll-operation Hjälpfunktioner FakeFsLocateFcb FakeFsFreeFcb FakeFsAllocateCcb Simicsspecifika Hjälp till Simics HostFs HostFsLookupRecursive HostFsInitialize HostFsUninitialize Implementationssteg 13 9 Referenser för filsystemet Kort referenslista av funktioner och strukturer

4 1 1 Inledning 1.1 Syfte Detta dokument är ett designdokument av Windows 2000/XP-implementationen av Simics HostFS filsystem. En tillhörande och utförlig kravspecifikation finns tillgänglig i User Requirements Document. 1.2 Begränsning Designdokumentet är begränsat till att beskriva implementationen av FakeFS, det innefattar ingen fördjupande beskrivning av filsystem eller operativsystem generellt. Dokumentet fordrar en god kännedom om operativsystem generellt. Dokumentet ntintro.pdf ger en inblick i arkitekturen bakom Windows NT specifikt, därutöver finns ett par referenser till andra källor i slutet av dokumentet. 1.3 Termer Simics Simulatorn som simulerar i386 och kör Windows Simics HostFS Ett plug-in till Simics som erbjuder simuleringen att nå ut i värddatorn FakeFS Projektgruppens filsystem, inbegriper FakeFS Module och HostFS Module. HostFS Module Klientdelen till Simics HostFS som används av FakeFS för att anropa Simics HostFS. Vidarebefordrar anrop från FakeFS Module till Simics HostFS. Har bara som uppgift att förenkla anropen till Simics HostFS. FakeFS Module Klientdelen till I/O Manager som vidarebefordrar filanrop till HostFS Module. I/O Manager Tillhör kerneln i Windows. Tillhandahåller ett generiskt gränssnitt för alla filsystem i Windows. I/O Manager anropar FakeFS för att nå värddatorn. 1.4 Referenser Designen av FakeFS är hårt reglerat av de regler som specificeras av operativsystemet respektive HostFS-protokollet. En beskrivning av regelverket ligger utanför ramen för designdokumentet. En del beskrivs utförligt i dokumentet ntintro.pdf. En detaljerad beskrivning av operativsystemets regelverk finns att tillgå i Devicedriver Development Kit ( respektive Installable File System Kit ( En specifikation av Simics HostFS-protokollet finns att tillgå i dokumentet virtu_pro.txt. 1.5 Dokumentstruktur Designdokumentet är uppdelat i flera avsnitt. De inledande två avsnitten ger en övergripande beskrivning av funktionaliteten. Därefter följer ett avsnitt med

5 2 övergripande design och en redogörelse över de vanligaste meddelandeflödena. Dokumentet avslutas med en mer detaljerad specificering av gränssnitten samt referenser till informationsresurser som används vid implementationen. 2 Övergripande beskrivning Dokumentet reglerar endast designen av de grundläggande kraven på filsystemet. De grundläggande kraven innefattar ett read-only filsystem, utan möjlighet att manipulera värddatorns filsystem. En utförlig kravspecifikation finns tillgänglig i User Requirements Document. FakeFS har en enkel uppgift - att underlätta arbetet med att kopiera in filer i en simulerad Windows-miljö i Simics. Simics har som uppgift att simulera en verklig datorplattform, inklusive hardware och firmware för plattformen. Svårigheten är att det saknas ett smidigt sätt att flytta in filer i simuleringen. Avsikten med FakeFS är att göra det möjligt att anropa ett filsystem utanför simuleringen, exempelvis värddatorns filsystem, och att därefter kunna kopiera in filer och kataloger till simuleringen. 2.1 Relation till andra projekt och moduler Filsystemet är starkt beroende av gränssnitten som tillhandahålls av operativsystemet och av Simics. Gränssnittet till operativsystemet följer definitionen för filsystem till NT Inga avgörande förändringar har skett sedan dess. Gränssnitten är alltid in development, vilket innebär att filsystemen kan förlora kompabilitet med Windows. Beroendet mot Simics är enklare - en ny version av Simics HostFS måste vara bakåtkompatibel med existerande versioner. 3 Krav 3.1 Funktionella krav För HostFS-modulen gäller att hela stödet för read-only mode är implementerat. Detta inkluderar, men är inte begränsat till: uppslagning av filnamn - Lookup öppna fil - Open stäng fil - Close läsa filinnehåll - Read lista kataloginnehåll - ReadDir fråga attribut - GetAttr fråga volym - VfsStat För filsystems-modulen är kraven striktare, här krävs att alla funktioner implementeras. Det finns dock möjlighet att returnera en felkod för de funktioner som saknas. Detta berör främst write-stödet (skapa fil, ta bort filer, skriva filinnehåll).

6 3 3.2 Prestandakrav Det finns inga prestandakrav. 3.3 Säkerhetskrav Det finns inga säkerhetskrav, annat än de stabilitetskrav som krävs för att uppfylla synkroniseringskravet. 3.4 Synkroniseringskrav Filsystemet bör synkronisera alla filoperationer, så att inga obestämda tillstånd uppträder. 3.5 Interferrenskrav Filsystemet ska ha ett tillstånd som matchar den simulerade miljön, den ska inte påverkas av värddatorns miljö. Filsystemet ska i möjligaste mån skrivas så att förloppen ska vara deterministiska. 3.6 Systemkrav FakeFS exekverar under Windows i en simulering av i386 under Simics. Det krävs att Simics har HostFS-modulen inladdad. Windows 2000 ska vara installerad i simuleringen. 3.7 Funktionalitet i implementationen Filsystemet skrivs i C. Filsystemet är uppdelat i två moduler, dels filsystemslogik, dels simics hostfslogik. Meddelandeflödet börjar i operativsystemet (som en följd av disk I/O) och propagerar in i filsystemslogiken. Filsystemslogiken översätter meddelandet och skickar det vidare till HostFS-logiken som trycker ut meddelandet till Simics HostFS. Simics HostFS fångar upp meddelandet och utför anropet i värddatorns filsystem. Programkoden ska följa samma indelning som modulerna. Callbacksen för filsystemslogiken är placerad i filen irps.cpp, medan Simics HostFS återfinns i hostfs.cpp. Stödfunktioner för filsystemslogiken placeras i mainfs.cpp. Nolloperationsfunktioner placeras i fastio.cpp. Filsystemsfunktionerna namnges med FakeFS som prefix, t ex FakeFsIrpRead för exempelvis läsanropet. Simics HostFS-stödet namnges med HostFS som prefix, exempelvis HostFsHandshake som används för att initiera Simics HostFS. 4 Övergripande design HostFS-modulen hanterar all kommunikation med Simics HostFS. HostFS består av stödfunktioner som används av filsystemslogiken för att expediera anropen. Det erbjuder en abstraktion av Simics HostFS. En förändring i protokollet kommer inte att påverka filsystemet, utan isoleras helt till HostFS-modulen.

7 4 Filsystemsmodulen, kallad FakeFS-modulen, implementerar gränssnittet till operativsystemet. Dess struktur är totalt reglerad av operativsystemets krav som gäller för alla filsystem. 5 Implementation Implementationen tar sin början i de grundläggande FakeFS-funktionerna. Avsikten är att få en möjlighet att verifiera att designen ser ut att fungera. Därefter implementeras hela HostFS-modulen, så att gränssnittet till Simics kan verifieras. Slutligen implementeras de återstående FakeFS-funktionerna och hela filsystemet verifieras. 5.1 Sammanfattning av exekveringsflödet Vid inladdning av drivrutinen anropas DriverEntry för att ge möjlighet att initiera drivrutinen. OS:et förväntar sig att filsystemet ger tillbaka adresser till alla de funktioner som operativsystemet kommer att anropa för att utföra filanrop (callback-funktioner). De mest centrala callbacksen är FakeFsIrpCreate, som anropas vid öppning av en fil eller katalog FakeFsIrpRead, som anropas vid läsning från fil FakeFsDirectoryControl, som anropas vid listning ur ett bibliotek När initieringen i DriverEntry är avklarad, kommer OS:et att anropa filsystemet över dessa funktioner. Gemensamt för de tre funktionerna är typdeklarationen: NTSTATUS FakeFsIrpCreate( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ) Beskrivning av parametrar DeviceObject är pekaren till filsystemets enhet i namnrymden. Endast DeviceObject->DeviceExtension är av intresse, den pekar ut c-strukturen (DEVICE_EXTENSION). Där placeras data som rör Simics, filsystemet och resten av miljön. Operativsystemet har inget intresse av DeviceExtension. Irp är hårdare reglerat; den innehåller parametrar för just det här filanropet. De viktigaste medlemmarna Irp->UserBuffer är adressen som användaren skickade. Därifrån läser eller skriver filsystemet. IrpSp är den sista, viktiga pekaren i Irp. Den anger parametrar till drivrutinen Skillnaden mellan Irp och IrpSp är att Irp innehåller parametrar för alla drivrutiner i enhetsstacken, medan IrpSp bara innehållet parametrar för just den här drivrutinen. Två av variablerna i IrpSp är, IrpSp->Read.ByteOffset, som anger var i filen som skrivning/läsning samt IrpSp->Read.Length som anger hur stor UserBuffer är. En mer utförlig beskrivning finns i ntintrot.ps i CVSn.

8 5 5.2 Anropsflöde för inladdning Filsystemets main heter DriverEntry, som anropas av IO Manager när användaren vill ladda in filsystemet. All initiering av filsystemet sker i DriverEntry, däribland sätter DriverUnload-pekaren i DriverObject, medför att drivrutinen kan laddas ur anropar FakeFsInitIrpCallbacks för att sätta de verksamma funktionspekarna anropar FakeFsInitFastIoCallbacks för att sätta pekare till noll-funktionerna anropar IoCreateDevice och FsRtlRegisterUncProvider för att registrera filsystem anropar HostFsInitialize för att initiera Simics HostFS-objektet i minnet FakeFsInitIrpCallbacks har till uppgift att registrera alla de funktioner som tillhör MajorFunctions i DriverObject genom att sätta funktionspekarna (callbacksen) till filsystemets funktioner. FakeFsInitFastIoCallbacks fyller samma funktion, men med tillägget att pekarvektorn måste allokeras i minnet först. HostFsInitialize har till uppgift att låsa Simics HostFS-adressen på minnesbussen. Det görs genom MmMapIoSpace, som ger en adress för att kommunicera med Simics HostFS. HostFS-objektet finns tillgängligt på en hög adress i bussrymden, men översätts med MmMapIoSpace till en adress som är bussoberoende. Ett problem är att minnesadressen som används av HostFS ingår i ett minnesspann som är reserverat av en annan drivrutin (hal.dll). Minnesadressen ockuperas ändå. 5.3 Anropsflöde för öppning av filer I/O Manager anropar FakeFsIrpCreate för att öppna filer i filsystemet. Huvuduppgiften är att bestämma om filen redan är öppen, alternativt vilken identitet (nodnummer) som filen tilldelats i Simics HostFS. Skillnaden mot Unix är att filsystemet självt bestämmer hur sökvägen utformas, och hur den ska tolkas (vilket sker i HostFsLookupRecursive). Lämpligtvis tolkas den från vänster till höger, med slash och backslash som namnseparering. Pseudokoden ger ett enkelt flöde: 1. anropar HostFsLookupRecursive för att få ett nodnummer till filnamnet 2. anropar FakeFsLocateFcb för att få ett matchande filkontrollblock, Fcb, till noden 3. anropar FakeFsAllocateCcb för att få ett eget, privat, filhandtag 4. sätter FileObject->FsContext till adressen hos Fcb:n 5. sätter FileObject->FsContext2 till adressen hos Ccb

9 6 5.4 Anropsflöde vid läsning I/O Manager anropar FakeFsIrpRead för att läsa öppnade filer. Irp->FileObject->FsContext är identisk FsContext som i FakeFsIrpCreate. Irp->FileObject->FsContext2 är också densamma som förut. Därigenom finns både Fcb:n (FileObject->FsContext) och Ccb (FileObject- >FsContext2) tillgängliga vid läsningen. I IrpSp->Read.ByteOffset anges var i filen som läsningen ska ta sin början. I IrpSp->Read.Length finns längden på den buffer som användaren skickade. Irp->UserBuffer ger oss en pekare till bufferten som användaren skickade. De parametrar som finns tillgängliga: Pekare till bufferten som vi skriver till Filens nodnummer Offset i filen Längden på bufferten Först valideras bufferten genom att anropa ProbeForWrite. Lyckas anropet, kan bufferten betraktas som giltig. Därefter återstår själva anropet till Simics HostFS-objektet (genom HostFsRead). I HostFsRead finns stöd för att hugga upp anropet i mindre delar, då Simics HostFS-modulen bara stödjer paket med 1024 bytes i varje. 5.5 Anropsflöde vid listning I/O Manager anropar FakeFsIrpDirectoryControl för att lista filerna i en katalog. Irp->UserBuffer pekar på en buffert dit filnamnen ska skrivas. Irp->FileObject->FsContext är Fcb:n till katalogen Irp->FileObject->FsContext2 är Ccb:n till katalogen IrpSp->Parameters.QueryDirectory.FsInformationClass anger vilken typ av information som efterfrågas (bara filnamn, filstorlek etc) IrpSp->Parameters.QueryDirectory.FileIndex anger index relativt fillistan i den aktuella katalogen Genom att först iterativt fylla bufferten med HostFsReadDir tills bufferten är full, därefter lagra undan sista filindexet (som fick plats) i Ccb:n, så kan användaren åter anropa DirectoryControl för att komplettera listningen (tills alla poster har fått plats i bufferten).

10 7 6 Operativsystemets moduler Filsystemet byggs upp av ett par element Filsystemets funktioner Filsystemets strukturer Operativsystemets funktioner Operativsystemets strukturer 6.1 FakeFS funktioner (ett axplock) DriverEntry, första anropet till drivrutinen FakeFsIrpWrite, hit anropar OS:et när den vill skriva till en fil FakeFsFastIoXXX, måste finnas, men returnerar felkod HostFsLookup, gränsyta mot Simics HostFS, ger ett id för filen HostFsHandshake, handskakar med Simics HostFS-objektet, först av allt 6.2 FakeFS strukturer DEVICE_EXTENSION Typiskt variabler som rör filsystemet som helhet Adress till Simics HostFS-objektet i minnet Länkad lista till alla öppna filer, FCB, filkontrollblock, varje öppen fil har ett (och endast ett) filkontrollblock FCB Representerar en öppen fil i minnet. Varje fil kan högst ha en FCB i minnet samtidigt. hnode (ett unikt nummer, som tilldelas filen av Simics HostFS) Referensnummer, hur många har öppnat den här filen, (viktigt för att bestämma när vi kan stänga filen) Attribut, storlek Länkad lista till alla CCB:er för filen - det vill säga kopplingen mellan filkontrollblocket och filhandtaget CCB Skapas för vid varje öppning av filen, tillhör ett visst FCB. filoffset (varje fopen ska ju kunna fseek:a utan att störa varandra) pekare till filkontrollblocket

11 8 6.3 Operativsystemets funktioner IoCreateDevice, för att deklarera filsystemet i namnrymden. RtlInitUnicodeString, för att konvertera en textsträng till en unicodesträng MmMapIoSpace, så att vi kan lägga beslag på HostFS-objektet. Skyddar också objektet från andra, klåfingriga program IoGetCurrentIrpStackLocation, ger parametrar till en viss drivrutin i stacken MmGetSystemAddressForMdlSafe, ger en pekare till minnet som användaren CcInitializeCacheMap, ger stöd för minnesmappade filer asm { asm _emit 0x87 asm _emit 0xDB }, triggar Simics till ett avbrott. Mycket praktiskt. 6.4 Operativsystemets strukturer DRIVER_OBJECT, representerar drivrutinen i minnet, initieras med callbacks så att OS:et kan återanropa filsystemet DEVICE_OBJECT, är filsystemets fasta punkt i namnrymden. Viktigast är DeviceExtension (som definieras av utvecklaren) IRP, används av I/O Manager för att skicka parametrar till en enhetsstack IO_STACK_LOCATION, utgör en del av IRP:n, innehåller de parametrar som berör en specifik drivrutin i enhetsstacken. Listan med IO_STACK_LOCATION:s är lika djup som enhetsstacken. Varje drivrutin har varsin plats i högen 7 Implementering Filer kan öppnas på två sätt, dels genom direkta läs- och skrivoperationer (typiskt fscanf), dels minnesmappat (där datafilen finns på en plats i minnet, finns generellt beskrivet på För att filer ska kunna öppnas minnesmappade, ska ett antal cachehanteringsfunktioner finnas. De behöver dock inte gör något. FakeFS kommer att stödja minnesmappade filer, men bara returnera FALSE eller STATUS_SUCCESS. Därefter kommer Cache Manager att anropa filsystemet med IRP istället för cacheanrop. Noll-funktionerna implementeras i filerna fastio.h respektive fastio.cpp. 7.1 Nolloperations filsystemsfunktioner Noll-funktionerna finns i fastio.cpp och fastio.hpp FakeFsFastIoCheckIfPossible FakeFsFastIoRead

12 9 FakeFsFastIoWrite FakeFsFastIoQueryBasicInfo FakeFsFastIoQueryStandardInfo FakeFsFastIoLock FakeFsFastIoUnlockSingle FakeFsFastIoUnlockAll FakeFsFastIoUnlockAllByKey FakeFsFastIoDeviceControl FakeFsFastIoAcquireFileForNtCreateSection FakeFsFastIoReleaseFileForNtCreateSection FakeFsFastIoDetachDevice FakeFsFastIoQueryNetworkOpenInfo FakeFsFastIoAcquireForModWrite FakeFsFastIoMdlRead FakeFsFastIoMdlReadComplete FakeFsFastIoPrepareMdlWrite FakeFsFastIoMdlWriteComplete FakeFsFastIoReadCompressed FakeFsFastIoWriteCompressed FakeFsFastIoMdlReadCompleteCompressed FakeFsFastIoMdlWriteCompleteCompressed FakeFsFastIoQueryOpen FakeFsFastIoReleaseForModWrite FakeFsFastIoAcquireForCcFlush FakeFsFastIoReleaseForCcFlush 7.2 Betydande filsystemsfunktioner Därutöver finns funktioner som har en faktisk uppgift i filsystemet.

13 DriverEntry Entry-point för drivrutinen. Hit kommer första anropet från OS:et. 1. låsa HostFS-objektet i minnet 2. sätt callbacks för Irp- och FastIo-hantering 3. initiera enhetsobjektet i namnrymden, så att os kan montera filsystemet DriverUnload Anropas för att ladda ur filsystemet ur minnet 1. ta bort enhetsobjektet ur namnrymden 2. frisläpper hostfsobjektet ur minnet FakeFsIrpCreate Anropas av OS:et för att öppna (eller skapa) en fil. filnamnet kommer med anropet. omvandla filnamn till id (HostFsLookupRecursive) kontrollera om ett filkontrollblock redan finns, annars skapa ett nytt (genom FakeFsLocateFcb) allokera filhandtag till öppningsinstansen (med FakeFsAllocateCcb) anropa HostFsOpen för att öppna filen (om den inte redan är öppen) FakeFsIrpClose Anropas för att stänga ett filhandtag. kontrollera huruvida referensnummer är noll om referensräknaren inte är noll, frigör CCB:n, och minska räknaren annars, stäng Simics-handtaget, frigör CCB och FCBn FakeFsIrpWrite Anropas för att skriva till filen lås användarens minnesadress positionera i den öppna filen med HostFsSeek skriv till filen (med HostFsWrite) FakeFsIrpCleanup Anropas för att frigöra filhandtaget, innan close urladda CacheManager med CcUninitializeCache

14 FakeFsIrpDeviceControl Anropas för special events i filsystemet. Används för att tolka UNC-sökvägar (exempelvis //fakefs/abc). Funktionen returnerar hur stor del av sökvägen som kunde tolkas, utan att anropa Simics HostFS. Värdet noll medför att anropet går vidare till andra 7.3 FakeFsIrpDirectoryControl Används för att lista en katalog anropa HostFsReadDir för att läsa in katalogen formatera returdata efter typ av förfrågan FileDirectoryInformation eller FileNamesInformation 7.4 FakeFsIrpQueryInformation Anropas för att ge information om just den här filen Stödjer bara förfrågan av typerna FileBasicInformation och FileNameInformation 7.5 FakeFsIrpQueryVolumeInformation Används för att ge information om volymen 7.6 FakeFsIrpRead Anropas för att läsa från filen Användarens minnesadress är Irp->UserBuffer positionera i filen genom Simics HostFS (med HostFsSeek) läser från Simics HostFS (med HostFsRead) 7.7 FakeFsIrpShutdown Städa upp allokering och stäng filer 7.8 Noll-operation Därutöver tillkommer nedanstående funktioner som är no-op:s FakeFsIrpFileSystemControl FakeFsIrpFlushBuffers FakeFsIrpInternalDeviceControl FakeFsIrpLockControl FakeFsIrpPlugnPlay FakeFsIrpQueryEa FakeFsIrpQueryQuota

15 12 FakeFsIrpQuerySecurity FakeFsIrpSetEa FakeFsIrpSetQuota FakeFsIrpSetSecurity FakeFsIrpSetInformation FakeFsIrpSetVolumeInformation 7.9 Hjälpfunktioner Dessutom finns en del funktioner som underlättar de andra funktionernas implementering. Framförallt rör det hanteringen av filkontrollblock och kontextkontrollblock, som är likartad för flera av FakeFS-funktionerna FakeFsLocateFcb Anropas med ett filnod-nummer, kontrollerar om filen är öppen (och redan har ett filkontrollblock) Om ja, referera filkontrollblocket och returnera det. Om nej, skapa ett nytt filkontrollblock, referera filkontrollblocket och returnera det FakeFsFreeFcb Frigör filkontrollblocket FakeFsAllocateCcb Skapar ett filhandtag och kopplar det till filkontrollblocket 7.10 Simicsspecifika Filsystemet interagerar med Simics HostFS-objektet över gränsytan i minnet. Protokollet är inte anpassat för i386 eller NT. Därför behövs ett mellanliggande gränssnitt som förenklar kommunikationen för filsystemet. HostFS-modulen skapar ett förenklat gränssnitt som kan användas av FakeFS-modulen. Dessa funktioner mappas nästan one-to-one till HostFS-protokollet. En av HostFSmodulens uppgifter är att omvandla från little-endian till big-endian. HostFsHandshake HostFsLookup HostFsOpen HostFsDebug HostFsClose HostFsRoot HostFsGetAttr

16 13 HostFsReaddir HostFsSeek HostFsRead HostFsParent HostFsUnmount 7.11 Hjälp till Simics HostFs Förutom en-till-en mappningen för HostFS-gränssnittet finns ett par funktioner som inte riktigt tillhör gränssnittet HostFsLookupRecursive Klarar av att spjälka upp en hel sökväg (med ", / och.. ) HostFsInitialize Ockuperar HostFS-adressen i minnet HostFsUninitialize Frigör HostFS-resursen ur minnet. 8 Implementationssteg Filsystemet är komplicerat i sin arkitektur. Implementationen sker etappvis för att filsystemet överhuvudtaget ska vara överblickbart. Ett något förenklat schema följer nedan 1. DriverEntry och DriverUnload, i sin helhet - redan från början 2. FakeFsInitIrpCallbacks och FakeFsInitFastIoCallbacks, tillhör DriverEntry 3. Alla dummy FakeFsFastIo 4. Alla dummy FakeFsIrp 5. Simics-support för handskakning och debug 6. Prova debug inifrån FakeFsIrpWrite 7. Simics-support för namnöversättning, öppning, attributinhämtning 8. real FakeFsIrpCreate, med stöd för öppning av riktiga filer 9. real FakeFsIrpClose och FakeFsIrpCleanup, det är bra att städa efter sig 10. real FakeFsRead, ger lässtöd 11. real FakeFsDirectoryControl, möjliggör lista katalog

17 real FakeFsQueryInformation, ställa frågor om filer Redan efter femte etappen finns möjlighet att testa ett grundläggande filsystem (med bara en fil). Nästa testtillfälle finns vid åttonde etappen då riktiga filer faktiskt kan öppnas. Efter tolfte etappen ska det vara möjligt att läsa in filer och lista katalog. 9 Referenser för filsystemet Det är svårt att hitta goda referenser till filsystem. Mycket handlar om att programmera hårdvaran istället för filsystemen i operativsystemet. En av de mer läsvärda är Windows NT Filesystem Internals, Rajeev Nagar. Företaget har en del fria resurser. Bland annat ett register över en mängd funktioner och deras definitioner. Därutöver finns en gnu-version tillgänglig på bosse. 9.1 Kort referenslista av funktioner och strukturer DEVICE_OBJECT - Här beskrivs c-strukturen DEVICE_OBJECT. Den representerar filsystemets monteringspunkt i namnrymden. Filsystemet tar bara hänsyn till en variabel i strukturen: DeviceExtension, som pekar ut filsystemets egen struktur där programmeraren kan placera egna variabler. Operativsystemet använder inte DeviceExtension. DRIVER_OBJECT - Här beskrivs c-strukturen som representerar drivrutinen i minnet. Strukturen är lång, men filsystemet tar bara hänsyn till ett par variabler; FastIoDispatch och MajorFunction. IO_STACK_LOCATION - htm Representerar alla parametrar som skickas till filsystemets funktioner. Läsvärd. Typiska parametrar är: filnamn, filoffset, bufferlängd IRP - Kapslar IO_STACK_LOCATION. Innehåller mer globala parametrar, exempelvis UserBuffer som pekar ut var filsystemet ska skriva/läsa. Alla IRPs byggs upp av en lista IO_STACK_LOCATION, en post för varje drivrutin i enhetsstacken. IoGetCurrentIrpStackLocation - _89pu.htm Funktionen tar en PIRP som inparameter och ger aktuell PIO_STACK_LOCATION i retur.

Projekt Fake för Virtutech

Projekt Fake för Virtutech 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

Läs mer

Projekt Fake för Virtutech

Projekt Fake för Virtutech 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

Läs mer

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn Varför? För att kunna lagra data mer permanent än i RAM Hur? Vettig organisation Vettiga namn Stora/små bokstäver 8-bitars tecken (teckenkodning) File extensions Längd Struktur på filerna Byte efter byte,

Läs mer

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt Flera processer Minneshantering Operativsystem lektion 6 Potentiellt problem: Den sida som plockas bort behöver inte vara den sida som används minst!! Det kan finnas andra processer som inte körs eller

Läs mer

Operativsystem IS1350

Operativsystem IS1350 Operativsystem IS1350 LAB 3 2009-09-21 Checklista: ÿ ÿ Inloggningsuppgifter till KTH.SE-konto Tillgång till PC med Windows och C-kompilator, t.ex. Dev-C++ Sammanfattning I den här laborationen ska vi titta

Läs mer

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

Läs mer

Öppna filer och filsystem i PintOS Hemuppgift TDDI81, 21/

Öppna filer och filsystem i PintOS Hemuppgift TDDI81, 21/ Öppna filer och filsystem i PintOS Hemuppgift TDDI8, /0-03 Almquist Mathias (matal09) Nguyen Johan (johng86) Hamzic Mirza (mirha348) Timliden Erik (eriti930) INLEDNING PintOS är ett operativsystem utvecklat

Läs mer

Allmänt om programvaror och filer i Windows.

Allmänt om programvaror och filer i Windows. Allmänt om programvaror och filer i Windows. Vart sparade du dokumentet? I Word. Jag har fått detta svar mer än en gång när jag försökt hjälpa någon att hitta ett dokument som de tappat bort i sin dator.

Läs mer

F5: Högnivåprogrammering

F5: Högnivåprogrammering F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data via

Läs mer

F5: Högnivåprogrammering

F5: Högnivåprogrammering 1 F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data

Läs mer

Operativsystem - input/output, skydd, virtualisering

Operativsystem - input/output, skydd, virtualisering Operativsystem - input/output, skydd, virtualisering Mats Björkman 2015-03-12 Lärandemål, I/O n Typer av I/O-enheter n Character, Block & Special n Minnesmappad I/O n Typer av I/O-programmering n Programmerad,

Läs mer

Flytt av. Vitec Mäklarsystem

Flytt av. Vitec Mäklarsystem Flytt av Vitec Mäklarsystem Augusti 2014 Innehållsförteckning 1. Inledning... 2 Förutsättningar... 2 Läs noga igenom manualen... 2 Systemkrav... 2 Kundservice/Teknisk support... 2 2. Skapa säkerhetskopia...

Läs mer

Marcus Wilhelmsson marcus.wilhelmsson@lnu.se 12 april 2013

Marcus Wilhelmsson marcus.wilhelmsson@lnu.se 12 april 2013 Datorhårdvaruteknik 1DV426 - Laboration Grundläggande konfiguration av lagringslösning ATAboy Installation av Backupserver Konfiguration av Virtuellt bandbibliotek, VTL Marcus Wilhelmsson marcus.wilhelmsson@lnu.se

Läs mer

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman Operativsystem Lektion 1 1 Lärare jem@cs.umu.se, B449 Lektioner etc Set Norman set@cs.umu.se, NAdv105 Labbar, labhandledning 2 Schema Notera att det finns ändringar i schemat!! Under perioden 1-8 mars

Läs mer

Deluppgift 17 Processhantering: exec, sleep, exit, plist

Deluppgift 17 Processhantering: exec, sleep, exit, plist Linköpings Tekniska Högskola Institutionen för Datavetanskap (IDA), Software and Systems (SaS) (c) Klas Arvidsson Deluppgift 17 Processhantering: exec, sleep, exit, plist Inledning För att få ett praktiskt

Läs mer

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl TDDIU81 Processer och trådar Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl Sammanfattning Den här rapporten innehåller en kort genomgång av allmän process och trådhantering

Läs mer

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document Programutvecklingsprojekt 2003-04-24 Projektgrupp Elvin Detailed Design Document Björn Engdahl Fredrik Dahlström Mats Eriksson Staffan Friberg Thomas Glod Tom Eriksson engdahl@kth.se fd@kth.se d94-mae@nada.kth.se

Läs mer

Operativsystem - Filsystem

Operativsystem - Filsystem Operativsystem - Filsystem Mats Björkman 2015-03-09 Administrativt n Extraföreläsning istället för den inställda: torsdag 12/3 kl 8-10 i Pi n Seminarier preliminärt schema ute n 15 minuter per grupp lämna

Läs mer

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Informationsinfrastruktur 7.5 hp Mattias Nordlindh Inledning Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Dokumentet består av

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.) Outline för D2, ICT2, E3 och Mek3 Nicholas Wickström Högskolan i Halmstad Sverige p.1/18 Förra föreläsningen Specifikation -Kravspecifikation -Funktionsspecifikation -Blockdiagram Operativsystem -Grunder,

Läs mer

Objektorientering: Lagring och livstid

Objektorientering: Lagring och livstid TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Objektorientering: Lagring och livstid Tre sorters variabler Tre sorters variabel (1): Lokal 2 Lokal variabel Deklareras inuti en metod Vid varje anrop

Läs mer

Datorsystem Laboration 2: Minnesmappade bussar

Datorsystem Laboration 2: Minnesmappade bussar Datorsystem Laboration 2: Minnesmappade bussar Senast uppdaterad: 14 oktober 2012 Version 1.2 Student: Lärare: Underskrift: Underskrift: Datum: Datorsystem Laboration 2 1 Innehåll 1 Inledning 2 1.1 Introduktion..................................

Läs mer

Länkning av Prolog under C

Länkning av Prolog under C Länkning av Prolog under C Kent Boortz Swedish Institute of Computer Science Box 1263, S-164 28 Kista, Sweden 1 september 1991 T91:14 Sammanfattning SICStus länkmoduler ger möjlighet att blanda Prolog-

Läs mer

Systembeskrivning. Systemskiss. Moduler.

Systembeskrivning. Systemskiss. Moduler. Page 1 of 5 Systembeskrivning Projektets namn: Educational Operating System (EOS) Uppdragsgivare: Virtutech Gruppmedlemmar: Jens Lind (Projektledare) Peter Wåhlander (Sekreterare) Åke Wallebom Gilbert

Läs mer

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering October 29, 2013 Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er Labora&on 2 Funk&oner, if och loop övningar/uppgi:er 1M322 Webbteknik 2, 7,5hp Medieteknik 2017 Rune Körnefors rune.kornefors@lnu.se 1. Ladda ner arbetsdokument Till övningarna i denna labora&on finns

Läs mer

Språket Python - Del 2 Grundkurs i programmering med Python

Språket Python - Del 2 Grundkurs i programmering med Python Hösten 2009 Dagens lektion Funktioner Filhantering Felhantering 2 Funktioner 3 FUNKTIONER Att dela upp program Att dela upp program i mindre delar, funktioner är ett viktigt koncept i programmering. Viktigt

Läs mer

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:

Läs mer

Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar

Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar Dynamiskt minne Agenda Vad är dynamiskt minne Motivering Hur gör man i C Övningar Minne Datorns primärminne används till olika ändamål De flesta system partitionerar minnet efter användningen: Programkoden

Läs mer

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,

Läs mer

Inledande programmering med C# (1DV402) Tärningarna ska kastas

Inledande programmering med C# (1DV402) Tärningarna ska kastas Tärningarna ska kastas Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll

Läs mer

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: 2009-12-14 Mottagare: Visi Web kund

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: 2009-12-14 Mottagare: Visi Web kund Sida: 1(7) Installationsanvisningar VisiWeb Ansvarig: Visi Closetalk AB Version: 2.3 Datum: 2009-12-14 Mottagare: Visi Web kund Detta dokument Detta dokument beskriver hur man installerar VisiWeb på en

Läs mer

Kopiering av objekt i Java

Kopiering av objekt i Java 1 (6) Kopiering av objekt i Java Först När du läser detta papper bör du samtidigt studera dokumentationen för klasserna Object, Cloneable (java.lang) och ArrayList (java.util). Mycket blir klarare genom

Läs mer

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

Läs mer

Sammansatta datatyper Generics: Parametrisk polymorfism

Sammansatta datatyper Generics: Parametrisk polymorfism jonas.kvarnstrom@liu.se 2017 Sammansatta datatyper Generics: Parametrisk polymorfism Listor och arrayer 2 Enligt TDDD73: Många språk har både listor och arrayer även Java och Python! Exakta definitioner

Läs mer

Filsäkerhet i Windows NT (NTFS)

Filsäkerhet i Windows NT (NTFS) Filsäkerhet i Windows NT (NTFS) Jens Granlund 19.10.2000 Introduktion Detta dokument försöker att beskriva säkerhetsmekanismerna i Windows NTs filsystem NTFS på ett lättbegripligt sätt. Access Control

Läs mer

XML-produkter. -Registret över verkliga huvudmän (RVH) Teknisk handledning för webbtjänst mot RVH (Web Services) Datum: Version: 1.

XML-produkter. -Registret över verkliga huvudmän (RVH) Teknisk handledning för webbtjänst mot RVH (Web Services) Datum: Version: 1. XML-produkter -Registret över verkliga huvudmän (RVH) Teknisk handledning för webbtjänst mot RVH (Web Services) Datum: 2018-09-18 Version: 1.0 Innehållsförteckning 1. Inledning... 3 1.1. Syfte 3 1.2. Målgrupp

Läs mer

Design av en klass BankAccount som representerar ett bankkonto

Design av en klass BankAccount som representerar ett bankkonto Klasser Kommer ta upp följande begrepp: Design av en klass Implementera en klass Testa en klass med en mainmetod Instansvariabler, lokala variabler, formella parametrar, aktuella parametrar och variablers

Läs mer

www.drakbutiken.se IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, 2009-11-01] www.drakbutiken.

www.drakbutiken.se IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, 2009-11-01] www.drakbutiken. qwertyuiopåasdfghjklöäzxcvbnmqwe rtyuiopåasdfghjklöäzxcvbnmqwertyu iopåasdfghjklöäzxcvbnmqwertyuiopå asdfghjklöäzxcvbnmqwertyuiopåasdf ghjklöäzxcvbnmqwertyuiopåasdfghjk www.drakbutiken.se IDE USB kabel

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #17 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Tallriksmodellen Stackoperationer Element kan endast

Läs mer

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning Generell säkerhet Här finns det inga direkta rätt eller fel. Snarare saker man bör tänka på när man implementerar ett program. Kort sagt: Efter att du kommit på hur du tänkt göra, sov på saken och tänk

Läs mer

Tentamen i Introduktion till programmering

Tentamen i Introduktion till programmering Tentamen i Introduktion till programmering Kurskod: Skrivtid: D0009E 09:00-13:00 (4 timmar) Totalt antal uppgifter: 7 Totalt antal poäng: 38 Tentamensdatum: 2014-05-17 Jourhavande lärare: Tillåtna hjälpmedel:

Läs mer

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Fö 5+6 TSEA81. Real-time kernel + Real-time OS Fö 5+6 TSEA81 Real-time kernel + Real-time OS Stackens användningsområde * JSR / RTS : returadress * Temporärdata (push / pop) void myfunc(void) { int i; // hamnar nog i register int test[10]; // hamnar

Läs mer

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne. Fö 8: Operativsystem II Minneshantering och Virtuelltminne. Virtuella I/O enheter och Filsystemet. Flerprocessorsystem. Minneshantering Uniprogrammering: Minnet delas mellan operativsystem och användarprogrammet.

Läs mer

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

DDR PC SOFTWARE 2 RELEASENOTES VERSION 2.5. Swerob Service AB Global Robot Parts AB DDR PC SOFTWARE 2 RELEASENOTES VERSION 2.5 Swerob Service AB Global Robot Parts AB Beskrivning DDR PC Software 2 används för att hantera SD-kortet från DDR i en vanlig PC. Ett SD-kort till DDR är indelat

Läs mer

Instruktioner för uppdatering av enheter med ISP

Instruktioner för uppdatering av enheter med ISP För AP produkter som använder ISP måste flashuppdateringen göras med hjälp av den medföljande MPC Manager. För att utföra en firmware uppdatering, följ dessa instruktioner: 1. Ladda ner och installera

Läs mer

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser Innehåll Operativsystem Vad är operativsystem och hur fungerar de Vad är ett OS? Syfte Att tillåta flera program att köra samtidigt Att fungera som ett abstraktionslager mot hårdvaran Att hantera olika

Läs mer

Classes och Interfaces, Objects och References, Initialization

Classes och Interfaces, Objects och References, Initialization Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class

Läs mer

TDDD78 Objektorientering: Lagring och livstid

TDDD78 Objektorientering: Lagring och livstid jonas.kvarnstrom@liu.se 2017 TDDD78 Objektorientering: Lagring och livstid Tre sorters variabel (1): Lokal 3 Deklareras i en metod Lokal variabel Varje anrop får sin egen "kopia": Två anrop till foo()

Läs mer

Datum 2012-12-28. Den första bilden i installationsprogrammet visar vilken version det är. Klicka på Nästa eller tryck Enter för att fortsätta.

Datum 2012-12-28. Den första bilden i installationsprogrammet visar vilken version det är. Klicka på Nästa eller tryck Enter för att fortsätta. Installation av SDCs insändningsprogram Sender för filer från skördare, skotare eller drivare Installationen består av tre steg som automatiskt körs efter varandra. Steg 1: Programmet installeras och man

Läs mer

Reservföreläsningen inställd

Reservföreläsningen inställd Reservföreläsningen inställd n Reservtiden (fredag 10 mars kl 13-15) är en reservtid, ställs nu in eftersom inte något oförutsett hänt Operativsystem, Mats Björkman, MDH 1 Labredovisningar n Labbar som

Läs mer

Användarhandledning för koppling av dokument

Användarhandledning för koppling av dokument nvändarhandledning Modul: lla vser: Koppla dokument i 3L 2006 1[11] nvändarhandledning för koppling av dokument Olika typer av dokument kan kopplas till poster i en 3L-databas. Exempelvis kan en eller

Läs mer

Uppdragsbeskrivning. Paddel-appen Utmärkta kanotleder. Version 1.0 Mats Persson. Distributionslista. Namn Åtgärd Info.

Uppdragsbeskrivning. Paddel-appen Utmärkta kanotleder. Version 1.0 Mats Persson. Distributionslista. Namn Åtgärd Info. Paddel-appen Utmärkta kanotleder Version 1.0 Distributionslista Befattning Bolag/en het Säljare Sogeti Bengt Löwenhamn Konsultchef Sogeti Åsa Maspers Mentor/handledare Sogeti Student KaU Claes Barthelson

Läs mer

Insamlingsverktyg - teknisk beskrivning av metadataformuläret

Insamlingsverktyg - teknisk beskrivning av metadataformuläret Digitala leveranser Insamlingsverktyg - teknisk beskrivning av metadataformuläret Innehåll: Allmänt Layout och uppbyggnad Hur man använder programmet Starta Fylla i metadata Skapa metadatafiler och leverera

Läs mer

Lärare och handledare. Systemnära programmering. I dag. Föreläsningar & Gruppövningar & Handledning. Marcus Karlsson

Lärare och handledare. Systemnära programmering. I dag. Föreläsningar & Gruppövningar & Handledning. Marcus Karlsson Lärare och handledare Systemnära programmering 5DV088 HT10 Föreläsningar & Gruppövningar & Handledning Mikael Rännar Handledning mr@cs.umu.se Marcus Karlsson marcusk@cs.umu.se 1 2 I dag Information om

Läs mer

Vad händer när man kör ett program? Program och processer. Funktionsanrop. Avsluta programmet

Vad händer när man kör ett program? Program och processer. Funktionsanrop. Avsluta programmet Vad händer när man kör ett program? Program och processer När man kompilerar ett program och sedan länkar ihop det så stoppar länkaren in lite extra kod i programmet. Det är denna kod som i sin tur anropar

Läs mer

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00 Operativsystem ID2206 Tentamen TEN1 4.5 hp 2018-04-03 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa

Läs mer

Regelverk. Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag. Bilaga A. Tekniska ramverk. Version: 1.0

Regelverk. Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag. Bilaga A. Tekniska ramverk. Version: 1.0 Regelverk Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag Bilaga A Tekniska ramverk Version: 1.0 Innehållsförteckning 1 Bakgrund och syfte... 1 1.1 Definitioner 1 2 Inledning...

Läs mer

Övningar för del I av kursen

Övningar för del I av kursen Övningar för del I av kursen Detta är den första samlingen av tre med övningar. Övningarna i den här samlingen numreras med 1.x där x går går från 1 till 8. Det är nödvändigt att genomföra de flesta övningar

Läs mer

Tillämpad Programmering (ID1218) :00-13:00

Tillämpad Programmering (ID1218) :00-13:00 ID1218 Johan Montelius Tillämpad Programmering (ID1218) 2014-03-13 09:00-13:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.

Läs mer

Webservice & ERP-Integration Rapport

Webservice & ERP-Integration Rapport Webservice & ERP-Integration Rapport Hardwood AB Mustafa Lazem 930916-9713 Jonas Ahrne 920325-0379 Hasan Nerjovaj 940130-7195 Stefan Liden 920628-0639 2014-05-18 Innehåll Bakgrund... 2 Syfte... 2 Projektbeskrivning...

Läs mer

Introduktion till arv

Introduktion till arv Introduktion till arv 6 INTRODUKTION TILL ARV Arv Generell-Speciell Arv för att utnyttja det vi redan gjort Återanvändning Basklass Härledd klass Varför arv? Inför en subklass för att uttrycka specialisering

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt

Läs mer

Mobilt Efos och ny metod för stark autentisering

Mobilt Efos och ny metod för stark autentisering Mobilt Efos och ny metod för stark autentisering I och med lanseringen av E-identitet för offentlig sektor, Efos, kommer Inera att leverera komponenter som möjliggör att en användare ska kunna logga in

Läs mer

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer Dagens OS En översikt av dagens OS Titt på hur de gör Unix, Linux och Windows Unix Många varianter Mycket gemensamt Unix En del som skiljer Vanliga program, shell, etc System calls Interupts and traps

Läs mer

Datorarkitekturer med Operativsystem

Datorarkitekturer med Operativsystem Lunds Tekniska Högskola Campus Helsingborg Datorarkitekturer med Operativsystem EDT621 Rapport Cacheminneshantering för ARM3-processorer 7 december 2015 Pierre Aupeix dat11pau@student.lu.se 1 Abstract

Läs mer

Installationsanvisning för LUQSUS-K version 3.0b

Installationsanvisning för LUQSUS-K version 3.0b Avd. för arbets-och miljömedicin & Inst. för psykologi, Lunds universitet Installationsanvisning för LUQSUS-K version 3.0b Systemkrav Innan du börjar installationen bör du kontrollera att operativsystem

Läs mer

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Introduktion till integrering av Schenkers e-tjänster. Version 2.0 Introduktion till integrering av Schenkers e- Version 2.0 Datum: 2008-06-18 Sida 2 av 8 Revisionshistorik Lägg senaste ändringen först! Datum Version Revision 2008-06-18 2.0 Stora delar av introduktionen

Läs mer

1 Klasser och objektorientering Vad är objektorientering?

1 Klasser och objektorientering Vad är objektorientering? 1 Klasser och objektorientering Vad är objektorientering? Det finns olika synsätt på programmering, dessa olika synsätt kallas för paradigm. De vanligaste paradigmen är det imperativa/proceduriella, det

Läs mer

Introduktion till programmering, hösten 2011

Introduktion till programmering, hösten 2011 Föreläsning 1 Programmering är ett hantverk. Det betyder att man inte kan läsa sig till den förmågan, man måste träna och man tränar genom att skriva mer och mer avancerade program. Programmering förutsätter

Läs mer

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program. Föreläsning 2 Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program. Vår process Kravbeskrivning (3 dagar). Enkel form av användningsfall (use cases). Analys

Läs mer

Operativsystem - Windows 7

Operativsystem - Windows 7 Uppgift 5 B Operativsystem - Windows 7 Skapa mappar och undermappar Det finns olika sätt att skapa nya mappar på. Alternativ. Högerklicka på en tom yta. Håll muspekaren över Nytt. Klicka på Mapp Alternativ.

Läs mer

Objektorientering: Lagring, räckvidd och livstid

Objektorientering: Lagring, räckvidd och livstid TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Objektorientering: Lagring, räckvidd och livstid Tre sorters variabler, två sorters metoder Räckvidd och livstid 2 Variabler (lokala och medlemsvariabler)

Läs mer

Motivation. Programmeringsuppgift: En första ansats: Lagra info om anställda Håll reda på varje anställds närmaste chef. som också är en anställd!

Motivation. Programmeringsuppgift: En första ansats: Lagra info om anställda Håll reda på varje anställds närmaste chef. som också är en anställd! Pekare (till objekt) Objektvariabler är pekare vad är det? (Viktiga begrepp inte bara inom objektorientering!) Hur används pekare för att sätta samman objekt (composition)? TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se

Läs mer

Snabbguide Visma Compact API Copyright 2006-2010 Visma Spcs AB

Snabbguide Visma Compact API Copyright 2006-2010 Visma Spcs AB Snabbguide Visma Compact API Copyright 2006-2010 Visma Spcs AB Komma igång med Compact API Hur APIet fungerar Visma Compacts API läser och skriver direkt till databasen via ett antal färdiga metoder som

Läs mer

Installationsanvisning för LUQSUS version 2.0

Installationsanvisning för LUQSUS version 2.0 Avd. för arbets-och miljömedicin & Inst. för psykologi, Lunds universitet Installationsanvisning för LUQSUS version 2.0 Systemkrav Innan du börjar installationen bör du kontrollera att operativsystem och

Läs mer

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

Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1 Kursinfo Introduktion till programmering Undervisning Föreläsning 1 Kursinformation Inloggning, filsystem, kommandotolk några inledande exempel Föreläsningar Fem föreläsningar, vardera 45 minuter. Allmänna

Läs mer

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll: F: Minneselement Innehåll: - Latchar - Flip-Flops - egister - Läs- och skrivminne (andom-access Memory AM) - Läsminne (ead Only Memory OM) Ett minneselements egenskaper Generellt sett så kan följande operationer

Läs mer

IS1200 Datorteknik. Övning CE_O4 Maskinnära programmering med C Förberedelser till hemlaboration 1

IS1200 Datorteknik. Övning CE_O4 Maskinnära programmering med C Förberedelser till hemlaboration 1 IS1200 Datorteknik Övning CE_O4 Maskinnära programmering med C Förberedelser till hemlaboration 1 1 4.1 Little och big endian 2 Nios II? Nios II är Little-endian (men eftersom det är en soft-processor

Läs mer

XML-dokumentation. För Projektledare & utvecklare hos IT-leverantörer till Svenska Intensivvårdsregistret

XML-dokumentation. För Projektledare & utvecklare hos IT-leverantörer till Svenska Intensivvårdsregistret XML-dokumentation För Projektledare & utvecklare hos IT-leverantörer till Svenska Intensivvårdsregistret 1 (6) Innehåll 1. Om... 3 2. XML-dokumentation... 4 Innehåll... 4 XML-dokumentation... 4 Ändringshistorik...

Läs mer

Klasser och objekt. Henrik Johansson. August 20, 2008

Klasser och objekt. Henrik Johansson. August 20, 2008 Föreläsning 5 Klasser och objekt Henrik Johansson August 20, 2008 Ett objekt är en modell av ett fysisikt eller ett tänkt ting. Objektet och det som vi kan göra med det beskrivs av en mall, en klass. Ett

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) Uppgift 1 ( Betyg 3 uppgift ) I filerna queue_handling.ads och queue_handling.adb finns en datastruktur som motsvarar en kö. Det finns fyra operationer som kan utföras på en kö. 1) Enqueue som stoppar

Läs mer

2.1.2012. Programmet är avsett för vidarebehandling av Finvoice-nätfakturor som mottagits via ett bank-förbindelseprogram.

2.1.2012. Programmet är avsett för vidarebehandling av Finvoice-nätfakturor som mottagits via ett bank-förbindelseprogram. ANVISNINGAR 1 (6) ARKIVERINGSPROGRAM FÖR FINVOICE-FAKTUROR Programmet är avsett för vidarebehandling av Finvoice-nätfakturor som mottagits via ett bank-förbindelseprogram. Programmets användningssyfte:

Läs mer

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1. Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning

Läs mer

Guide för Innehållsleverantörer

Guide för Innehållsleverantörer Library of Labs Content Provider s Guide Guide för Innehållsleverantörer Inom LiLa ramverket är innehållsleverantörer ansvariga för att skapa experiment som "LiLa Learning Objects", att ladda upp dessa

Läs mer

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund gussk258@student.liu.se. Marcus Widblom marwi026@student.liu.se. Senast ändrad: 13 / 05 / 08

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund gussk258@student.liu.se. Marcus Widblom marwi026@student.liu.se. Senast ändrad: 13 / 05 / 08 JavaRats Kravspecifikation Version 1.1 Gustav Skoglund gussk258@student.liu.se Marcus Widblom marwi026@student.liu.se Senast ändrad: 13 / 05 / 08 Sammanfattning Kravspecifikationen för JavaRats har skrivit

Läs mer

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON Datorteknik ERIK LARSSON Inledning Ken Thompson och Dennis M. Ritchie utvecklade C Turingpriset( Nobelpris i datavetenskap ), 1983 Alan Turing (1912-1954) För deras utveckling av generell OS teori och

Läs mer

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv

Läs mer

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär: Lösningsförslag för 725G45-tentan 3/11-10 1. Vad menas med Von Neumann-arkitektur? (2p) En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär: Data och instruktioner lagras i samma

Läs mer

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum: Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60 Superscalar vs VLIW Cornelia Kloth IDA2 Inlämningsdatum: 2018-12-05 Abstract Rapporten handlar om två tekniker inom multiple issue processorer

Läs mer

Utskrift till PDF och e-post

Utskrift till PDF och e-post Utskrift till PDF och e-post Pyramid Business Studio, version 3.39A (060426) Handbok för hantering av utskrift till PDF och e-post i Pyramid Business Studio för användning med Microsoft Windows. Anvisningarna

Läs mer

Operativsystem. Informationsteknologi sommarkurs 5p, 2004. Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Operativsystem. Informationsteknologi sommarkurs 5p, 2004. Agenda. Slideset 7. Exempel på operativsystem. Operativsystem Informationsteknologi sommarkurs 5p, 2004 Mattias Wiggberg Dept. of Information Technology Box 337 SE751 05 Uppsala +46 18471 31 76 Collaboration Jakob Carlström Slideset 7 Agenda Exempel på operativsystem

Läs mer

Pekare. Pekare. Varför använder vi pekare? Vad är en pekare? Pekare. Deklaration/initiering av pekare

Pekare. Pekare. Varför använder vi pekare? Vad är en pekare? Pekare. Deklaration/initiering av pekare Vad är en pekare? Varför använder vi pekare? Hur används pekare? Hur deklarerar vi pekare i C? Hur kommer vi åt pekarvärdet? DAVA07/08 JE,MG,MG,PS 2 DAVA07/08 JE,MG,MG,PS Vad är en pekare? En pekare är

Läs mer

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.

Läs mer

Minnestilldelning (allokering) och frigörande (avallokering) av minne

Minnestilldelning (allokering) och frigörande (avallokering) av minne Pekare i C++ Pekare används mycket i C++. De är bra både för att de tillåter dynamisk minnesallokering och för att de är referenser. En pekarvariabel innehåller en adress till ett element, den pekar på

Läs mer

Föreläsning 5: Introduktion av pekare

Föreläsning 5: Introduktion av pekare Föreläsning 5: Introduktion av pekare Det bör påpekas att det som tas upp i introduktionen inte är reella exempel på kod. Man anväder inte pekare till att peka på enstaka heltal som i exemplen nedan, men

Läs mer

Manual - Phonera Online Backup

Manual - Phonera Online Backup Manual - Phonera Online Backup Phonera Online Backup är enkel att installera och använda Först så ska du installera Phonera Online Backup. Du hittar installationsfilerna av backupklienten på adressen nedan:

Läs mer

TDTS04: Distansvektorroutning i java

TDTS04: Distansvektorroutning i java 19 January 2010 TDTS04: Distansvektorroutning i java Juha Takkinen, Ph.D. IDA, Institutionen för datavetenskap 1.0 Översikt Labb 4 består av att utforma, implementera, testa och demonstrera ett program

Läs mer

Drivrutinen DrvTC2 används för att kommunicera via ADS och PLC:er från Beckhoff.

Drivrutinen DrvTC2 används för att kommunicera via ADS och PLC:er från Beckhoff. DrvTC2 Drivrutinen DrvTC2 används för att kommunicera via ADS och PLC:er från Beckhoff. För mer information om protokollet ADS och produkter från Beckhoff besök http://www.beckhoff.se/ DrvTC2 använder

Läs mer