59
1 API e ABI Application Program Interface (API) Insieme delle regole che definiscono l'interfaccia del SO, in termini di funzioni utilizzabili Application Binary Interface (ABI) Insieme delle regole che definiscono l'interazione di un programma con le librerie Obiettivi: Garantire la riproducibilità del processo di compilazione su diverse istanze dello stesso SO (API) garantire la compatibilità di comportamento di un programma fra diverse istanze dello stesso SO (ABI)

Sistemi Operativi: Struttura - Lezione 04

Embed Size (px)

Citation preview

Page 1: Sistemi Operativi: Struttura - Lezione 04

1

API e ABI• Application Program Interface (API)

– Insieme delle regole che definiscono l'interfaccia del SO, in termini di funzioni utilizzabili

• Application Binary Interface (ABI)– Insieme delle regole che definiscono

l'interazione di un programma con le librerie

• Obiettivi:– Garantire la riproducibilità del processo di

compilazione su diverse istanze dello stesso SO (API)

– garantire la compatibilità di comportamento di un programma fra diverse istanze dello stesso SO (ABI)

Page 2: Sistemi Operativi: Struttura - Lezione 04

2

Tassonomia• Su quali strutture si mappano i programmi ora

visti?• Strutture di SO reali

– Struttura semplice, struttura stratificata– Macrokernel, Microkernel, Hybrid kernel

Page 3: Sistemi Operativi: Struttura - Lezione 04

3

Tassonomia• Tutte le tassonomie prevedono:

– User space: insieme degli indirizzi in cui sono memorizzati i software che girano con privilegi ridotti

– Kernel space: insieme degli indirizzi in cui sono memorizzati i software che girano con privilegi pieni

– User mode: modalità con cui il SO esegue il codice con privilegi ridotti

– Kernel mode: modalità con cui il SO esegue il codice con privilegi pieni

Page 4: Sistemi Operativi: Struttura - Lezione 04

4

Struttura semplice• In realtà, è una assenza di struttura vera

e propria– sistemi “giocattolo”– massima funzionalità nel minimo spazio

• Due elementi principali:– kernel (gestione interruzioni, driver)– programmi di sistema e applicativi

• Esempi:– MS-DOS– Primi UNIX

Page 5: Sistemi Operativi: Struttura - Lezione 04

5

MS DOS: caratteristiche• Microsoft Disk Operating System

– Famiglia di sistemi operativi per PC IBM compatibili (1981-1995)

• Caratteristiche:– singolo utente– singolo task– interfaccia semplice da linea di comando

• Funzioni del kernel non eseguibili concorrentemente (non rientranti)– una volta invocato un servizio di sistema,

non può essere interrotto

Page 6: Sistemi Operativi: Struttura - Lezione 04

6

MS DOS e IBM PC: caratteristiche• I primi processori IBM (8088) potevano

indirizzare 2^20=1024KB– Primi 640 KB: RAM programmi (conventional

memory)– Ultimi 384 KB: dedicati all'hardware (upper

memory area)

• “640K is more memory than anyone will ever need”, Bill Gates, 1981– Ovviamente, ai programmatori 640KB non

bastarono più e cominciarono ad usare anche gli ultimi 384KB

– Bisogno di aumentare la RAM disponibile– Bisogno di mantenere la compatibilità hw/sw

Page 7: Sistemi Operativi: Struttura - Lezione 04

7

MS DOS e IBM PC: caratteristiche• Intel 80286 (1982): in grado di indirizzare 16MB

di memoria• Memoria sopra il primo MB: extended memory

– gestita tramite il driver himem.sys• Primi 64KB (-16 byte) della extended memory:

high memory– Utilizzati per estendere il DOS

Page 8: Sistemi Operativi: Struttura - Lezione 04

8

MS DOS e IBM PC: caratteristiche• Intel 80286 (1982): in grado di indirizzare 16MB

di memoria• Due modalità di uso: real mode e protected

mode• Real mode:

– equivalente ad un vecchio 8086/8088– Indirizzamento a 20 bit

• Protected mode:– Utilizzo di una Memory Management Unit

(MMU) per l'indirizzamento dei 16MB

Page 9: Sistemi Operativi: Struttura - Lezione 04

9

MS DOS e IBM PC: caratteristiche• Intel 80386 (1985): in grado di indirizzare 4GB

di memoria (extended memory)• Real mode:

– equivalente ad un vecchio 8086/8088– Indirizzamento a 20 bit

• Protected mode:– Utilizzo di una Memory Management Unit

(MMU) per l'indirizzamento dei 4GB– Paginazione

• Virtual 8086 mode:– Real mode + modello di segmentazione di un

8086 + paginazione

Page 10: Sistemi Operativi: Struttura - Lezione 04

10x

MS DOS: chiamate di sistema• Invocabili tramite l'eccezione 21H

(int 21H, int 0x21)• Il registro %eax contiene l'identificatore della

chiamata di sistema• Categorie:

– Standard character device I/O– Memory management– Process management– File and directory management– Miscellaneous

Page 11: Sistemi Operativi: Struttura - Lezione 04

11

MS DOS: programmi TSR• Una chiamata di sistema (Terminate and Stay

Resident, TSR) permette di ritornare il controllo al sistema, mantenendo in memoria il programma che la invoca

• Il programma torna in esecuzione sulla base di eventi esterni

• Meccanismo primordiale per:– multitasking (forzato da eventi)– server– software gestione di dispositivi hardware

Page 12: Sistemi Operativi: Struttura - Lezione 04

12

MS DOS: programmi TSR• Un programma scrive il proprio indirizzo di

partenza in uno o più elementi del vettore delle interruzioni

• Quando un programma vuole interrompere il proprio funzionamento, invoca l'eccezione relativa al TSR:– int 21H (prime versioni, limite di 64KB)– int 27H (nessun limite di memoria, exit code)

• Meccanismo ideale per creare un virus– si impostano i vettori di interruzione relativi

all'I/O alla routine principale del virus– ciascuna richiesta di I/O allega il virus al file

Page 13: Sistemi Operativi: Struttura - Lezione 04

13

MS DOS: componenti• Il sistema MS DOS è composto da tre parti

principali: BIOS, kernel, shell• BIOS: Basic Input/Output System

– circuito integrato (ROM, EPROM, EEPROM) contenente I software di gestione delle periferiche (device driver)

– funzioni di lettura/scrittura invocabili tramite eccezioni (trap) o tramite il file io.sys

– fornito dalle case produttrici delle schede madri, piuttosto che dalla Microsoft

– occupa gli indirizzi vicini al 1MB– solitamente, è proprietario; è in corso di

sviluppo un “Free BIOS” da parte della FSF

Page 14: Sistemi Operativi: Struttura - Lezione 04

14

MS DOS: componenti

Integrato AMIBIOS Configurazione BIOS

Page 15: Sistemi Operativi: Struttura - Lezione 04

15

MS DOS: componenti• Il sistema MS DOS è composto da tre parti

principali: BIOS, kernel, shell• kernel: contiene la parte del sistema operativo

indipendente dalla macchina– memorizzato nel file msdos.sys– gestione dei processi– gestione della memoria– gestione del file system– smistamento delle chiamate di sistema

Page 16: Sistemi Operativi: Struttura - Lezione 04

16

MS DOS: componenti• Il sistema MS DOS è composto da tre parti

principali: BIOS, kernel, shell• shell: interfaccia a linea di comando

– memorizzata nel file command.com– comandi di base (builtin)

• Due parti: residente e non residente• Residente:

– memorizzata subito dopo msdos.sys– gestore interruzioni 22H (terminate address),

23H (Ctrl-Break Handler), 24H (Critical Handler)• Non residente:

– memorizzata al termine della memoria– prompt, legge/interpreta/esegue i comandi

Page 17: Sistemi Operativi: Struttura - Lezione 04

17

MS DOS: componenti

La shell MSDOS

Page 18: Sistemi Operativi: Struttura - Lezione 04

18

MS-DOS: struttura

Programmi di applicazione

Programmi di sistema residenti

Driver dei dispositiviMS-DOS

Driver dei dispositivi ROM BIOS

Hardware

Userspace

Kernelspace

Page 19: Sistemi Operativi: Struttura - Lezione 04

19

MS DOS:inizializzazione e configurazione

• Due obiettivi: configurazione device driver e script di avvio del sistema– sysinit: programma che avvia il SO

• Primo passo: sysinit carica config.sys– allocazione buffer cache– inizializzazione device driver– impostazione code page

• Secondo passo: sysinit carica command.com• Terzo passo: command.com legge lo script di

avvio autoexec.bat

Page 20: Sistemi Operativi: Struttura - Lezione 04

20

MS DOS: memoria secondaria• Rappresentazione tramite file e directory• Gerarchia di directory (albero)• Formato nomi file: 8.3

– 8 caratteri per il nome, 3 per l'estensione– case insensitive

• Presenza di una unica “directory di lavoro”• Redirezione stdin (<) e stdout (>)

Page 21: Sistemi Operativi: Struttura - Lezione 04

21

MS DOS: gestione dispositivi• I dispositivi sono identificati tramite sigle

terminate dal carattere “:”– COM1,...,COM4: le quattro porte seriali– CON: la console di lavoro (shell)– LPT1, ..., LPT3: stampanti– PRN: identico ad LPT1– NUL: nessun dispositivo (scarto)– A: primo floppy (3 ½)– B: secondo floppy (3½, 5¼)– C: hard disk

Page 22: Sistemi Operativi: Struttura - Lezione 04

22

Struttura stratificata• Le funzionalità fornite dal SO vengono

suddivise in strati– ciascun strato implementa le proprie

funzionalità basandosi su quelle definite negli strati inferiori

– strato 0: strato fisico– strato n: interfaccia utente

Page 23: Sistemi Operativi: Struttura - Lezione 04

23

Struttura stratificataUno strato di sistema operativo

strato m

strato m-1

Le operazioni dello strato m fannouso delle funzionalità definite nellostrato m-1.

fj

Page 24: Sistemi Operativi: Struttura - Lezione 04

24

Struttura stratificataUno strato di sistema operativo

strato m

strato m-1

Lo strato m definisce ancheoperazioni nascoste, non visibiliagli strati superiori. Tali operazionisono di supporto.

fj

gk

Page 25: Sistemi Operativi: Struttura - Lezione 04

25

Struttura stratificataUno strato di sistema operativo

strato m

strato m-1

Le funzionalità dello strato m+1utilizzano le funzionalità definitenello strato m. Non sono visibilile funzioni di supporto.

fj

gk

strato m+1

Page 26: Sistemi Operativi: Struttura - Lezione 04

26

Struttura stratificata• Vantaggi: modularità

– ciascuno strato usa funzionalità dei livelli inferiori (idealmente, quello direttamente inferiore)

– il primo strato può essere progettato senza considerare il resto del sistema

– una volta implementato e corretto il primo strato, il secondo si appoggia sulle funzioni del primo

♦approccio a guscio (shell)♦ incrementale, più semplice da correggere

– ogni strato nasconde a quelli superiori i dettagli implementativi

Page 27: Sistemi Operativi: Struttura - Lezione 04

27

Struttura stratificata• Svantaggi:

– come definisco esattamente gli strati?♦dove finisce uno e comincia l'altro?♦Es.: il sistema di gestione della memoria ha

bisogno dei driver del disco, per poter implementare lo “swapping”

–driver disco in uno strato più basso rispetto alla gestione della memoria

– l'efficienza di un sistema stratificato è minore rispetto ad un sistema a strutttura semplice

♦aggravio computazionale legato alle di chiamate funzioni fra strati

Page 28: Sistemi Operativi: Struttura - Lezione 04

28

UNIX

utenti

interprete comandi, comandicompilatori, interpreti

librerie di sistema

interfaccia syscall/kernel

segnaligestione terminali

sistema I/O caratteridriver terminali

file systemavvicendamento

sistema I/O blocchidriver nastri, dischi

scheduling CPUsostituzione pagine

demand pagingmemoria virtuale

interfaccia kernel/architettura fisica

controller terminaliterminali

controller mem.memoria

controller disp.nastri, dischi

Userspace

Kernelspace

Page 29: Sistemi Operativi: Struttura - Lezione 04

29

UNIX• Due parti: kernel e programmi di sistema

– KERNEL♦interfaccia system call♦system call, funzionalità di basso livello♦interfaccia architettura fisica

– struttura tendente alla stratificazione♦prime versioni di UNIX ancora semplici♦oggi UNIX è più stratificato

–approccio progettuale top-down• Per una “panoramica” di tutti I SO UNIX mai

esistiti:http://upload.wikimedia.org/wikipedia/commons/7/77/Unix_history-simple.svg

Page 30: Sistemi Operativi: Struttura - Lezione 04

30

OS/2

Applicazione Applicazione Applicazione

Application Program Interface (API) Estensione (API)

sottosistema sottosistema sottosistema

kernel

device driver device driver device driver

gestione della memoriadispatching dei task

gestione dei dispositivi

Userspace

Kernelspace

Page 31: Sistemi Operativi: Struttura - Lezione 04

31

OS/2

Il desktop grafico di OS/2

Page 32: Sistemi Operativi: Struttura - Lezione 04

32

Macrokernel• Detto anche kernel monolitico• L'intero insieme dei servizi (stratificato o no)

esegue in kernel mode• L'intero insieme delle applicazioni (stratificato

o no) esegue in user mode• Vantaggi:

– Esecuzione dei servizi estremamente veloce

• Svantaggi:– Marcata fragilità (un crash interrompe il

funzionamento della macchina)– Dimensione del kernel enorme

• Esempi:– Unix-like kernels, Linux, BSD, AIX

Page 33: Sistemi Operativi: Struttura - Lezione 04

33

Macrokernel: moduli• Per mitigare gli svantaggi, parecchi SO hanno

introdotto il meccanismo dei moduli caricabili (loadable modules)– Solo la funzionalità strettamente necessaria del

kernel viene caricata all'avvio– Le funzionalità superflue possono essere

caricate dinamicamente, successivamente

• Vantaggi:– La dimensione di base del kernel diminuisce

sensibilmente– Un crash di un modulo non pregiudica il

funzionamento del sistema

Page 34: Sistemi Operativi: Struttura - Lezione 04

34

Microkernel• Con l'aumentare dei servizi, il kernel dei

sistemi UNIX è cresciuto notevolmente– problemi enormi di manutenzione del codice– Alta probabilità di “crash” con brusca

interruzione del funzionamento del SO

• IDEA: concepire la maggior parte dei servizi come applicazioni

• Fine anni '80: nascita di Mach– Carnegie Mellon University– Prima implementazione di microkernel

Page 35: Sistemi Operativi: Struttura - Lezione 04

35

Microkernel• Con l'aumentare dei servizi, il kernel dei

sistemi UNIX è cresciuto notevolmente– problemi enormi di manutenzione del codice– Alta probabilità di “crash” con brusca

interruzione del funzionamento del SO• IDEA: concepire la maggior parte dei servizi

come applicazioni cooperanti tramite scambio messaggi

• Il kernel implementa il minimo indispensabile• Fine anni '80: nascita di Mach

– Carnegie Mellon University– Prima implementazione di microkernel

Page 36: Sistemi Operativi: Struttura - Lezione 04

36

Microkernel• Si rimuove dal kernel tutto ciò che non è

strettamente essenziale• Tutto ciò che non è strettamente

indispensabile è implementato come applicativo server (demone) utente

• Cosa rimane nel kernel?– meccanismo di comunicazione a messaggi

fra le varie componenti del sistema (Inter Process Comunication, IPC)

– gestione processi– gestione memoria

Page 37: Sistemi Operativi: Struttura - Lezione 04

37

Microkernel• Vantaggi:

– facilità di estensione del SO♦si scrive un nuovo applicativo server♦il kernel NON deve essere modificato

– il kernel è ridotto all'osso♦modifiche ridotte e localizzate

• Svantaggi:– meno performante di un kernel monolitico

• Implementazioni:– Tru64 UNIX (Digital), Mach, MacOS, Minix

Page 38: Sistemi Operativi: Struttura - Lezione 04

38

Macrokernel vs. Microkernel

Applicazione

A

Macrokernel(kernel monolitico)

Microkernel

Virtual File System

V

SchedulerMemoria virtuale

S

IPC, File System

I

Device drivers

D

Hardware

H

Hardware

H

IPC di baseMemoria virtuale

Scheduler

ApplicazioneIPC

Unixserver

Devicedriver

Fileserver

Usermode

Kernelmode

Page 39: Sistemi Operativi: Struttura - Lezione 04

39

Minix• Sistema operativo UNIX-like, progettato da

Andrew S. Tanenbaum (1987)• Oggi siamo alla versione 3 (2005-2008)• Approccio microkernel:

– 5K linee di codice (Minix v3)– 2.5M linee di codice (Linux)– 5M linee di codice (Windows XP)

• Scritto per sistemi Intel a 32 bit (almeno 386)– Port per PowerPC ed ARM

Page 40: Sistemi Operativi: Struttura - Lezione 04

40

Minix: obiettivi• Affidabilità

– ridurre l'impatto di un crash di sistema– riattivare automaticamente parti difettose– sviluppo di nuovi driver “a caldo”

• Prestazioni– ridurre la perdita di prestazioni rispetto ai kernel

monolitici

• Sviluppo– modularità

Page 41: Sistemi Operativi: Struttura - Lezione 04

41

Minix: design• Kernel: servizi essenziali per instanziare e far

parlare tra loro componenti distinti– Gestione interruzioni– Gestione memoria– Scambio messaggi (IPC) fra componenti– Gestione orologio di sistema (clock driver)– Invocazione servizi messi a disposizione dal

kernel (system task): copia dati kernel<->user, chiamate I/O dirette alle periferiche

• User: driver periferiche, servizi, applicazioni– Device driver dischi, audio, rete, stampante– Gestione file, processi, rete, fault tolerance– Shell, editor, browser

Page 42: Sistemi Operativi: Struttura - Lezione 04

42

Minix: design

bash

s

vim

v

make

m

lynx

m

...

Fileserver

F

Processmanager

P

Networkserver

N

Reinc.server

RN

Datastore

D

SATAdriver

S

Audiodriver

SCSIdriver...

Printerdriver

IRQ, MMU, IPC Clockdriver

Systemtask

Usermode

Kernelmode

Kernel

Driver

Servizi

Apps

Chiamate di sistema, messaggi

Chiamate di kernel, messaggi

Chiamate di kernel, messaggi

Page 43: Sistemi Operativi: Struttura - Lezione 04

43

Minix: comunicazione fra processi• Aree di memoria dei processi rigorosamente

separate• La comunicazione fra processi diverse avviene

tramite scambio di messaggi di lunghezza fissa

• Lo scambio di messaggi è sincrono:– Il mittente si blocca se nessuno può ricevere– Il ricevente si blocca se nessuno può inviare– Il kernel copia il messaggio dall'area dati

mittente all'area dati ricevente

Page 44: Sistemi Operativi: Struttura - Lezione 04

44

Minix: comunicazione processi/kernel• Avviene tramite chiamate di sistema, effettuate

dai processi ai servizi• I servizi inviano messaggi ai driver• I driver effettuano le necessarie chiamate di

kernel• Il kernel soddisfa la richiesta• Il risultato si propaga per i livelli superiori

attraverso messaggi di risposta

Page 45: Sistemi Operativi: Struttura - Lezione 04

45

Minix: affidabilità• Ottenuta tramite due servizi:

– Reincarnation server– Data store

• Reincarnation server:– Controlla se un componente crasha– Riavvia il componente, se necessario, in

maniera trasparente alle applicazioni– Se non lo può riavviare, notifica l'applicazione – Registra le operazioni andate male– Non altera il comportamento dei programmi

• Data store:– Minuscolo database di configurazioni– Ciascun processo ci scrive quello che vuole

Page 46: Sistemi Operativi: Struttura - Lezione 04

46

Minix

Page 47: Sistemi Operativi: Struttura - Lezione 04

47

Hybrid kernel• Combina gli aspetti positivi dei microkernel e

dei macrokernel• Tutti i device driver girano in kernel mode• Per il resto, simile ad un microkernel• Vantaggi:

– Esecuzione driver più veloce (no messaggi)– Crash servizi non interrompe la macchina

• Svantaggi:– È comunque più lento di un macrokernel– È comunque meno robusto di un microkernel

• Esempi:– Windows NT, Windows XP, Plan 9

Page 48: Sistemi Operativi: Struttura - Lezione 04

48

Macro vs. Micro vs. Hybrid kernel

Applicazione

A

Macrokernel(kernel monolitico)

Microkernel

VFS

V

SchedulerMemoria virtuale

S

IPCFile System

I

Device drivers

D

Hardware

H

Hardware

H

IPC di baseMemoria virtuale

Scheduler

Appl.IPC

Unixserver

Devicedriver

Fileserver

User spaceKernel space

Hybrid kernel

Hardware

IPC di baseMemoria virtuale

Scheduler

Appl.IPC

Unixserver

Devicedriver

Fileserver

Applicazione Applicazione

Page 49: Sistemi Operativi: Struttura - Lezione 04

49

Windows XP• Sistema operativo Microsoft (2001)• Successore di Windows 2000• Fondato sull'architettura di Windows NT• Diverse versioni:

– Home Edition: Media player, Messenger, Wireless capabilities, Firewall

– Professional Edition: Home + Remote desktop, accesso “disconnesso” a file remoti, SMP, amministrazione gruppi, Win Server Domains

– Professional x64 Edition: Professional + supporto 64 bit

– Media Center Edition: Home + SMP, televisione– Tablet Edition: versione per Tablet PC

Page 50: Sistemi Operativi: Struttura - Lezione 04

50

Windows XP: aggiornamenti• La Microsoft rilascia, occasionalmente, un

insieme incrementale di modifiche da applicare al SO (Service Pack)

• Service Pack 1: settembre 2002– Random fixes, .NET, Messenger, USB 2.0

• Service Pack 2: agosto 2004– SP 1 + Security, Wi-Fi criptato (WPA), pop-up

blocker, Bluetooth, Firewall, Security Center

• Service Pack 3: aprile 2008– SP2 + random fixes

Page 51: Sistemi Operativi: Struttura - Lezione 04

51

Windows XP: HAL• Windows XP è stato progettato per essere

eseguito su (quasi) ogni tipologia di hardware esistente

• Al posto di riscrivere una versione di XP differente per ciascuna piattaforma hw, è stato creato HAL

• HAL: Hardware Abstraction Layer– Software frapposto tra Windows XP e

l'hardware– XP non conosce nulla dell'hardware; lascia

gestire il compito ad HAL– Ciascun utilizzo di hardware viene delegata ad

HAL

Page 52: Sistemi Operativi: Struttura - Lezione 04

52

Windows XP: Kernel• I servizi di HAL sono sfruttati dal Kernel• Kernel:

– Componenti scritti da Microsoft (servizi) – Componenti scritti dai produttori di hw (device

driver)♦Devono passare dei “test rigorosi”

• Il cuore del kernel è il modulo “Microkernel”– Molto compatto– Sistema di IPC per gli Executive Services

Page 53: Sistemi Operativi: Struttura - Lezione 04

53

Windows XP: Kernel• Executive Services: servizi forniti dal kernel

– Analogo dei server di Minix

• Forniscono servizi alle applicazioni– Disegno della GUI sullo schermo– Controllo permessi– Disk I/O

• Sfruttano il servizio di messaggistica del Microkernel

• Microkernel + Executive Services =Windows XP kernel

Page 54: Sistemi Operativi: Struttura - Lezione 04

54

Windows XP: API• Windows XP fornisce 2 API:

– Win32 API: permette ai programmatori di scrivere programmi a 32 bit che girano in User mode

– Native API: permette ai processi/servizi che girano in User mode di invocare servizi del kernel

♦Utilizzata dalla Win32 API

• Le API di Windows sono memorizzate in librerie dinamiche

Page 55: Sistemi Operativi: Struttura - Lezione 04

55

Windows XP: DLL• DLL: Dynamic Link Library• Librerie di funzioni eseguibili/dati che può

essere utilizzata da una applicazione– Funzioni: user32.dll, kernel32.dll– Dati: shell32.dll (icone)

• L'applicazione si “collega” alla DLL nel momento stesso in cui necessita della funzione– Non a tempo di compilazione, bensì di

esecuzione

• Solitamente, hanno l'estensione .dll

Page 56: Sistemi Operativi: Struttura - Lezione 04

56

Windows XP: DLL• Le DLL possono essere utilizzate da più

applicazioni simultaneamente– Condivisione di codice– CreateWindow() in user32.dll

• Alcune DLL sono installate con Windows XP ed a disposizione di tutte le applicazioni– C:\windows contiene circa 2000 DLL– La maggior parte in c:\windows\system32

● Altre DLL sono installate con le applicazioni – msp232.dll fornisce funzionalità di spellcheck

per Word, Excel, Power Point– Installata con Microsoft Office

Page 57: Sistemi Operativi: Struttura - Lezione 04

57

Windows XP: DLL• Esistono quattro DLL principali• ntdll.dll: Native API (funzioni a livello kernel)

– Utilizzate da Win32 API per interagire con l'hw

• kernel32.dll:– I/O su file– gestione dei thread

• user32.dll:– Gestione delle finestre– Gestione degli eventi (ad es., mouse click)

• gdi32.dll:– Funzioni di disegno finestre

Page 58: Sistemi Operativi: Struttura - Lezione 04

58

Windows XP: design

Hardware Abstraction Layer

H

Hardware

H

DeviceDrivers

D

Microkernel

M

GraphicsDeviceDrivers

G

Object Manager

O

SecurityReference

Monitor

S

IPCmanager

I

VirtualMemoryManager

V

ProcessManager

P

P&PManager

P

PowerManager

P

Filesystems

F

WindowManager

W

I/OManager

I

Win32API

W

ApplicazioneWin32

A

ApplicazioneWin32

A

ApplicazioneWin32

A

Kernelspace

Userspace

Page 59: Sistemi Operativi: Struttura - Lezione 04

59

Windows XP: GUI