Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows...

Post on 02-May-2015

223 views 6 download

Transcript of Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows...

Windows NT® InternalsWindows NT® Internals

Paolo Cremonesi

2

Testo consigliatoTesto consigliato

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

http://www.ntinternals.com

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

4

IntroduzioneIntroduzione

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

5

Estensioni in Windows 2000Estensioni in Windows 2000

Plug and play Job object indirizzamento a 64 bit

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

7

Windows NT Key System FilesWindows NT Key System Files

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

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

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

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

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

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”

13

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

Windows NT VersionsWindows NT Versions

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

15

Packaging del prodottoPackaging del prodotto

Il kernel e i driver sono gli stessi

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

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)

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

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

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

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

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++

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

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

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

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

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

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

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

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)

31

Accounting del tempo di kernelAccounting del tempo di kernel

Programmi | Strumenti di amministrazione | Performance Monitor

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

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

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

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!)

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

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

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

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

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

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.

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”

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

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

45

Windows NT KernelWindows NT Kernel

Il kernel implementa dei semplici oggetti (kernel object)

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

46

Windows NT Kernel: Windows NT Kernel: supporto hardwaresupporto hardware

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

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

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

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

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

51

HalGetBusDataHalGetBusDataByOffsetHalAssignSlotResourcesHalSetBusDataHalSetBusDataByOffsetHalTranslateBusAddressHalGetInterruptVectorHalGetAdapterREAD_REGISTER_ULONG WRITE_PORT_UCHAR

Routine HAL di esempioRoutine HAL di esempio

HAL - Hardware Abstraction HAL - Hardware Abstraction LayerLayer

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

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.

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

55

User processUser process

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

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, ...

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)

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

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

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

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

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

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

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

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

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

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)

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

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

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

71

Environment Subsystems:Environment Subsystems:Win32Win32

Essenziale al funzionamento di Windows NT

Le componenti principali sonoenvironment subsystem processkernel mode device driver

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, ...

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

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

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

76

NTDLL.DLLNTDLL.DLL

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

(ASP)...

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

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

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)

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)

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

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

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

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

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

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

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

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

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)

90

Navigare nell’ Object ManagerNavigare nell’ Object Manager

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

od da www.ntinternals.com

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

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

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

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

95

Kernel-Mode Device DriverKernel-Mode Device Driver

Hanno una struttura gerarchica Sono classificati in base al tipo

HardwareFile systemFilterNetwork redirectorMiniportWIN32K.SYS

96

Kernel-Mode Device DriverKernel-Mode Device Driver

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

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

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

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

101

Cached File OperationsCached File Operations

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)

103

ProcessProcessaddressaddressspacespace

SystemSystemaddressaddressspacespace

FileFile

Cached File OperationsCached File Operations

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

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)

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

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

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

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

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)

111

System ThreadsSystem Threads

Kernel mode API:PsCreateSystemThreadPsTerminateSystemThreadKeSetBasePriorityThreadKeSetPriorityThread

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

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

114

Process-Based Windows NT Process-Based Windows NT CodeCode

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

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

116

Gerarchia di creazione dei Gerarchia di creazione dei processiprocessi

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

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

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.

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

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”

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”

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)

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

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

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

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

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

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

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

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

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)

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

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

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

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

137

Windows 2000 previewWindows 2000 preview

Formalmente Windows NT 5Forse non ci saranno successive versioni di

Windows 9x

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

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

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+

141

Cambiamenti in Windows 2000Cambiamenti in Windows 2000

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

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

143

CIFS - Common Internet File CIFS - Common Internet File SystemSystem

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

144

CIFSCIFS

145

Microsoft Management ConsoleMicrosoft Management Console

146

System MonitorSystem Monitor

Alert service contatori per processo

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

148

ClusteringClustering

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

VantaggiScalabilitàFault tolerantEconimoci

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

150

ClusteringClustering

Astrazionirisorsedipendenzegruppivirtual server

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

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

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

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

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”

156

Clustering: resource managerClustering: resource manager

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

dal resource monito

157

ClusteringClustering

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

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

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

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...

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?

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

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, ...

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

166

Plug and PlayPlug and Play

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

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

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

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)

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

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

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

174

Oltre Windows 2000Oltre Windows 2000

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

175

Capacity planning:Capacity planning:memoriamemoria

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

disco< 2

la RAM è sufficiente

> 3 poca RAM

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

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

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

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

180

ContattoContatto

Paolo CremonesiDipartimento di Elettronica e InformazionePolitecnico di MilanoE-mail: cremones@elet.polimi.it