windows nt® internals paolo cremonesi. 2 testo consigliato l f. avery bishop, “inside windows...

180
Windows NT® Internals Windows NT® Internals Paolo Cremonesi

Upload: vittoria-d-alessandro

Post on 02-May-2015

223 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

Windows NT® InternalsWindows NT® Internals

Paolo Cremonesi

Page 2: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

2

Testo consigliatoTesto consigliato

F. Avery Bishop, “Inside Windows NT”, Microsoft Press

http://www.ntinternals.com

Page 3: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

3

ObiettiviObiettivi

Spiegare l’architettura interna di Windows NT 4

Alcune indicazioni su Windows NT 5(Windows 2000)

Pre-requisitiFamiliarità con i concetti base dei sistemi

operativiNon sono necessarie conoscenze su Windows

NT e sulla programmazione sotto MS Windows

Page 4: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

4

IntroduzioneIntroduzione

Sistema operativo Windows NTprogetto nato nel 1989preemptivereentrantvirtual memorymulti piattaformaparzialmente compatibile con DOS e Win3.1parzialmente compatibile con OS2 e Posix

Page 5: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

5

Estensioni in Windows 2000Estensioni in Windows 2000

Plug and play Job object indirizzamento a 64 bit

Page 6: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

6

AgendaAgenda

Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary

Page 7: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

7

Windows NT Key System FilesWindows NT Key System Files

NTOSKRNL.EXE NTKRNLMP.EXE UPTOMP.EXE HAL.DLL NTDLL.DLL XyzDriver.SYS

Page 8: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

8

Windows NT Key System FilesWindows NT Key System Files

NTOSKRNL.EXE\WINNT\SYSTEM32\ Windows NT executive e kernel

NTKRNLMP.EXEVersione multi-processore (MP)

dell’executive e del kernel

La procedura di installazione sostituisce (overlays) NTOSKRNL.EXE con questo file nei sistemi MP

Page 9: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

9

Windows NT Key System FilesWindows NT Key System Files

UPTOMP.EXE\NTRESKIT\Strumento per convertire un’installazione

mono-processore in una multi-processore XXXDRIVER.SYS

\WINNT\SYSTEM32\DRIVERS\Una sola versione indipendentemente

dall’HAL

Page 10: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

10

Windows NT Key System FilesWindows NT Key System Files

HAL.DLL\WINNT\SYSTEM32\Hardware Abstraction LayerSul CD di installazione i file si chiamano

HALXXX.DLLVersioni diverse per le diverse schede madriLa procedura di installazione seleziona l’HAL

appropriato e lo copia com HAL.DLL

Page 11: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

11

Device drivers

Win32User,GDI

VirtualMemory

Processes& Threads

SecurityCache

ManagerI/O Manager

Hardware interfaces (buses, I/O, interrupts, timers, clocks, DMA, cache control, etc.)

ReplicatorAlerter

Service Controller

WinLogon RPC

EnvironmentSubsystems

UserApplication

Subsystem DLLs

POSIX

OS/2

SessionManager

System Processes Services Applications

Filesystems Object management / Executive RTL

Kernel

Hardware Abstraction Layer (HAL)

EventLogger

UserMode

SystemThreads

KernelMode

Executive API

Win32

NTDLL.DLL

NTOSKRNL.EXE

Page 12: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

12

Windows NT VersionsWindows NT Versions

Build numbersIncrementato ogni volta che i sorgenti sono

ricompilati Service packs

Packages di nuovi .EXEs, .DLLs.Risolvere bug, fornire nuove funzionalitàNon cambiano il build number

Free vs. Checked buildFree = “retail”, Checked = “debug”

Page 13: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

13

Programmi | Strumenti Programmi | Strumenti di amministrazione | di amministrazione | Windows NT DiagnosticsWindows NT Diagnostics

Windows NT VersionsWindows NT Versions

Page 14: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

14

Packaging del prodottoPackaging del prodotto

Windows NT Workstation versione desktop, ha tutte le funzionalitàlicenza per 2 CPU

Windows NT Serverfunzionalità per server networkinglicenza per 4 CPU

Windows NT Server Enterprise Editionlicenza per 8 CPU3GB di spazio di indirizzamentosoftware aggiuntivo

Page 15: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

15

Packaging del prodottoPackaging del prodotto

Il kernel e i driver sono gli stessi

Page 16: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

16

AgendaAgenda

Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary

Page 17: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

17

Processi e ThreadsProcessi e Threads

Cosa è un processo?Un’istanza di un programma in esecuzioneun processo si crea per eseguire un

programmaavviare un’applicazione crea un processoL’argomento principale all’API

CreateProcess è il nome del file immagine (eseguibile)

Page 18: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

18

Processi e ThreadsProcessi e Threads

Cosa è un thread?Un contesto di esecuzione all’interno di un

processoL’argomento principale all’API CreateThread

è il nome di una funzione (entry point)Tutti i thread in un processo condividono lo

stesso spazio di indirizzamento

Page 19: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

19

Processi e ThreadsProcessi e Threads

Ogni processo all’avvio è composto da un solo threadIl thread corrisponde all’esecuzione della

funzione “main”ll thread può creare altri thread nello stesso

processoIl thread può creare altri processi

Page 20: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

20

Per-processPer-processaddress spaceaddress space

System wide Address SpaceSystem wide Address Space

ThreadThreadThreadThread

ThreadThread

Processi e ThreadsProcessi e Threads

Per-processPer-processaddress spaceaddress space

ThreadThread

ThreadThread

Page 21: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

21

00000000

7FFFFFFF

FFFFFFFF

Univoco per ogni processo, accessibile in modo user

System wide, accessibile in modo kernel

Per process, accessibile in modo kernel

80000000

Application codeGlobals

Per-thread stacksDLL code

Kernel and ExecutiveHAL, Boot drivers

System cache, paged pool, non-paged pool

Process page tables, hyperspace

4GB Virtual Address Space4GB Virtual Address Space

Page 22: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

22

Kernel ModeKernel Mode

Componenti critiche per le prestazioniAccesso diretto all’hardwareAccesso diretto ai dati di altri thread/processiNessun context/switch (tranne per lo

scheduling) Protezione del sistema operativo

dall’utente Filosofa object/oriented

Ma è scritto in C, non in C++

Page 23: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

23

Kernel Mode Vs. User ModeKernel Mode Vs. User Mode

Stato del processore Controlla l’accesso alla memoria

Ogni pagina ha un tag che indica il modo richiesto per leggere o scrivere

Protegge il sistema dall’utenteProtegge l’utente da se stessoLe pagine di codice hanno tag “no write in any

mode” Controlla la possibilità di eseguire

istruzioni privilegiate

Page 24: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

24

Kernel Mode Vs. User ModeKernel Mode Vs. User Mode

Una astrazione di Windows NTIntel: Ring 0, Ring 3 Power PC: “supervisor” e “user”

Proprietà associate ai threadI thread possono cambiare da user a kernel

e viceversaLa modalità non influenza lo scheduling

Page 25: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

25

ComponentiComponenti Access modeAccess mode

Applicazioni User

Subsystem processes User

Executive Kernel

Kernel Kernel

Drivers Kernel

HAL Kernel

Kernel Mode Vs. User ModeKernel Mode Vs. User Mode

Page 26: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

26

Entrare in “kernel mode”Entrare in “kernel mode”

Il codice è eseguito in kernel mode per:Richiesta da parte di un thread in user

modeInterrupt da dispositivi esterniThread “dedicati” in kernel mode

Page 27: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

27

Entrare in “kernel mode”Entrare in “kernel mode”

Richiesta da parte di un thread in user modeattraverso il “system service dispatch”il codice in kernel mode code viene eseguito

nel contesto del thread

Page 28: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

28

Entrare in “kernel mode”Entrare in “kernel mode”

Interrupt da dispositivi esterniInterrupt (come tutte le eccezioni) sono

gestiti in kernel modeL’interrupt dispatcher di Windows NT invoca

la interrupt service routine (ISR)La ISR viene eseguita nel contesto della

thread interrotto (“arbitrary thread context”)La ISR speso richiede l’esecuzione di una

Deferred Procedure Call (DPC), anche essa in kernel mode

Page 29: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

29

Entrare in “kernel mode”Entrare in “kernel mode”

Thread “dedicati” in kernel modeAlcuni thread di sistema sono sempre in

kernel mode (la maggior parte nel processo “System”)

Scheduling e preemption sono analoghi come per ogni altro thread

Page 30: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

30

Accounting del tempo di kernelAccounting del tempo di kernel

Processor Time = tempo totale di occupazione della CPUelapsed real time - idle time

Processor Time = User Time + Privileged Time

Privileged Time = tempo passato in kernel mode

Il Privileged Time comprende:Interrupt Time, DPC TimeAltri kernel-mode time (nessun contatore)

Page 31: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

31

Accounting del tempo di kernelAccounting del tempo di kernel

Programmi | Strumenti di amministrazione | Performance Monitor

Page 32: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

32

Interrupt dispatch routine

•Disabilita gli interrupt•Registra lo stato della CPU•Maschera gli interrupt dello stesso livello•Trova e chiama la ISR appropriata•Ripristina lo stato della macchina

Comunica al device di fermare gli interr.

Interroga lo stato del device, etc.

Richiede una DPC

Ritorna al chiamante

Interrupt service routine

interrupt !

user or kernel mode

kernel mode Nessun thread o process context switch!

Interrupt DispatchingInterrupt Dispatching

Page 33: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

33

AgendaAgenda

Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary

Page 34: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

34

Device drivers

Win32User,GDI

VirtualMemory

Processes& Threads

SecurityCache

ManagerI/O Manager

Hardware interfaces (buses, I/O, interrupts, timers, clocks, DMA, cache control, etc.)

ReplicatorAlerter

Service Controller

WinLogon RPC

EnvironmentSubsystems

UserApplication

Subsystem DLLs

POSIX

OS/2

SessionManager

System Processes Services Applications

Filesystems Object management / Executive RTL

Kernel

Hardware Abstraction Layer (HAL)

EventLogger

UserMode

SystemThreads

KernelMode

Executive API

Win32

NTDLL.DLL

Page 35: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

35

Windows NT ExecutiveWindows NT Executive

Strato superiore di NTOSKRNL.EXE Fornisce servizi OS generici

Processi, thread, gestione della memoria, I/O, comunicazione tra processi, sincronizzazione, sicurezza

Per lo più è in C (portabile!)

Page 36: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

36

Windows NT ExecutiveWindows NT Executive

Esporta funzioni (servizi) che possono essere invocate da API in user modeAd esempio,

Win32 ReadFile -> executive NtReadFile Gira in kernel mode La maggior parte delle API non sono

documentateUtilizzate dagli sviluppatori di sotto-sistemi

Page 37: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

37

Windows NT Executive:Windows NT Executive:5 componenti5 componenti

Process e thread managercrea e termina thread e processile funzioni sono implementate in realtà nel

kernelquesto executive aggiunge alcune funzionalità

ed estende la semantica degli oggetti del kernel

Virtual memory managerimplementa il meccanismo di memoria virtualefornisce il supporto alla I/O cache

Page 38: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

38

Windows NT Executive:Windows NT Executive:5 componenti5 componenti

Security reference monitorgestisce le politiche di sicurezza sul computer

localecontrolla le risorse del sistema operativo

I/O systemimplementa funzioni di I/O device-independentindividua i device driver appropriati

Cache managercache delle pagine lette più di recente, read

ahead, write back

Page 39: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

39

Windows NT Executive:Windows NT Executive:funzioni di supportofunzioni di supporto

Object managecrea, gestisce e rimuove gli oggetti

dell’executivegestisce le strutture dati astratte che

rappresentano risorse come processi, thread, ecc.

LPCottimizzazione del RPC (Remore Procedure Call)gestisce la comunicazione tra client/server su

uno stesso computer

Page 40: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

40

Windows NT Executive:Windows NT Executive:funzioni di supportofunzioni di supporto

Common runtime librarygestione di stringhefunzioni algebricheconversione di tipi

Gestione della memoriaallocazione/de-allocazione di memoria

paginata e nonmeccanismi di sincronizzazionesemafori

Page 41: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

41

Windows NT KernelWindows NT Kernel

Le operazioni più importante del kernel:determinare come il sistema operativo usa il

processore garantire un uso prudente (fairness)

isolare l’executive dall’architettura Lo strato inferiore in NTOSKRNL.EXE Maschera le differenze tra diverse

architetturex86 vs. Alpha vs., etc.

Page 42: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

42

Machine Independent CMachine Independent C

AssemblerAssembler

Machine Dep. CMachine Dep. C

Windows NT KernelWindows NT Kernel

Dimensioni: Codice: 60k su Intel 80% indipendente

dalla macchina Non è un

“microkernel”

Page 43: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

43

Windows NT KernelWindows NT Kernel

Funzioni principaliException trap e interrupt dispatchingPrimitive di sincronizzazione OS (MP e UP)Gestione dello scheduling e del context

switching dei threadGeneriche operazioni di waitFornisce gli oggetti base che sono usati

dall’executive e (alcuni) esportati in user mode

Page 44: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

44

Windows NT KernelWindows NT Kernel

Il kernel differisce dall’executive Non è mai paginato dalla memoria La sua esecuzione non è mai interrotta

da altre threadad eccezione delle ISR

Non verifica mai la correttezza dei parametri di chi chiama le sue funzioni

Non implementare politiche di gestionetranne per il thread scheduling

Page 45: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

45

Windows NT KernelWindows NT Kernel

Il kernel implementa dei semplici oggetti (kernel object)

Molti oggetti dell’executive incapsulano uno o più kernel object

Page 46: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

46

Windows NT Kernel: Windows NT Kernel: supporto hardwaresupporto hardware

Isolare (assieme all’HAL) l’executive dall’architetturathread context switchinggestione della cachegestione del TLB

Page 47: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

47

Windows NT Kernel vs. HALWindows NT Kernel vs. HAL

Kernelfunzioni specifiche di un’architettura

HALfunzioni che possono essere diverse su

macchine diverse all’interno della stessa architettura

Page 48: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

48

HAL - Hardware Abstraction HAL - Hardware Abstraction LayerLayer

Un file binario caricato separatamente (HAL.DLL)

Scopo:Isolare (astrarre) Kernel e Executive da

dettagli specifici di una piattaformaPresentare un modello di architettura

uniforme per facilitare lo sviluppo dei driver

Page 49: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

49

HAL - Hardware Abstraction HAL - Hardware Abstraction LayerLayer

HAL maschera:dispositivi di I/O specifici del sistema (bus,

DMA, ... )meccanismi di cache coherency e di

flushing, orologi di sistemasupporto SMP, programmazione degli

interrupt HAL contiene alcune subroutines per

Executive e Kernel

Page 50: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

50

HAL - Hardware Abstraction HAL - Hardware Abstraction LayerLayer

Windows NT comprende HAL per alcune architetture:PC-compatibili, DEC Alpha, Power PCI produttori di hardware possono fornire altri

HAL

Page 51: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

51

HalGetBusDataHalGetBusDataByOffsetHalAssignSlotResourcesHalSetBusDataHalSetBusDataByOffsetHalTranslateBusAddressHalGetInterruptVectorHalGetAdapterREAD_REGISTER_ULONG WRITE_PORT_UCHAR

Routine HAL di esempioRoutine HAL di esempio

HAL - Hardware Abstraction HAL - Hardware Abstraction LayerLayer

Page 52: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

52

Convenzioni di nome:Convenzioni di nome:KernelKernel e e HALHAL

Kernel

Ke: Kernel Ki: Kernel internal

(not available outside the kernel)

HAL

Hal: Hardware Abstraction Layer

READ_, WRITE_: I/O port and register access

Page 53: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

53

Convenzioni di nome:Convenzioni di nome:ExecutiveExecutive

Ex: General executive routine

Ob: Object management

Exp: Executive private (not exported)

Io: I/O subsystem Cc: Cache manager Se: Security

Mm: Memory management

Ps: Process structure Rtl: Run Time

Library Lsa: Security

Authentication FsRtl: File System

Run Time Lib Zw: File access, etc.

Page 54: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

54

AgendaAgenda

Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary

Page 55: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

55

User processUser process

I “processi” in user mode possono essere classificati in:Service processSpecial system support processEnvironment subsystemsUser applications

Page 56: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

56

User processUser process

Service processsono l’equivalente dei daemon UnixEvent Logger, IIS, ...

Special system support processProcessi di sistema che non sono eseguiti

come serviziLogon process, session manager, ...

Page 57: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

57

User processUser process

Environment subsystemespongono i servizi nativi del sistema

operativo, forniscono una “personalità”Win32, Posix 1.x, OS/2 1.2

User applicationWin32Windows 3.1MS-DOSPosix 1.xOS/2 1.2 (modo console)

Page 58: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

58

Environment SubsystemsEnvironment Subsystems

Espone le API “native”Estende le funzionalità native di Windows

NT Due parti

Subsystem DLL Convertono le API documentate in API native

Environment Subsystem Process Mantengono lo stato dei processi “utente” Implementano alcune API aggiuntive

Page 59: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

59

Environment SubsystemsEnvironment Subsystems

Tre ambienti forniti con Windows NT:Win32

speciale, Windows NT non può funzionare senza

Posix 1.x solo lo standard, senza componenti opzionali

OS/2 supporto solo per applicazioni carattere

Non sono forniti strumenti e documentazione per estendere i sottosistemi

Page 60: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

60

Environment SubsystemsEnvironment Subsystems

Ciascun subsystem fornisce l’accesso ad un sotto insieme ad un diverso sotto insieme dei servizi di Windows NT

Le applicazioni di un subsystem possono fare cose “proibite” ad applicazioni di altri subsystemAd esempio, Fork è disponibile solo nel

subsystem Posix

Page 61: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

61

Environment SubsystemsEnvironment Subsystems

Le applicazioni devono essere linkate per un particolare subsystem

Quando l’applicazione (.EXE) è eseguita, il codice di creazione dei processi esamina il tipo di subsystem nell’header del file, per poter notificare all’appropriato subsystem del nuovo processo

Page 62: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

62

Environment SubsystemsEnvironment Subsystems

Le applicazioni utente non accedono direttamente ai servizi nativi del sistema operativo, ma passano attraverso una o più subsystem librerie dinamiche (DLL)

Le subsystem DLL traducono una funzione documentata nell’appropriata chiamata non documentatala DLL Win32 implementa le Win32 APIla DLL Posix implementa le Posix 1003.1 API

Page 63: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

63

Environment Subsystems:Environment Subsystems:Applicazioni MS-DOSApplicazioni MS-DOS

NTVDM (NT Virtual Dos Machine)emula un processore Intel 486 con MS-DOS

Binari sono compatibili suIntel, DEC Alpha, Power PC, MIPS 4000

Ogni applicazione DOS è eseguita in una NTVDM separatapreemptive multitaskingl’eventuale crash di un’applicazione no

influenza le altre

Page 64: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

64

Environment Subsystems:Environment Subsystems:Applicazioni MS-DOSApplicazioni MS-DOS

La NTVDM ha tre threadDue thread sono usati per gestire

l’ambiente della NTVDMUn thread esegue l’applicazione

(single thread application) La NTVDM non è un subsystem

si appoggia al Win32 subsystem Non tutte le applicazioni DOS sono

supportate

Page 65: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

65

Environment Subsystems:Environment Subsystems:Applicazioni Win16Applicazioni Win16

Applicazioni per Windows 3.x WOW machine (Win16-on-Win32) Si appoggia a NTVDM (Win16 NTVDM) Non è un vero subsystem

Si appoggia a Win32 I binari sono compatibili su tutti i sistemi

che supportano NTVDM

Page 66: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

66

Environment Subsystems:Environment Subsystems:Applicazioni Win16Applicazioni Win16

La Win16 NTVDM ha tre threadDue thread sono usati per gestire

l’ambiente della NTVDMUn thread esegue tutte le applicazione

Win16 Non sono preemptive multitasking

Non tutte le applicazioni Win16 sono supportate

Page 67: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

67

Environment Subsystems:Environment Subsystems:Applicazioni Win16Applicazioni Win16

Win16 NTVDM separate Se un’applicazione va in crash non influenza

le altre Preemptive multitasking

Richiedono più RAM Non si possono eseguire applicazioni che

usano shared data invece di OLE (Object Linking and Embeding) e DDL (Dinamic Data Exchange)

Page 68: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

68

Environment Subsystems:Environment Subsystems:Applicazioni PosixApplicazioni Posix

Portable Operating System Interface for Compting Environment (standard UNIX)

Richiede almeno una partizione NTFS I sorgenti sono portabili su tutte le

piattaforme Le applicazioni POSIX sono eseguite

ciascuna in uno spazio indirizzi separato

Page 69: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

69

Environment Subsystems:Environment Subsystems:Applicazioni OS/2Applicazioni OS/2

Solo applicazioni carattereE’ disponibile un add-on per applicazioni OS/2

1.x graficheNessun supporto per versioni successive

Solo su piattaforme IntelAlcune applicazioni OS/2 (real mode

application) possono essere eseguite sotto DOS (NTVDM)

Spazio di indirizzamento privato per ogni applicazione

Page 70: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

70

Environment Subsystems:Environment Subsystems:Applicazioni Win32Applicazioni Win32

Le applicazioni sono sorgente-compatibili su tutte le architetture

Dato che parte del subsystem è sempre in kernel mode, le applicazioni Win32 sono le più veloci

Page 71: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

71

Environment Subsystems:Environment Subsystems:Win32Win32

Essenziale al funzionamento di Windows NT

Le componenti principali sonoenvironment subsystem processkernel mode device driver

Page 72: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

72

Environment Subsystems:Environment Subsystems:Win32Win32

Win32 Environment Subsystem Processfinestre consolecreazione/eliminazione di processi e threadparte della Virtual DOS Machine (VDM) per il

supporto parziale di applicazioni DOS a 16 bit

funzioni di utilità di vario tipoGetTempFile, DefineDosDevice, ExitWindowsEx, ...

Page 73: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

73

Environment Subsystems:Environment Subsystems:Win32Win32

Kernel Mode Win32 Device Drivergestore delle finestre (Windows manager)

gestisce gli eventi associati alle finestre (mouse, tastiera, resize, ecc.)

Graphical Device Interface (GDI) una libreria di funzioni per i dispositivi di output grafici

generici (funzioni per line, testo, ecc.)

insieme di device driver per la grafica (video e stampanti)

parecchie subsystem DLL traducono le Win32 API nelle appropriate chiamate a

NTOSKRNL.EXE e WIN32K.SYS

Page 74: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

74

NTDLL.DLLNTDLL.DLL

Speciale libreria si sistema di supporto alle subsystem DLL

Contiene due tipi di funzioniFunzioni di interfaccia tra le subsystem DLL

e i servizi dell’executiveFunzioni di supporto aggiuntive

Page 75: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

75

NTDLL.DLLNTDLL.DLL

Funzioni di interfaccia tra le subsystem DLL e i servizi dell’executiveNell’executive ci sono più di 200 funzioni

NtCreateFile, NtSetEvent, …

NTDLL contiene entry point con lo stesso nome

Il codice nell’entry point causa la transizione in kernel mode per poter invocare la corrispondente funzione in NTOSKRNL.EXE

Page 76: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

76

NTDLL.DLLNTDLL.DLL

Funzioni di supporto aggiuntiveFunzione per il caricamento degli eseguibiliGestore dello heapGestore dell’Asynchronous Procedure Call

(ASP)...

Page 77: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

77

OS/2Win32

POSIX

Environment Subsystems

UserApplication

Subsystem DLL

Win32User/GDI

UserMode

Executive

Device Drivers Kernel

Hardware Abstraction Layer (HAL)

KernelMode

Systemand ServerProcesses

NTDLL.DLL

Environment SubsystemsEnvironment SubsystemsComponentsComponents

Subsystem process (Win32: CSRSS.EXE)

API DLL (Win32: KERNEL32.DLL, GDI32.DLL, USER32.DLL, ...)

Kernel-mode extension to executiveWin32 only: WIN32K.SYS

Page 78: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

78

Windows NT Simplified Windows NT Simplified Architecture (3.52)Architecture (3.52)

OS/2OS/2 Win32Win32 POSIXPOSIX

Environment SubsystemsEnvironment Subsystems

UserUserModeMode

KernelKernelModeMode

SystemSystemand Serverand ServerProcessesProcesses

ExecutiveExecutive

Device DriversDevice Drivers KernelKernel

Hardware Abstraction Layer (HAL)Hardware Abstraction Layer (HAL)

LPCLPC

UserUserApplicationApplication

Subsystem DLLSubsystem DLL11 22

Most Win32 Kernel APIsAll other Win32 APIs, including User and GDI APIs22

11

NTDLL.DLLNTDLL.DLL

Page 79: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

79

OS/2OS/2Win32Win32

POSIXPOSIX

Environment SubsystemsEnvironment Subsystems

Win32Win32User/GDIUser/GDI

UserUserModeMode

ExecutiveExecutive

Device DriversDevice Drivers KernelKernel

Hardware Abstraction Layer (HAL)Hardware Abstraction Layer (HAL)

KernelKernelModeMode

SystemSystemand Serverand ServerProcessesProcesses

11 3322

UserUserApplicationApplication

Subsystem DLLSubsystem DLL

LPCLPC

Most Win32 Kernel APIsMost Win32 User and GDI APIsA few Win32 APIs33

2211

NTDLL.DLLNTDLL.DLL

Windows NT Simplified Windows NT Simplified Architecture (4.0)Architecture (4.0)

Page 80: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

80

Ruolo (semplificato) del Win32 Ruolo (semplificato) del Win32 Subsystem ProcessSubsystem Process

Creazione e eliminazione dei processi Creazione e eliminazione dei thread Nome dei file temporanei Lettere dei dischi Controlli di sicurezza per il file system Gestione grafica delle applicazioni console (a

carattere) Parziale supporto per le applicazioni DOS a 16-

bit (NTVDM.EXE) NLS (National Local Service)

Page 81: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

81

call WriteFile(…)

call NtWriteFilereturn to caller

do the operationreturn to caller

Int 2Ereturn to caller

call NtWriteFiledismiss interrupt

Win32 application

WriteFile in KERNEL32.DLL

NtWriteFilein NTDLL.DLL

KiSystemServicein NTOSKRNL.EXE

NtWriteFilein NTOSKRNL.EXE

Chiamare le Win32 Kernel APIChiamare le Win32 Kernel API

Win32-specific

used by all subsystems

software interrupt

U

K

Page 82: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

82

Esaminare i simboli nei file Esaminare i simboli nei file immagineimmagine

Esaminare cosa è importato/esportato in un .EXE dall’ OSIn Explorer, cliccare con il pulsante destro

del mouse sull’EXE o DLL, poi scegliere “quick view” o “View Dependencies” (Dependency Walker tool nel ResKit SDK)

O utilizzare LINK /DUMP /EXPORTS /IMPORTS

Page 83: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

83

Esaminare i simboli nei file Esaminare i simboli nei file immagineimmagine

Guardare gli “import” di \WINNT\SYSTEM32\NOTEPAD.EXE

Guardare gli import/export di KERNEL32.DLLLa maggior parte delle funzioni esportate

sono chiamate Win32 documentate

Page 84: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

84

Esaminare i simboli nei file Esaminare i simboli nei file immagineimmagine

Guardare gli import/export di NTDLL.DLLNessuno degli export è documentatoAlcune sono simili alle stesse funzioni

esportate da NTOSKRNL.EXE, documentate nel DDK

Page 85: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

85

Esaminare i simboli nei file Esaminare i simboli nei file immagineimmagine

Guardare gli import/export di NTOSKRNL.EXECirca 1000 simboli esportatiCirca 300 delle funzioni esportate sono

documentate nel DDK Chiamabili solo in kernel mode

Page 86: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

86

Esaminare i simboli nei file Esaminare i simboli nei file immagineimmagine

Guardare tutti i simboli globali in NTOSKRNL.EXEDefiniti in \support\symbols\xxx\debug\exe\

ntoskrnl.dbgIl “Quick viewer” non li visualizzaUtilizzare il Kernel DebuggerCirca 4000 simboliGli export di NTOSKRNL.EXE sono un sotto

insieme di questa lista

Page 87: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

87

AgendaAgenda

Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary

Page 88: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

88

Windows NT Object ManagerWindows NT Object Manager

Componente esecutiva per gestire gli oggetti sistemaGli oggetti sono strutture dati con dei nomiGli oggetti gestiti comprendono i Win32

Kernel objects, ma non i Win32 User o GDI objects

L’object manager implementa gli handle che permettono la gestione degli oggetti in user mode

Page 89: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

89

Windows NT Object ManagerWindows NT Object Manager

L’object manager non è usato per tutte le strutture dati di is not used Windows NTSono quelle strutture che devono essere

condivise, identificate da un nome o esportate in user mode

Alcune strutture dati sono chiamate “oggetti” ma non sono gestite dall’object manager (ad es. oggetti DPC)

Page 90: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

90

Navigare nell’ Object ManagerNavigare nell’ Object Manager

WINOBJ.EXE dal MSSDK (\mssdk\bin\winnt\winobj.exe)

od da www.ntinternals.com

Page 91: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

91

AgendaAgenda

Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary

Page 92: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

92

Device driverDevice driver

Interfaccia tra il sistema di I/O e l’hardware

Tipicamente scritti in C/C++grazie all’HAL e al Kernel i sorgenti sono

portabili su architetture diverse

Page 93: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

93

Win32appliation

Win32 API DLLusermode

VDMVirtual Dvc Drvr

video port driver

Executiveand

Kernel

DOS/Win16 app.

kernelmode

GDI calls

ReadFile,WriteFile,DeviceIoControl,ecc.

videominiport

KDD

parallelportKDD

Kernel DeviceDriver (KDD)

Kernel DeviceDriver

(possibly app-specific)

User- And Kernel-Mode DriversUser- And Kernel-Mode Driversin Windows NT 4.0in Windows NT 4.0

Win32Subsystem(WIN32K.SYS)

displaydriver

spooler

printerdriver

GDI (graphics engine)

NT Executive Services

Page 94: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

94

Kernel-Mode Device DriversKernel-Mode Device Drivers

Moduli caricabili separatamente (drivername.SYS)Linked come dei .EXELinked a NTOSKRNL.EXE e HAL.DLL

Definiti nel file di “registry”La stessa area dei servizi Win32 (t.b.d.)

Si possono visualizzare i driver caricati con PSTAT.EXE o DRIVERS.EXE

Page 95: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

95

Kernel-Mode Device DriverKernel-Mode Device Driver

Hanno una struttura gerarchica Sono classificati in base al tipo

HardwareFile systemFilterNetwork redirectorMiniportWIN32K.SYS

Page 96: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

96

Kernel-Mode Device DriverKernel-Mode Device Driver

Page 97: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

97

Kernel-Mode Device DriverKernel-Mode Device Driver

Hardware device driverSi interfacciano direttamente con l’HAL per

gestire l’I/O di dispositivi fisici (disco, rete, ecc.)

File system device driverAccettano richieste di I/O associate ad un

file system e le trasformano in richieste di I/O per uno specifico dispositivo

Page 98: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

98

Kernel-Mode Device DriverKernel-Mode Device Driver

Filter driverdisk mirror e encryptionricevono una richiesta di I/O, operano sui

dati, e la passano al livello successivo Network redirector

sempre orientato a richieste di I/O di file system

trasmette richieste di I/O a macchine remote e viceversa

Page 99: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

99

Kernel-Mode Device DriverKernel-Mode Device Driver

Miniport driverad esempio, i driver SCSIlinkati al driver miniport generico

WIN32K.SYS driverdriver legati all’ambiente Win32

Page 100: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

100

File System: Virtual CacheFile System: Virtual Cache

Condivisa da tutti i file systems (locali e remoti, HD e CD)

La cache è applicata a tutti i fileCompresi i metadata del file system

Virtual cacheUsa il meccanismo standard della memoria

virtuale di Windows NT

Page 101: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

101

Cached File OperationsCached File Operations

Page 102: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

102

Cached File OperationsCached File Operations

Aprire un file:Trovare una view disponibileMappare i primi 256 KB del file nella view

Leggere o scrivere un cached file:Remappare se necessario la parte di file che

interessa nella cacheCopiare i dati tra applicazione e cacheL’I/O effettivo è eseguito dal meccanismo di

gestione della memoria virtuale (paging)

Page 103: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

103

ProcessProcessaddressaddressspacespace

SystemSystemaddressaddressspacespace

FileFile

Cached File OperationsCached File Operations

Page 104: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

104

Funzioni e controllo della cacheFunzioni e controllo della cache

“Read ahead” automatico e asincronoEseguito da un thread di sistema separato per

il “Readahead”Per default 64 KB di readaheadI dati successivi da leggere sono ipotizzati

sulla base delle precedenti 3 lettureDei suggerimenti per il “Readahead” possono

essere forniti a CreateFile: FILE_FLAG_SEQUENTIAL esegue 192 KB di

readahead FILE_FLAG_RANDOM_ACCESS disabilita il read ahead

Page 105: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

105

Funzioni e controllo della cacheFunzioni e controllo della cache

Write-back, non write-throughIl numero di “dirty page” controlla la

scrittura sistemi piccoli: Physical Pages / 8; sistemi medi: Physical Pages / 4; sistemi grandi: somma le due precedenti

Il thread “Lazy writer” accoda 1/4 delle “dirty page” ogni secondo per permettere di separare il thread “Write Behind” (NB: il “Lazy writer” non scrive su disco)

Page 106: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

106

Funzioni e controllo della cacheFunzioni e controllo della cache

La politica “write back” può essere modificata in CreateFile tramite il flag FILE_FLAG_WRITE_THROUGHOppure si può esplicitamente forzare la

scrittura su disco com FlushFileBuffers

Page 107: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

107

Funzioni e controllo della cacheFunzioni e controllo della cache

La cache può essere disabilitata per un singolo fileCreateFile con FILE_FLAG_NO_BUFFERINGRichiede che read/write siano fatte per

settoriI buffer devono essere allineati in memoria

per settori

Page 108: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

108

Memoria virtualeMemoria virtuale

Windows NT non LRUNon usa lo “usage bit” che praticamente ogni

architettura mette a disposizione per segnare una pagina di memoria utilizzata

Usa una FIFO modificataFIFO: la soluzione peggiore!La pagina selezionata viene messa in un’altra

FIFO (standby list)Se la pagina e usata ancora, viene spostata dalla

standby list di nuovo nel working setSi comporta male sotto stress

Page 109: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

109

AgendaAgenda

Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary

Page 110: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

110

System ThreadsSystem Threads

Routine interne che richiedono un thread context

Drivers o Executive possono creare system threadsSono sempre eseguiti in kernel modeSolitamente associati con il processo

“System” Ma possono essere associati ad altri processi

Sono preemptible (a meno che non alzino un IRQL superiore o uguale a 2)

Page 111: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

111

System ThreadsSystem Threads

Kernel mode API:PsCreateSystemThreadPsTerminateSystemThreadKeSetBasePriorityThreadKeSetPriorityThread

Page 112: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

112

AgendaAgenda

Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary

Page 113: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

113

Process-Based Windows NT Process-Based Windows NT CodeCode

“Pezzi” di Windows NT che sono contenuti in eseguibili (.EXE) separati e vengono eseguiti in processi distintiAvviati dal sistemaNon sono legati al login utente

Hanno un contesto di processo completo

Page 114: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

114

Process-Based Windows NT Process-Based Windows NT CodeCode

Sono di tre tipi:Environment Subsystems (già descritti)Win32 ServicesProcessi di system startup

Page 115: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

115

Gerarchia di creazione dei Gerarchia di creazione dei processiprocessi

TLIST.EXE (dal resource kit) TLIST /t mostra la gerarchia dei processi Un processo genitore può terminare

dopo aver creato dei processi figli TLIST in questo cosa non mostra il

processo che è terminato (come PS in Unix)EXPLORER.EXE è avviato da USERINIT.EXE,

che poi termina

Page 116: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

116

Gerarchia di creazione dei Gerarchia di creazione dei processiprocessi

Page 117: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

117

Process-Based Windows NT Process-Based Windows NT Code: Win32 ServicesCode: Win32 Services

Applicazioni (.EXE) Win32 che sono eseguite indipendentemente dall’utente che ha fatto loginSono avviate al boot o al logon Sopravvivono al logoffSono definite mediante l’API CreateService

(attraverso il Control Panel)Tipicamente non interagiscono con il desktop

Ottengono i parametri di avvio dal file di registro Gli errori sono loggati nel Windows NT Event Log

Page 118: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

118

Process-Based Windows NT Process-Based Windows NT Code: Win32 ServicesCode: Win32 Services

Utilizzano una forma di IPC per comunicare con i client

Tipicamente i servizi fanno uso dei meccanismi di sicurezza di Windows NT

Possono essere gestiti in modo remoto (start, stop, configurazione)

Il Server Manager permette il controllo remoto dei servizi

Il servizio non necessita di nessuna codice particolare per essere gestito in modo remoto

Page 119: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

119

Process-Based Windows NT Process-Based Windows NT Code: Win32 ServicesCode: Win32 Services

Utilizzare SRVANY.EXE, SC.EXE, SRVINSTW.EXE, INSTSRV.EXE nel resource kit

Esempi di servizi built-in in WindowsSchedule service (avvio manuale), Event

Log, Remote Access Server, IIS.

Page 120: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

120

ServiceController

Vita di un servizioVita di un servizioInstallazione: l’applicazione di setup comunica al Service Controller Manager (SCM) dell’esistenza del servizio

CreateService

ServiceProcesses

ControlPanel

Gestione: il Control Panel può avviare/fermare il servizio e cambiare i parametri di avvio

Boot/inizializzazione: il SCM legge dal Registry le informazioni sul servizio e l’avvia come richiesto

SetupApplication

Registry

Page 121: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

121

Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes

Processi separati caricati o avviati al boot (non come servizi o environment subsystems)

Il loro nome non è nel registry“Hardwired” nel code sorgente del kernel

La maggior parte sono eseguibili Win32, uno (SMSS) è un “native image”

Page 122: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

122

Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes

Idle: process id 0Parte dell’immagine di sistemaOspita i thread che sono idleNon è un vero processo o un threadSpesso è indicato come “System Process”

Page 123: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

123

Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes

System: process id 2Parte dell’immagine di sistemaOspita i thread definiti nel kernelNon è un vero processo o threadIl thread 0 (routine di nome

Phase1Initialization) lancia il primo vero processo (SMSS.EXE)

Page 124: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

124

Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes

SMSS.EXE: Session ManagerIl primo processo creatoPrende i parametri da

\Registry\Machine\System\CurrentControlSet\Control\Session Manager

Lancia dei sottosistemi (CSRSS.EXE) e WINLOGON.EXE

Page 125: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

125

Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes

WINLOGON.EXE: Logon processPresenta il primo prompt di login

(“enter username and password”)Lancia SERVICES.EXE, LSASS.EXE, e

NDDEAGNT.EXEQuando qualcuno esegue un login, lancia

USERINIT.EXE

Page 126: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

126

Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes

SERVICES.EXE: Service ControllerOspita molti servizi forniti con NTAvvia altri processi (servizi) non parte di NT

(elencati in \Registry\Machine\System\CurrentControlSet\Services )

LSASS.EXE: Local SecurityProcesso di autenticazione

Page 127: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

127

Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes

USERINIT.EXE:Avviato dopo il loginAvvia il desktop (EXPLORER.EXE) e termina

(per questo non lo so vede nell’output di TLIST; Explorer è un orfano)

EXPLORER.EXE:Explorer e i processi figli sono i creatori di

tutte le applicazioni

Page 128: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

128

Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes

System

SMSS

CSRSS WINLOGON

Idle

SERVICES LSASS USERINIT NDDEAGNT

EXPLORER

Page 129: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

129

AgendaAgenda

Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary

Page 130: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

130

Quattro contesti per Quattro contesti per l’esecuzione del codicel’esecuzione del codice

Process e thread context:Applicazioni utenteWin32 ServicesEnvironment subsystem processesSystem startup processes

Thread context ma nessun process:Thread nel “System” process

Page 131: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

131

Quattro contesti per Quattro contesti per l’esecuzione del codicel’esecuzione del codice

Routines chiamate da altri thread/processi:Subsystem DLLExecutive system service (NtReadFile, ecc.)GDI routine in WIN32K.SYS (e nei graphic

drivers) Nessun contesto (“Arbitrary thread

context”)Interrupt dispatchingDevice drivers

Page 132: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

132

Dove è il codice?Dove è il codice?

KERNEL32.DLL, GDI32.DLL, USER32.DLLEsportano i Win32 entry points

NTDLL.DLLFornisce allo user-mode accesso alle routine

di sistema (kernel-mode)Contiene lo heap manager, l’image loader, il

thread startup routine WIN32K.SYS

Il modulo che contiene il codice Win32 (prima era in CSRSS.EXE)

Page 133: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

133

Dove è il codice?Dove è il codice?

NTOSKRNL.EXE (or NTKRNLMP.EXE)Executive e kernelComprende la maggior parte delle routine

che sono eseguite come thread nel “system”

HAL.DLLHardware Abstraction Library

drivername.SYSLoadable kernel driver

Page 134: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

134

Fonti di informazione per Fonti di informazione per Windows NT InternalWindows NT Internal

LibriInside Windows NT (Solomon, MS Press)Advanced Windows (Richter, MS Press)Windows NT Workstation Resource Guide (MS

Press) MSDN Library

documentazione Platform SDK APIdocumentazione Windows NT Device Driver

Kit (DDK)Win32 Knowledge Base

Page 135: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

135

Fonti di informazione per Fonti di informazione per Windows NT InternalWindows NT Internal

www.sysinternals.comArticoli e strumenti su Windows NT internal

www.microsoft.com/hwdevPer costruttori di hardware e sviluppatori di

driver www.microsoft.com/hwdev/ntifskit

Installable File System Developers Kit www.cmkrnl.com

Windows NT device driver FAQ

Page 136: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

136

Fonti di informazione per Fonti di informazione per Windows NT InternalWindows NT Internal

www.mobiletape.comNT audio/video tape

comp.os.ms-windows.programmer.nt.kernel-mode-driversNewsgroup

Page 137: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

137

Windows 2000 previewWindows 2000 preview

Formalmente Windows NT 5Forse non ci saranno successive versioni di

Windows 9x

Page 138: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

138

Aspetti da migliorare in NT 4Aspetti da migliorare in NT 4

PrestazioniIl modello di sicurezza basato sui domini

non scala beneAmpia disponibilità di strumenti di misura,

ma poca possibilità di intervenire Gli strumenti di gestione delle prestazioni sono

rivolti agli sviluppatori, non ai gestori

MemoriaIndirizzamento a 64 bit

Facilità di gestione di grandi sistemi

Page 139: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

139

Cambiamenti nelle prestazioniCambiamenti nelle prestazioni

Nessun grande cambiamentoLe costanti di memoria andrebbero

aggiornate per una miglior scalabilità Quando ci sono più di 64 MB di Ram, gli NT Server

sono tutti considerati “Large”

Aggiunti due contatori ai tool di monitoring Disk % Idle Time counter System % Total Processor Time counter

Page 140: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

140

Cambiamenti in Windows 2000Cambiamenti in Windows 2000

NTFS Common Internet File System (CIFS) Microsoft Management Console Multi-user systems

WinFrame, Terminal Server Active Directory COM+

Page 141: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

141

Cambiamenti in Windows 2000Cambiamenti in Windows 2000

Fault tolerant Clustering Plug and Play Job Objects Very large memory (Alpha)

Page 142: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

142

NTFSNTFS

Compressione Nuovi servizi di crittografia NT 4 non è compatibile con il nuovo

NTFSa meno di non installare un nuovo driver

NTFS.SYS per una compatibilità limitata Master File Directory entries passano da

4K a 1K

Page 143: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

143

CIFS - Common Internet File CIFS - Common Internet File SystemSystem

File system distribuito simile a NFS Unix Possibilità di montare file system remoti

Page 144: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

144

CIFSCIFS

Page 145: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

145

Microsoft Management ConsoleMicrosoft Management Console

Page 146: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

146

System MonitorSystem Monitor

Alert service contatori per processo

Page 147: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

147

Disk adaptor Disk adaptor

Disk adaptorDisk adaptor

P r ima ryP r ocessor

Sy s tem bus

B ack upP r ocessor

Sy ste m bu s

Sh ar ed S CSI bu s

(Hear t b eat)

WA N

X1 0 ,0 ,0,2 1 0,0 ,0,2

M A C layer

Bro

ad

ca

st

ClusteringClustering

Page 148: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

148

ClusteringClustering

Un cluster è un insieme di computer che cooperano per fornire uno o più servizi

VantaggiScalabilitàFault tolerantEconimoci

Page 149: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

149

ClusteringClustering

Un cluster individua componenti hw/sw mal funzionantiriavvia la componentetrasferisce le funzionalità ad altre

componenti Migliora l’affidabilità del sistema e

riduce il mean time to repear

Page 150: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

150

ClusteringClustering

Astrazionirisorsedipendenzegruppivirtual server

Page 151: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

151

Clustering: risorseClustering: risorse

Sono l’unità base di gestione del cluster Fisiche

dischi, controller SCSI, schede di rete, … Logiche

indirizzo IP, volume di un disco, … Forniscono un’interfaccia identica per

essere gestite Le risorse possono migrare

Page 152: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

152

Clustering: dipendenzeClustering: dipendenze

Spesso il corretto funzionamento di una risorsa dipende dalla disponibilità di altre risorseUn database richiede un disco

Un albero di dipendenza descrive l’ordine in cui le risorse devono essere rese disponibili o fermate

Le dipendenze non possono attraversare i confini di un gruppo

Page 153: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

153

Clustering: gruppiClustering: gruppi

Una collezione di risorse che devono essere gestite coma una singola unità

Un gruppo contiene tutti gli elementi che sono necessari per eseguire un’applicazione

Se una risorsa del gruppo non funziona, l’intero gruppo non funziona

Page 154: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

154

Clustering: virtual serverClustering: virtual server

Astrazione che incapsula un servizio e le risorse necessarie per eseguire quel servizioè come una classe in C++tra le risorse compare un indirizzo IP

I virtual server possono itersecarsile risorse di virtual server diversi possono

essere condivise

Page 155: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

155

Clustering: Node managerClustering: Node manager

Gestisce l’appartenenza delle risorse al cluster

Invia periodicamente dei messaggi (heartbeat) agli altri nodi nel clusterse un nodo non risponde, manda un

broadcast agli altri membri per verificare la loro appartenenza al cluster (regroup event)

se un node manager non risponde al regroup, tutti i gruppi che hanno risorse su quel nodo “falliscono”

Page 156: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

156

Clustering: resource managerClustering: resource manager

Gestisce/avvia/ferma le risorse Gestisce le dipendenze Riceve informazioni dal node manager e

dal resource monito

Page 157: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

157

ClusteringClustering

Page 158: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

158

Job objectsJob objects

Un estensione del concetto di processo E’ un oggetto che controlla gli attributi

di un insieme di processi associati al Job Serve ad ovviare alla mancanza di un

albero dei processi in NT 4 E’ possibile misurare informazioni di

accounting di un Job

Page 159: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

159

Jobs objectsJobs objects

Le Win32 API:creano un Jobassociano uno o più processi ad un Job

EsempioIIS crea dei CGI script, che possono essere

messi nel contesto di un Job

Page 160: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

160

Job objectsJob objects

Un Job object contiene limiti che sono applicati a tutti i processi del joblimiti di CPU time in user mode per il joblimiti di CPU time in user mod per un singolo

processoMassimo numero di in un jobPriorità del job

Page 161: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

161

Job objectsJob objects

E’ possibile porre dei limiti a come i processi di un job usano le interfaccie utenteimpedire ai processi del job di aprire

“window handle” con finestre di thread al di fuori del job

impedire l’accesso alla clipboard...

Page 162: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

162

Plug and PlayPlug and Play

Combinazione di hardware/software che permette al sistema di adattarsi a cambiamenti nella configurazione senza grossi interventi da parte dell’utente

Domanda: un sistema operativo può scalare da desktop a server?

Page 163: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

163

Plug and PlayPlug and Play

Advanced Configuration and Power Interface (ACPI) ver. 1.0definizione di standard per schede madri e

BIOS per affidare al sistema operativo alcuni meccanismi di gestione di una periferica

interrupt, canali DMA, indirizzi di I/O, power managment, …

ACPI è Indipendente dal sistema operativo e dalla CPU

Page 164: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

164

Plug and PlayPlug and Play

Implementazione in Windows 2000estensione della infrastruttura di I/Oriscrittura dei device driver

I meccanismi di plug and play operanoall’installazioneal bootsu eventi

schede PCMCIA, ...

Page 165: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

165

Plug and PlayPlug and Play

Nuovi device driveri dirver dei bus sono spostati fuori dall’HALnuovi API per supportare l’installazione e la

configurazione di nuovi deviceestensioni e cambiamenti al file dei registryestensioni al Control Panel

I vecchi device driver funzionano sempre, ma le capacità di plug and play sono ridotte

Page 166: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

166

Plug and PlayPlug and Play

Page 167: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

167

Very large memory (VLM)Very large memory (VLM)

Windows NT 4 ha la capacità di indirizzare fino a 4 GB di memoria virtuale

Estensione in Windows 2000 a 28 GB sui sistemi Compaq/Digital Alpha

Non è previsto un porting sulle architetture IntelE’ prevista una vera versione a 64 bit per

Intel IA64 e Digital Alpha

Page 168: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

168

Very large memory (VLM)Very large memory (VLM)

NT 4 supporta64 bit di indirizzamento sui file system2 GB di memoria virtuale privata

3 GB nella versione Enterprise

VLM permette l’uso di puntatori a 64 bit per superare il limite dei 2 GBle applicazioni vanno modificate con il

nuovo puntatore per trarne beneficionuove API per operare sui puntatori a 64 bit

Page 169: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

169

Very large memory (VLM)Very large memory (VLM)

Limitazioni nell’uso dei puntatori a 64 bitNon sono gestite “page faults” di puntatori

a 64 bit Nuova Win64 API

pienamente a 64 bitcompatibile con applicazioni a 32 bit

Page 170: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

170

Windows Management Windows Management InstrumentationInstrumentation

WBEM (Web-based Enterprise Management)

Tentativo di unificare SNMP, DMI, e vari servizi Win32 (Perfmon API, Registry, Event log)Adottato dal consorzio DMTF (Intel, Cisco,

BMC, Microsoft, ecc.)Descrive gli oggetti in base al CIM (Common

Information Model)

Page 171: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

171

Windows kernel traceWindows kernel trace

Descritto per la prima volta al CMG ‘97 “Secure kernel trace facility” Progettato per alti volumi di trace

NT 4 Scheduler trace è stato abbandonato per via dell’overhead

Progettato per essere esteso

Page 172: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

172

Trace Header Process IdParent

Process IdSecurity Id Image Name

Process Start/End

4 bytes 4 bytes Variable length Variable length

Trace Header DiskSignature

TransferSize

Disk I/O

4 bytes 4 bytes

IRP Flags

4 bytes

Trace Header

Page Faults

Response

4 bytes

VirtualAddress

4 bytes

Byte Offset

8 bytes

Trace Header Source IpAddress

Dest IpAddress

TCP/IP

4 bytes 4 bytes

SourcePort

2 bytes

DestPort

2 bytes

Size

4 bytes

Process Id

4 bytes

Operating System TracesOperating System Traces

Page 173: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

173

Windows kernel event trace Windows kernel event trace headerheader

Field Description Data Type Size

Size Event record size unsigned long 4 bytesTimeStamp Wall clock time (in 100ns) quad integer 8 bytesThreadId Thread responsible for event handle 8 bytesGUID Globally Unique Identifier structure 16 bytesUserTime User-mode CPU time (ticks) unsigned long 4 bytesKernelTime Kernel-mode CPU time unsigned long 4 bytesVersion Version of record unsigned short 2 bytesType Event type unsigned char 1 byteLevel Event level unsigned char 1 byte

Page 174: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

174

Oltre Windows 2000Oltre Windows 2000

Full porting su architetture a 64-bitCompaq (Digital) Alpha Intel/HP P7 Merced

Page 175: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

175

Capacity planning:Capacity planning:memoriamemoria

Memory: Pages/secnumero di pagine (4KB) lette/scritte da

disco< 2

la RAM è sufficiente

> 3 poca RAM

Page 176: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

176

Capacity planning:Capacity planning:processoreprocessore

Processor/System: % Processor timepercentuale di utilizzo del processore< 60%

il carico non è eccessivo

> 60% il processore è sovra-utilizzato prima di fare un up-grade, controllare l’uso della

memoria

Page 177: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

177

Capacity planning:Capacity planning:dischidischi

PhysicalDisk: Avg. Disk Queue Lenghtnumero medio di richieste di

lettura/scrittura in attesa di essere servite< 2

tutto OK

> 3 si richiede un disco e/o un controller più veloci

Page 178: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

178

Capacity planning:Capacity planning:dischidischi

PhysicalDisk: % Disk Timeutilizzo del disco< 60%

tutto OK

> 70% si richiede un disco e/o un controller più veloci

Page 179: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

179

Capacity planning:Capacity planning:reterete

Network segment: % Network utilizationutilizzo della rete rispetto alla capacità

massima del segmento< 60%

tutto OK

> 70% troppi computer/troppo traffico sul segmento di

rete partizionare ulteriormente il segmento o spostare

dei server

Page 180: Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

180

ContattoContatto

Paolo CremonesiDipartimento di Elettronica e InformazionePolitecnico di MilanoE-mail: [email protected]