Projekt Fake för Virtutech
|
|
- Marie Hedlund
- för 5 år sedan
- Visningar:
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
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
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
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,
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
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
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,
Ö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
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.
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
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
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,
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...
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
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
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
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
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
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
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
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
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,
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
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ä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-
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
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.
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
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
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:
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
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,
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
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
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
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[]
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
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
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
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
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
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
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
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:
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
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.
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
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
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
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
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()
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
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
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
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
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ä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
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
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
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...
Ö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
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.
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...
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
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
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
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
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
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
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
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
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
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
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.
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)
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
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
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
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
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
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
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...
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
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
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:
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
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
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
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
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
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
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
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
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
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
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.
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å
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
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:
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
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