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