+ All Categories
Home > Documents > Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf ·...

Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf ·...

Date post: 23-Jul-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
46
2002/2003 Pagani - Trentini Slide 1 Laboratorio di Sistemi Operativi LAB1 Installazione Windows e relativi ambienti di lavoro
Transcript
Page 1: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 1

Laboratorio di Sistemi Operativi

LAB1

Installazione Windows e relativiambienti di lavoro

Page 2: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 2

Note

• casi di studio: Unix/Linux, Windows 2000

• installazione S.O. e ambienti di lavoro

• programmazione (system call, API) in C

• modalità di esame:– esercizi programmazione nello scritto

– installazione S.O. in silab

– realizzazione di uno degli esercizi dello scritto

Page 3: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 3

Note (2)

• documentazione:– Testo Tanenbaum

– Lucidi sul sito

– man per syscall Unix

– http://msdn.microsoft.com per api win32

Page 4: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 4

Agenda

• Panoramica e storia di Windows

• Installazione Windows

• Installazione strumenti di sviluppo– Visual Studio

– Tools di monitoraggio e debugging

• Programma d’esempio

Page 5: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 5

Una citazione...

“Nothing would please me more than beingable to hire ten programmers and deluge thehobby market with good software.”

Bill Gates 1976

We are still waiting ...

Page 6: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 6

Piccola cronologia• 1981 MSDOS 1.0 - 16 bit, command line, single user, Intel 8088• 1985 Windows 1.0 - GUI su MSDOS; tutti i proc nello stesso address space• 1993 Windows NT 3.1 (progetto inziato nel 1988)

– 32 bit (puro), multipiattaforma (Intel, Alpha, MIPS), OS/2, POSIX

• 1995 Windows 95: trasferimento da MS-DOS a Win– 32 bit (quasi), virtual memory senza protezioni, multiprogramming, process

management– Win98: kernel non rientrante: 1! mutex per protezione

• 1996 Windows NT 4.0– progettato da Cutler (VMS); GUI compliant con Win95; aggiunta aspetti

security e affidabilita’; scritto quasi interamente in C

• 2000 Windows 2000 (derivato da NT)– vero 32-bit; protezioni; multi-threading; demand paged; plug & play; non ha

MS-DOS; rilasciato in 4 versioni

• 2001 Windows XP

Page 7: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 7

Windows NT

Page 8: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 8

Windows 2000 (2)

confronto in #linee codice

Win: politica di sviluppo/progettazione naif…

Page 9: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 9

programmazione Win2K

• win32 API: interfacce a syscall– syscall mai rese pubbliche

– API per gestione memoria e file, security, ifc grafica• numerose API per lo stesso scopo, con parametri differenti

– API +/- standard da Win95• ma possibili comportamenti differenti o API non supportate da

tutti sistemi

• ogni chiamata torna handle a “oggetto”– no inheritance e polimorfismo

Page 10: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 10

The Operating System Structure

E x e c u t i v e

client-server model

Page 11: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 11

Hardware abstractionlayer

• Nata dall’esigenza di supportare diversepiattaforme (Intel x86, DEC Alpha, MIPS,PowerPC,…)

• driver in C e assembly• Hal.dll

– Ce ne sono diversi sul CD di installazione, masolo uno viene copiato sul disco di sistema

• Halmps.dll Multiprocessor• Halapci.dll Advanced Configuration and Power Interface

• Halsp.dll Compaq System Pro

HAL

Page 12: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 12

• Funzioni lettura/scrittura device register:– Forniscono astrazioni circa I/O mappato in memoria

contro I/O ports

• Indirizzi system-wide per periferiche e interrupt– Forniscono un identificativo unico, esente da conflitti

sui diversi bus

– gestione uniforme interrupt

• Gestione DMA, clock, timers, BIOS, CMOS

DirectX bypassa HAL (prestazioni)

Hardware abstractionlayer

HAL

Page 13: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 13

• Astrazione dell’architettura hardware ad un livellosuperiore rispetto ad HAL

• Ntoskrnl.exe– Meccanismo di context switching e il codice per il

thread scheduling

– Kernel Objects• Supporto (creazione, per oggetti usati dall’Executive per

costruire gli oggetti visibili in user mode

• Control objects: interrupt, processi, Deferred Procedure Call– DPC ritarda exec parte non critica di interrupt routine

• Dispatcher objects: thread, mutex, events, waitable timers

Kernel(dizione Microsoft)KERNEL

Page 14: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 14

• in C, indipendente dall’architettura• System Services: interfaccia

– Funzioni chiamabili da user mode esportateattraverso Ntdll.dll (non tutte documentate)

• Components:– Funzioni chiamabili da kernel mode (uso

interno all’executive)– Gestiscono le politiche di gestioni di diverse

risorse del sistema

ExecutiveEXECUTIVE

Page 15: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 15

• object mngr: tiene traccia di tutti gli oggetti

• I/O mngr: gestisce I/O, fornisce servizi generici indipendenti daperiferiche

• process mngr: gestisce processi e thread

• memory mngr: per demand paging e protezioni

• security mngr: mecc. per protezioni liv. C2

• cache mngr: caching per multipli f.s.

• plug&play mngr (thread): riceve notifica di nuove periferiche e caricadriver opportuno

• power mngr (thread): controlla consumo batterie

• configuration mngr: gestisce il registry

• local procedure call mngr: per IPC locale

ExecutiveEXECUTIVE

Page 16: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 16

• non sono interni al ntoskrnl.exe : caricati dinamicamente• sono di vari tipi:

– Bus Driver• gestiscono device che possono avere device figli (PCI, PCMCIA,

USB)

– Function Driver• Hardware device driver

– controllano particolari device tramite HAL

• File system drivers

– Filter Driver• File System filter device driver

– per attuare disk mirroring, encryption intercettando le chiamate I/O

Device DriverDD

FS GD

Page 17: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 17

• Corrispondono alle interfacce (API) ufficiali(documentate) implementate ed usabili inWinNT

• NT nasce come successore di OS2

• deve supportare POSIX perche’ richiesto dalgoverno americano

• ma… l’unico che funziona e’ Win32

EnvironmentSubsystems

SUBSYSTEMS

Page 18: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 18

• E’ indispensabile per il funzionamento di Windows• supportate 3 classi API: Win32, Posix, OS/2• Csrss.exe

– console text windows– parte della Virtual DOS Machine– qualche altra funzione: getTempFile

• Win32k.sys– ora in kernel mode– GDI (Graphic Device Interface)– Window manager

• subsystem DLLs (Kernel32.dll, User32.dll, Gdi32.dll)– rimappano le win32 API su kernel system services (Ntoskrnl.exe.

Win32k.sys), per condivisione codice tra procs

Win32 EnvironmentSubsystem

SUBSYSTEMS

Page 19: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 19

Win32 Environment Subsystem (1)

Vari modi di implementare funzioni Win32 API

Page 20: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 20

Funzioni esportate

Page 21: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 21

• Object manager– Gestisce tutti gli Objects

• Meccanismo comune ed uniforme per usare lerisorse del sistema

• protezione e limiti sull’uso (quote)

• condivisione tra processi

• traccia di qual oggetti sono in uso (garbage coll.)

• nessun oggetto al momento del boot

ExecutivecomponentsEXECUTIVE

Page 22: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 22

Struttura degli Objects (?)

2 pool pagine, uno paged e l’altro pinneduser puo’ creare oggetto: handle con puntatore aoggetto, flag e diritti

Page 23: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 23

Installazione Windows

• Partizioni

• Boot CD– (opzionale) Fare i dischi di avvio

• Scegliere varie opzioni

• Reboot (più di uno)

Page 24: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 24

Partizioni

• Dimensionamento

• Tipi

• MBR

• Strumenti– Partizionare

– Salvare/recuperare

Page 25: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 25

Dimensionamento

• Se si vuole installare anche Linux J occorredividere lo spazio su disco in più partizioni oavere più dischi

• Windows necessita circa 2GB (fino a 3/4 GB se siinstallano sw vari - ad es. l’ambiente di sviluppo)

• Linux, per una configurazione “normale”, varia dacirca 1GB fino a 3/4 GB– Importante: per Linux servono due partizioni (una per il

sistema e una per lo swap space)

Page 26: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 26

Tipi

• Riferendosiall’architettura di unPC standard:– Primary

– Extended

– Logical

• Dimensioni in settori,blocchi o cilindri– Begin, end

Page 27: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 27

MBR (1)

• Master BootRecord– Tabella partizioni

– Partizione attiva

Page 28: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 28

MBR (2)

Page 29: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 29

MBR (3)

Page 30: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 30

Partizionare• Command prompt: Fdisk.exe

• All’installazione:

Page 31: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 31

Partizionare (2)

Page 32: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 32

Partizionare (3)

Page 33: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 33

FDISK (1)

Page 34: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 34

FDISK (2)

• Create

• Sceglieretipo

• Specificaredimensione

• Uscire

• Reboot J

Page 35: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 35

Boot da CD

• Inserire cd J

• Controllare BIOS settings

Page 36: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 36

Boot da floppy

• E’ possibile fare i floppy di boot usando un CD diinstallazione di Windows (NT/2000/XP) e un PCgià installato

• Inserire CD J e aprire un command prompt• Andare in “winnt” (o simili)• Eseguire “winnt /?” per avere l’elenco delle

opzioni• Trovare quella che fa scattare la creazione dei

floppy di avvio

Page 37: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 37

Punti salienti (license)

Page 38: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 38

Punti salienti (passwd)

Page 39: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 39

*Installazione AmbienteSviluppo*

• Visual Studio

• (vedere doc PDF)

Page 40: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 40

Installazione strumenti utili

• Performance monitor (già installato)• TaskManager (già installato) ctrl-alt-del• Resource Kit, SDK, Support Tools

– PFMon, gflags, oh, qslice, pviewer, pstat,putlist, tlist, drivers, winobj, Pwalk, ...

– Sono a linea di comando (quindi OK J)

• Dove pescarli?– www.microsoft.com, CD VisualStudio

Page 41: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 41

Primo esempio

• Un classico: HelloWorld

• Solo per testare la correttezzadell’installazione

• Edit/Compile/execute

Page 42: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 42

Sorgente

// hello.cpp : entry point for the console application.

#include "stdafx.h"

int main(int argc, char* argv[])

{

printf("Hello World!\n");

return 0;

}

Page 43: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 43

Tipo di progetto

Page 44: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 44

Tipo di progetto (2)

Page 45: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 45

Sorgente

Page 46: Laboratorio di Sistemi Operativihomes.di.unimi.it/sisop/lucidi/Lab1_InstWin_14-03-2003.pdf · •casi di studio: Unix/Linux, Windows 2000 •installazione S.O. e ambienti di lavoro

2002/2003 Pagani - Trentini Slide 46

Run


Recommended