Operativsystem IS1350

Relevanta dokument
Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

Innehåll. Installationsguide

ARX på Windows Vista, Windows 7 eller Windows 2008 server

Installationsanvisning fr o m version

Föreläsning 2. Operativsystem och programmering

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

REGION SKÅNE VDI KLIENTINSTALLATION

SNABBGUIDE TILL LÄRANÄRA

INSTALLATIONSGUIDE. Uppdatering av ditt Mamut-system

Innan installationen behöver dessa tre steg genomföras. Efter installationen kan de aktiveras igen.

OBS! FÖRSÖK INTE INSTALLERA PROGRAMVARAN INNAN DU HAR LÄST DET HÄR DOKUMENTET.

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

Flytt av. Vitec Mäklarsystem

INSTALLATIONSHANDBOK

Installation och konfiguration av klientprogramvara 2c8 Modeling Tool

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

Installationsanvisning - Kopplingen mellan GK96 och golf.se -

Uppdatering till Windows 8.1 steg för steg-guide

Instruktioner för uppdatering från Ethiris 5.x till 6.0

Instruktion för användande av Citrix MetaFrame

Datorsystem Laboration 2: Minnesmappade bussar

OBS!!! Anslut ej USB kabeln till dator eller GPS innan du först har installerat drivrutinerna för USB kabeln i din dator.

Installationsguide ELCAD 7.10

Installationsguide för FAR Komplett Offline 2.1.2

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

JobOffice SQL databas på server

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

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips

Instruktion till. PigWin PocketPigs. Del 1 - Installation

Uppdatering till Windows 8.1 steg för steg-guide

Handbok Dela Skrivbord. Brad Hards Översättare: Stefan Asserhäll

Snabbinstallationsguide för anslutningskabel CA-42

Foptec Internet Supervisor

Installation av StruSofts låne-licensserver (nätverkslicens)

Vid problem med programmet kontakta alltid C/W Cadware AB på telefon

Fullständig prestandahantering

Program för skrivarhantering

Åtkomst och användarhandledning

Kort-kort om utdelade användarkonton och datormiljön på NADA

Handbok Simond. Peter H. Grasch

Installationsmanual ImageBank 2

Instruktion för användande av Citrix MetaFrame

Instruktion: Trådlöst nätverk för privata enheter

Introduktion. Skriv in användarnamn och lösenord

Scan Station Pro 550 Administration och serviceverktyg för Scan Station

Installation/uppdatering av Hogia Personal fr.o.m. version 13.1

Programmering i C++ Kompilering från kommandoraden

Sockets: server. with Ada.Command_Line; use Ada.Command_Line; with Ada.Exceptions; use Ada.Exceptions; with Ada.Text_IO; use Ada.

Introduktion till programmering, hösten 2011

Topologi. Utförande: I exemplet så kommer vi att utgå från att man gör laborationen i en Virtuell miljö (Virtualbox).

DATORINTRODUKTION 2010 LABORATION 1

Installation av WinPig Slakt

25. Hämta Adobe Reader

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Objektorienterad programmering i Java I

Instruktion för användande av Citrix MetaFrame

PSTYR OBS! Om du ska installera på en dator med Microsoft Windows XP så måste servicepack 3 vara installerad.

NYTT LIV I EN UTTJÄNT DATOR

Manuell installation av SQL Server 2008 R2 Express SP2 fo r SSF Timing

Registrering av licens för en befintlig användare fr om version

LABORATIONSRAPPORT Operativsystem 1 Linux

Klientinstallation VSS Driftservice

Så här byter du från Unifaun WebOrder (UWO) till Unifaun OnlineConnect (UOCT)

Installation, Novaschem 2005

Installationsanvisningar HogiaLön Plus

Marcus Wilhelmsson 12 april 2013

Ladda upp filer fra n PLC till PC

Laboration 2 Datorverktyg vid LiU

Föreläsning 3. Programmering, C och programmeringsmiljö

Manual - Phonera Online Backup

Alternativet är iwindows registret som ni hittar under regedit och Windows XP 32 bit.

Instruktion: Trådlöst utbildningsnät orebro-utbildning

Installationsmanual ImageBank 2

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Installation av. Vitec Mäklarsystem

HOGIA AUDIT MED BOKSLUT, HOGIA AUDIT och HOGIA BOKSLUT

Installationsanvisningar HogiaLön Plus

Installera SoS2000. Kapitel 2 Installation Innehåll

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

Instruktion för användande av Citrix MetaFrame

INSTALLATIONS ANVISNING

På servern För att registrera och köra en Topocad 17 nätverkslicens krävs att man installerar den senaste Licensservern

Installationsanvisning fr o m version

Din guide till. Byte av databas. Från MSDE till SQL Express

Quick Start CABAS. Generella systemkrav CABAS / CAB Plan. Kommunikation. Säkerhet

Om installationsskärmen inte visas efter en minut startar du CD-skivan manuellt:

BaraTrav Prenumeration och Installation Version 1.3.4

LABORATION 1 Pingpong och Installation av Server 2008 R2

Allmänt. Välkommen till SVENSKA VÅGs datorprogram för viktinsamling på PC.

Kom igång med Etikettskrivaren 1. Ladda ner följande installationsprogram Ladda ner Drivrutiner för etikettskrivare Zebra

Användarmanual för. Internetbokningen. Version 1.0

Linuxadministration I 1DV417 - Laboration 5 Brandvägg och DNS. Marcus Wilhelmsson marcus.wilhelmsson@lnu.se 19 februari 2013

Meditech. CardioVisions. version 1.19.xx. Installationshandledning

8 Bilaga: Installationer

AVR Studio 4 Och AVRFLASH

Laboration 2: Ett kommunikationssystem

FLEX Personalsystem. Uppdateringsanvisning

Kortfattad instruktion för installation och användning av streckodsapplikationer

Välkommen som användare av medietekniks och informatiks publika studentserver

Tips: Titta på relevanta genomgångar på webbplatsen

Transkript:

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 närmare på funktionalitet som Windows tillhandahåller dels när vi programmerar user mode tillämpningar men även i de fall vi programmerar drivrutiner för kernel mode. Utvecklingsverktyg väljes fritt av gruppen. Exempel på utvecklingsverktyg är: Dev-C++, http://www.bloodshed.net/devcpp.html (använd senaste betan). Redovisning Redovisning av uppgifter för betyget G sker gruppvis, alla i gruppen ska kunna redovisa väsentliga delar av uppgifterna. Uppgifterna för betyget H redovisas individuellt. Tips I Dev-C++ behöver du ange följande parameter för länkaren för att kunna arbeta med Winsock 2 biblioteket: -lws2_32 Detta gör du genom menyn: Project Project Options Parameters Linker Installera den virtuella maskinen Hämta den virtuella maskinen från kurshemsidan, http://www.ict.kth.se/courses/is1350/winxp.exe

och kör den för att packa upp den. OBS! Du behöver åtminstone 5GB ledigt diskutrymme med ntfs-filsystem. Hämta och installera VMWare Player från http://www.vmware.com/ om du inte redan har gjort det i labb 2. Starta VMWare Player och öppna den virtuella maskinen. Logga in med användaren windows utan att ange ett lösenord. Packa upp och installera Windows Device Driver Development Kit från foldern ddk på skrivbordet i den virtuella maskinen. Installera Dev cpp från skrivbordet (devcpp-4.9.9.2_setup) OBS! Om du startar om den virtuella Windows-datorn så måste du aktivera installationen. Har du tillgång till Internet kan du göra det, annars måste du skriva in en ny licensnyckel. Som KTH student kan du hämta en licensnyckel för Windows XP via MSDNAA, se http://www.kth.se/student/support/itsc/1.3813 Exempel på Windows Socket programmering Gå igenom och titta på exemplet i C:\Documents and Settings\windows\My Documents\exempel\WinSockets. OBS! Brandväggen kan behöva stängas av för att kunna köra serverdelen av exemplet. Anropa servern via loopback, 127.0.0.1 Uppgift 1: Client sockets I en föregående laboration (laboration 1) skrev du ett litet program för att läsa ut information om filer i Unix miljö. I den här laborationen ska vi skriva en klient för Windows som kan kommunicera med en färdig stat-server använd Dev C++ miljön. Det vill säga du ska endast skriva klienten (för Windows) servertillämpningen (FileInfoServer54321.exe) hittar du i katalogen fileinfoserver på skrivbordet. I katalogen fileinfoserver finns en fil med namnet test.txt som du kan testa att ditt program fungerar med. Eventuellt måste du sätta Win95-kompabilitet på FileInfoServer54321.exe för att den ska fungera. Klienttillämpningen ska kunna ta emot ett par argument från kommando-raden; det första argumentet talar om IP adressen till servern, nästa argument talar om till vilken port tillämpningen ska ansluta sig mot och det sista argumentet pekar ut vilken fil vi ska få information om. Kör ditt program (om det heter rstatclient.exe) enligt nedan mot loopback interface:t 127.0.0.1: C:\Temp>rstatclient.exe 127.0.0.1 54321 test.txt Tillämpningen får som svar en färdigformaterad text (som i laboration 1), denna

text ska skrivas ut på skärmen. Tips, eftersom du inte vet hur mycket data du kommer att få som svar, kan du inte använda en buffert med förutbestämd storlek. Funktionen för att ta emot data ser ut på följande sätt: int recv(socket s, char* buf, int len, int flags); Beskrivning av parametrar: s [in] The descriptor that identifies a connected socket. buf [out] The buffer for incoming data. len [in] The length, in bytes, of buf. flags [in] Pointer to flags. Detta medför att om du till exempel har allokerat en buffert på 512 tecken kan du behöva anropa recv flera gånger i en loop, så länge det finns data att läsa från socket:en. Funktionen returnerar ett heltal som talar om hur många bytes som tagits emot (om inget gick fel). Tips, följande steg bör tillämpningen hantera: 1. Initiera 2. Skapa socket 3. Koppla upp sig mot servern 4. Skicka filnamnet till servern 5. Ta emot information om filen från server 6. Skriva ut informationen på skärmen 7. Koppla ner och frigöra resurser För referenser och hjälp med programmeringen se länkar under Dokumentation. Uppgift 2: Undersöka en drivrutin I den här uppgiften behöver du inte skriva någon kod, utan du ska istället analysera färdig kod. Du ska analysera en drivrutin kallad sioctl (finns i katalogen C:\ioctl), drivrutinen är ett exempel från Windows DDK. IOCTL är ett minimalistiskt exempel och är tänkt att demonstrera funktionalitet i Windows och är tänkt att fungera i undervisningssyfte. Din uppgift är att analysera koden och bilda dig en uppfattning om hur en drivrutin fungerar i Windows. Du ska kunna redogöra för centrala koncept gällande drivrutiner i Windows det vill säga hur en drivrutin kommunicerar, hanterar olika händelser, hur drivrutinstacken i Windows fungerar i grova drag, etc. IOCTL består av två delar dels själva drivrutinen men även ett program som kan kommunicera med drivrutinen.

Som hjälp kan du läsa om hur man skriver en Windows device driver på den här länken: http://www.adp-gmbh.ch/win/misc/writing_devicedriver.html Instruktioner för att kompilera och köra exemplet: Börja med att öppna ddk-prompten från startmenyn, välj Windows XP och Free Build Environment. Gå till katalogen C:\ioctl. (OBS! Sökvägen till källkodskataloger får inte innehållet blanksteg). Kompilera med kommandot build. När kompileringen är klar finns klienten ioctlapp.exe i katalogen C:\ioctl\exe\objfree_wxp_exe_x86\i386 och drivrutinen sioctl.sys i C:\ioctl\sys\objfree_wxp_exe_x86\i386. Kopiera sioctl.sys till C:\ioctl\exe\objfree_wxp_exe_x86\i386. Nu kan du köra ioctlapp.exe Uppgift 3: En drivrutin med tillhörande user mode program Utifrån din analys i ovanstående steg ska du skapa en enkel prototyp för en drivrutin samt ett user mode program som kan kommunicera med drivrutinen. Din drivrutin ska inte göra speciellt mycket, det ska räkna antalet gånger någon försöker göra en read respektive write operation mot den. Eftersom operativsystemet är sårbar och känslig för kernel mode kod bör din drivrutin följa en någorlunda god programmeringssed, detta innebär att drivrutinen ska kunna laddas in men även laddas ur. Därför behöver din drivrutin frigöra eventuella resurser den har initierat då den laddas ur minnet. Förutom att kunna hantera inladdning och urladdning ska din drivrutin som sagt räkna antalet read respektive write operationer som drivrutinen anropats med, detta innebär att den måste kunna hantera IRP:n som motsvarar read och write. Varje gång drivrutinen laddas ur minnet ska antalet read och write operationer skrivas ut med hjälp av: DbgPrint( Detta skriver ut din text... ). Man kan fråga sig vart den utskrivna texten hamnar? Den kan man se med hjälp av verktyget DebugView som finns på skrivbordet i zip-arkivet DebugView.zip I katalogen där du har källkoden för din drivrutin skapar du följande två filer som ddk:n använder när du bygger: SOURCES TARGETNAME=YOURDRIVERNAME TARGETPATH=OBJ TARGETTYPE=DRIVER SOURCES=YourSourceCode.c MAKEFILE!INCLUDE $(NTMAKEEENV)\makefile.def

Öppna ddk-prompten på samma sätt som i uppgift 2 och byt till din källkodskatalog. OBS! Sökvägen till din källkodskatalog får inte innehållet blanksteg. För att kompilera din kod skriver du build. Usermode programmet har ett syfte och det är att anropa drivrutinen och skapa en del read och write anrop mot den med hjälp av vanliga Windows API:er som ReadFile och WriteFile. Se t.ex. http://msdn.microsoft.com/enus/library/aa364232(vs.85).aspx för en förklaring till ovanstående och andra systemanrop. Så här testar du att det fungerar För att ladda in och ur din drivrutin kan du använda dig av verktyget InstDvr som finns på skrivbordet. Kopiera först din kompilerade drivrutin med filändelse.sys till katalogen C:\Windows\System32\drivers. Kör sedan InstDrv och lägg till hela sökvägen till din drivrutin. Nu kan du installera, starta, stoppa och avinstallera din drivrutin i InstDrv. Eventuellt måste du Starta DebugView och installera och starta drivrutinen. Kör sedan usermode programmet, stoppa och avinstallera drivrutinen och kontrollera i DebugView att antalet anrop verkar stämma. OBS! Välj Capture Kernel under menyalternativet Capture. Eventuellt måste du ta bort markeringen för protect your computer (Windows Vista). Uppgift 4: Server sockets (Endast högre betyg) I den här uppgiften ska du skapa en egen server istället för den som du använde dig av i uppgift 1. Tanken är att servern ska kunna ta emot anrop från klientprogrammet du har skapat, det vill säga servern får ett filnamn. Serverprogrammet ska kontrollera om filen finns på servern och ge ett svar om detta. Om filen finns ska servern returnera storleken på filen och datum för när filen skapades. Detta innebär att du i denna uppgift kommer att arbeta med lyssnande sockets och att ta reda på information om en given fil på hårddisken. Tips, följande steg bör tillämpningen hantera: 1. Initiera 2. Skapa sockets 3. Lyssna på inkommande trafik 4. Acceptera inkommande trafik 5. Kontrollera om filen finns, ta reda på information om filen 6. Skicka ett svar till anroparen

Uppgift 5: Laddare för drivrutin (Endast högre betyg) I denna uppgift ska du fortsätta att utveckla user mode programmet för din drivrutin. Istället för att förlita dig till ett extern program som instdrv för att ladda in drivrutinen ska ditt user mode program själv kunna ladda drivrutinen. Detta innebär att flödet i ditt user mode program bör se ut på följande sätt: 1. Ladda drivrutinen 2. Generera read och write anrop mot drivrutinen 3. Ladda ur drivrutinen

Referenser [1] Winsock Reference http://msdn2.microsoft.com/en-us/library/ms741416.aspx [2] Network Programming Using WIN APIs http://msdn2.microsoft.com/en-us/library/ms817954.aspx [3] Win32 Socket Client http://www.codersource.net/win32_socket_client.html [4] Socket Server in Win32 http://www.codersource.net/winsock_tutorial_server_select_model.html [5] Win32 and COM development http://msdn2.microsoft.com/en-us/library/aa139672.aspx Labfiler Dev C++ http://www.bloodshed.net/devcpp.html DebugView http://www.microsoft.com/technet/sysinternals/utilities/debugview.mspx InstDrv http://www.rootkit.com/vault/hoglund/instdvr.zip DDK http://www.microsoft.com TIPS http://www.adp-gmbh.ch/win/misc/writing_devicedriver.html http://www.codeproject.com/kb/system/driverdev.aspx http://www.codeproject.com/kb/system/driverdev2.aspx http://www.codeproject.com/kb/system/driverdev3.aspx http://www.codeproject.com/kb/system/driverdev4asp.aspx http://www.codeproject.com/kb/system/driverdev5asp.aspx