PO P
e
i
a
t
t
a
f
o
r
m
e
p
e
n
S
o
u
r
c
e
r
o
p
r
i
e
t
a
r
i
e
La piattaforma
Windows
Antonio Cisternino
28 Gennaio 2005
Il corso
• Obiettivo: introdurre tre piattaforme
software (Windows, Linux, FreeBSD)
• Durata: 35hr
• Docenti:
– Dario Besseghini
– Antonio Cisternino
– Luigi Rizzo
Windows
• Windows è la piattaforma più diffusa
• Ma esattamente cosa è Windows?
• Sebbene tutti lo usano (+ o – volentieri)
pochi ne conoscono la vera natura e sanno
distinguere l’interfaccia dal sistema
operativo vero e proprio
• Cercheremo di scavare un po’ sotto le
finestre per capire meglio cosa c’è dietro
Breve storia
• Microsoft ha impiegato vent’anni per avere
un sistema operativo
• La storia:
– MS-DOS
– Windows 3.1
– Wintendo (Windows 95, 98, ME)
– Windows NT
– Windows 2000/XP/2003
Un solo Kernel
• Windows oggi è un unico sistema
operativo con differenti configurazioni (e
prezzi):
– Windows Xp (Home, Professional)
– Windows Xp Embedded
– Windows 2003 Server
– Windows Tablet PC
– Windows Media Center
Gli elementi principali
• Windows è un sistema operativo con le
seguenti caratteristiche:
– Scheduling basato su thread
– Memoria virtuale con paginazione
– File system: NTFS
– Sicurezza basata su controllo di accesso alle
risorse
– Portabile (anche se al momento gira solo su
piattaforma Intel)
– Basato su un’architettura a componenti
Dove il sistema affiora
• Svariate applicazioni portano in superficie
la natura del sistema operativo
• In particolare i tool di Sysinternals
(http://www.sysinternals.com) consentono
di vedere molte strutture interne
• Il task manager contiene molti indizi su
svariati aspetti del sistema
L’architettura
Open Systems
• Da sempre si è pensato che i sistemi
dovessero essere flessibili
• Avere accesso ai sorgenti è solo un modo
per realizzare un sistema aperto
• Windows, non fornendo accesso ai
sorgenti (pubblicamente), ha adottato una
struttura modulare in cui è possibile
sostituire moduli di sistema (es. Msgina)
Windows Security
• Windows NT è stato certificato (in una
particolare configurazione) dal DoD come
classe C dell’Orange Book
• Il modello di sicurezza del sistema
operativo è più articolato di quello
tradizionale di Unix
• Molti bachi di sicurezza sono legati alla
configurazione piuttosto che al sistema
vero e proprio
Users and Groups
• Come in tutti i sistemi la sicurezza si basa
sulla nozione di utente: un avatar virtuale
che dovrebbe essere associato
univocamente all’utente reale
• Il sistema richiede che l’utente si
autentichi fornendo opportune credenziali
(password, smart card, ...)
• Gli utenti possono essere raggruppati in
gruppi per una gestione aggregata
Risorse
• Il modello è quello basate su Access
Control List (ACL)
• Ogni risorsa gestita dal sistema ha
associata una lista che dice chi può
accederla e con quali diritti
• I file e le directory sono solo un esempio:
anche il descrittore di processo ha una
ACL associata
Diritti e Privilegi
• Ogni risorsa ha un proprietario
• Solo il proprietario può modificare l’ACL di
una risorsa
• Il sistema assicura che solo le operazioni
possibili secondo l’ACL sono autorizzate
• Un utente accede ad una risorsa se ha i
diritti per farlo
• Esistono alcuni privilegi che particolari
utenti possono usare per bypassare il
meccanismo dei diritti
Diventare qualcun altro
• In Unix la root può assumere una identità
qualsiasi senza bisogno di autenticazione
• Questo meccanismo è necessario per
consentire ai processi di eseguire
operazioni privilegiate
• In Windows non è possibile sfuggire
all’autenticazione: ma un utente può
impersonare un altro utente
• I privilegi compensano la minor libertà
dell’amministratore del sistema
Esempi
• Ereditare le ACL per una gestione più
semplice del filesystem
• La sicurezza e gli share di rete
• Uccidere processi di sistema
• Impostare la sicurezza del sistema