SlideShare una empresa de Scribd logo
1 de 25
La storia della Microsoft Corporation inizia nel
                                 1975, quando Paul Allen e Bill Gates propongono alla Micro
                                 Instrumentation and Telemetry Systems (MITS), società che
                                 aveva sviluppato il primo personal computer (chiamato Altair
                                 8800), di utilizzare il linguaggio di programmazione BASIC
                                 che, secondo Allen e Gates, avrebbe potuto funzionare sul
                                 computer Altair 8800.
Si trattava del primo linguaggio scritto per il PC: funzionava bene e nel febbraio dello stesso
anno Allen e Gates lo diedero in licenza alla MITS, dalla quale Paul Allen fu assunto come
Direttore del Software. Nell'Aprile del 1976 Gates e Allen dietero vita alla vera e propria
MICROSOFT con lo scopo di portare un computer su ogni scrivania e in ogni casa.
Nel 1980 la IBM stava cercando un sistema operativo per il suo nuovo prodotto (il PC IBM) e
per questo fece domanda alla Microsoft che allora produceva quasi solo linguaggi (Microsoft
BASIC). Gates, per non perdere l’occasione firmò il contratto di non divulgazione del codice e
acquistò per 50.000 dollari un sistema operativo "veloce e sporco", il QDOS, "Quick and Dirt
Operating System’’ dalla Seattle Computer Products. Egli aveva ottenuto da Tim Paterson (che
aveva realizzato il QDOS), un accordo di licenza non esclusivo, che gli consentiva la possibilità
di rivendere il prodotto. In seguito Microsoft comprò tutti i diritti della Seattle Computer
Products e trasformò il nome QDOS in MS-DOS (MicroSoft – Disk Operating System). Questo
primo sistema operativo MS-DOS aveva un'interfaccia a riga di comando, caratterizzata da
un'interazione di tipo testuale tra utente ed elaboratore: l'utente impartiva comandi testuali
mediante tastiera alfanumerica e riceveva risposte testuali dall'elaboratore
mediante display o stampante alfanumerici. Inoltre era un sistema operativo monoutente e
monotask, cioè era capace di far girare un solo programma alla volta.
Novembre 1985: Lancio
Windows 1.0
Essa non forniva un sistema
operativo completo, ma era
un'estensione dell'MS-DOS. Le
finestre dei programmi
potevano apparire solo
affiancate sullo schermo, e
quindi non potevano essere
sovrapposte (overlapped).




 Dicembre 1987: debutto di
 Windows 2.0
 Introduzione delle icone, possibilità
 di finestre sovrapposte, di gestire il
 layout dello schermo e utilizzare i tasti
 di scelta rapida per velocizzare il
 lavoro. Introduzione programmi a
 interfaccia grafica di Microsoft, Excel e
 Word per Windows.
Giugno 1998: Lancio Windows 98
sono incorporati il supporto per Internet,
la connessione remota e le nuove
funzionalità Plug and Play che facilitano
notevolmente le operazioni di
installazione di componenti hardware e
software. Compare per la prima volta il
menu Start e la barra delle applicazioni




Ottobre 2001: Lancio di Windows xp
fornisce funzionalità perfette per le
aziende così come per gli utenti più
esigenti. Lo strumento ideale per
ottimizzare l'affidabilità, la sicurezza e
le prestazioni dei computer aziendali.
Novembre 2006: Lancio Windows Vista
 Ha tra le sue priorità la sicurezza. La
 funzionalità di controllo dell'account utente
 consente di evitare che software
 potenzialmente pericoloso possa apportare
 delle modifiche al computer. Windows Vista
 dispone di una funzionalità di Crittografia
 unità BitLocker (crittografa tutti i file personali
 e di sistema contenuti nell'unità del sistema
 operativo, in unità di dati fisse e in unità di
 dati rimovibili) e garantisce una protezione
 ottimizzata dei dati.



Ottobre 2009: Lancio di Windows 7
è un evoluzione di windows Vista.
Considerando la diffusione di accedere a
Internet da punti wireless pubblici, come
ad esempio i bar o i parchi, Windows 7 è
nato proprio per avere la possibilità di
creare delle reti wireless aziendali o
domestiche.
È stato presentato in California da
                                                          Microsoft a sviluppatori di tutto il
                                                          mondo, il nuovo sistema
                                                          operativo Windows 8 che è stato
                                                          pensato per essere installato
                                                          e funzionare su pc, laptop (Notebook)
                                                          e tablets. Il nuovo prodotto della
                                                          Microsoft lavorerà con processore ARM.
                                                          (basato su un'architettura comune in
                                                          grado di offrire prestazioni
                                                          elevate, efficienza energetica leader del
                                                          settore e il costo del sistema ridotto.)
Gli informatici parlano di una vera e propria rivoluzione per i sistemi operativi finora
sviluppati dalla società americana. Grazie
all'interfaccia, denominata Metro, infatti, sarà possibile utilizzare il sistema operativo
sia attraverso touch che con mouse, tastiere e pennine, per un utilizzo libero e
completo di ogni applicazione.
Windows 8 offre alte prestazioni grazie alla velocità di elaborazione di tutte le
operazioni effettuate dal device su cui è installato, al design minimale e
accessibile, all’interattività e alla portabilità. Per tanto Microsoft sembra puntare
molto su di esso, soprattutto per la portabilità del sistema operativo su devices
differenti dai pc, entrando nel mercato dei software e delle applicazioni per tablets
e personal computers.
Principi progettuali
Gli obiettivi progettuali di Windows XP includono:
• la sicurezza: windows XP fornisce un moderato livello di protezione nei confronti di
    software difettosi e di attacchi malevoli.
• l'affidabilità: Windows 2000 era il sistema operativo più affidabile e più stabile sviluppato
    da Microsoft e molta della sua affidabilità era dovuta alla maturità del codice sorgente ed
    alla rilevazione automatica di errori gravi nei driver. I requisiti di affidabilità nei riguardi di
    Windows XP furono ancora più rilevanti: Windows XP amplia il controllo dei driver per
    individuare i guasti più sottili, migliora la possibilità di rilevare errori di programmazione
    nel codice utente e nelle applicazioni di terzi e sottopone i driver ed i dispositivi ad un
    rigoroso processo di certificazione. La sensazione di affidabilità di Windows XP è stata pure
    migliorata rendendo l'interfaccia grafica utente più facile da usare con un miglior aspetto
    visivo, con menu più semplici e miglioramenti controllati verso la scoperta di come svolgere
    task comuni.
• elevata prestazione: Windows XP è progettato per fornire prestazioni elevate in sistemi
    desktop (che in gran parte sono vincolati dalle prestazioni I/O), in sistemi server e in
    ambienti multithread e multiprocessore. Per soddisfare le richieste di prestazioni usa molte
    tecniche quali I/O asincrono, protocolli ottimizzati per le reti (per esempio il blocco
    ottimista dei dati distribuiti, l’accodamento delle richieste), grafica nel kernel e tecniche
    sofisticate nell’uso della cache per il file system. Gli algoritmi di gestione della memoria e
    di sincronizzazione sono progettati con uno sguardo alle prestazioni legate alla linee di
    cache ed ai multiprocessori
•    Compressione e Crittografia dei dati
    NTFS permette di utilizzare trasparentemente delle opzioni di compressione
    (NTFS può eseguire la compressione dei dati su singoli file o su tutti i file di un
    direttorio. Per comprimere un file, NTFS suddivide i dati del file in unità di
    compressione) e di crittografia (NTFS supporta la crittografia dei file; singoli file, o
    interi direttori, possono essere specificati per venire crittografati).
Architettura Windows xp
L'architettura di Windows XP è un sistema stratificato di
moduli. Gli strati principali sono:
• HAL
• il kernel il codice eseguibile che funzionano in modo
   protetto
• collezione di sottosistemi e di servizi che funzionano in
   modalità utente.

I sottosistemi in modalità utente si dividono in due
categorie:
• sottosistemi di ambiente che emulano differenti
    sistemi operativi.
• sottosistemi di protezione (protection subsystems)
    che forniscono funzioni di sicurezza.
 Uno dei principali vantaggi di questo tipo di architettura
è che le interazioni fra moduli sono semplici.
Strato di astrazione dell’hardware (HAL)
  Windows XP è stato progettato per funzionare praticamente su qualsiasi tipo di hardware.
  Invece di scrivere una diversa versione di XP per ogni piattaforma hardware, è stato creato
  HAL (l'Hardware Abstraction Layer) è uno è lo strato del software che si trova tra XP e
  l’hardware e che nasconde le differenze hardware tra i livelli superiori del sistema
  operativo per aiutare a rendere portabile Windows XP
  Pertanto è un insieme di funzioni di I/O il cui compito è di tenere conto di tutte le
  differenze fra dispositivi fisici diversi, al posto del programma che lo userà, nascondendogli
  la vera identità e natura di essi: per esempio il programma, invece di aprire personalmente
  un file chiederà all'HAL di farlo per lui e l'HAL, appena soddisfatta la richiesta, gli passerà
  un riferimento al file per la lettura (o lo leggerà per lui).
  HAL migliora la portabilità perché eventuali modifiche e adattamenti vanno fatti solamente
  nell'HAL senza toccare il codice del programma stesso; inoltre è relativamente facile
  aggiungere, all'occorrenza, una sezione all'HAL per gestire un dispositivo che non era stato
  inizialmente previsto.

  La HAL può essere utilizzata per emulare componenti non presenti nel sistema operativo o
  nell'hardware. Per esempio le moderne schede grafiche non gestiscono le modalità
  CGA, EGA o VGA. Queste modalità vengono emulate dall'HAL che provvede a tradurre le
  istruzioni che gestiscono queste modalità in comandi comprensibili dalla scheda grafica.
IL KERNEL
Il kernel di Windows XP fornisce le fondamenta per il codice eseguibile e per i
sottosistemi, esso rimane in memoria e l’esecuzione non viene mai interrotta;
Il kernel è responsabile di quattro attività principali:
• schedulazione dei thread
• gestione degli interrupt e delle eccezioni,
• sincronizzazione a basso livello del processore e recupero dopo un’interruzione
    dell’alimentazione.
Il kernel è orientato agli oggetti  Il kernel definisce un insieme di tipi di oggetti chiamati
oggetti dispatcher . Gli oggetti del dispatcher controllano l’invio e la sincronizzazione nel
sistema; esempi di questi oggetti sono gli oggetti eventi, oggetti semaforo (opera come un
contatore o per controllare il numero di thread che accedono alla risorsa), oggetti thread e
oggetti timer (sono usati per tenere traccia del tempo e per segnalare la mancata
sincronizzazione quando le operazioni impiegano troppo tempo e devono essere
interrotte). L'evento oggetto (event object) viene usato per registrare il verificarsi di un
evento e per sincronizzare questo ultimo con una qualche azione.
Pertanto tutto in XP è un "oggetto" che possono essere programmati. Questo oggetto ci
permette di utilizzare (ad esempio, il "Desktop", o "Cartella")
MICROKERNEL Si trova al centro del kernel, è molto piccolo, ma è importante perché
fornisce servizi per le applicazioni (ad esempio, richiama l'interfaccia grafica sullo
schermo, effettua dei diritti di sicurezza)
IL CODICE ESEGUIBILE
Il codice eseguibile di Windows XP fornisce un insieme dei servizi usati da tutti i
sottosistemi di ambiente; tali servizi sono raggruppati nel modo seguente:
• gestore dell’oggetto
• gestore di memoria virtuale
• gestore di processo
• gestore di I/O
• gestori plug-and-play e di sicurezza

IL GESTORE DELL’OGGETTO
Windows XP usa un insieme generico di interfacce per la gestione di entità in modalità kernel
che vengono manipolate dai programmi in modalità utente e le chiama oggetti (objects) ed il
componente di codice eseguibile che li gestisce è il gestore degli oggetti (object manager).
Ogni processo ha una tabella degli oggettI contenente gli elementi che controllano gli oggetti
usati dal processo.
Il codice in modalità utente accede a questi oggetti tramite un valore detto handle (maniglia)
che è restituito da molte API.
Gli handle sono interfacce standardizzate per tutti i generi di oggetti. Un handle dell'oggetto
è un identificatore unico per un processo che conferisce la capacità di accedere e manipolare
le risorse di sistema.
Gestore di memoria virtuale
Il componente di codice eseguibile che controlla lo spazio d'indirizzo virtuale, l’allocazione della
memoria fisica e la paginazione è il gestore della memoria virtuale (virtual-memory manager:
VM). Il progetto di gestore di VM presuppone che:
• l’hardware supporti la mappatura da memoria virtuale a quella fisica;
• un meccanismo di paginazione;
• la coerenza trasparente della cache nei sistemi multiprocessore
• permette elementi multipli nella tabella di pagina da mappare nello stesso frame di pagina
    fisica.
Le pagine dei dati allocate ad un processo che non sono in memoria fisica sono memorizzate o
nei file di paginazione (paging files) su disco, o mappate direttamente in un file normale nel file
system locale o remoto.
Il gestore di VM di Windows XP usa un processo a due passi per allocare la memoria utente: nel
primo passo, riserva una porzione dello spazio di indirizzamento virtuale del processo; nel
secondo passo, coinvolge l’allocazione assegnando lo spazio di memoria virtuale (memoria fisica
o spazio nei file di paginazione).
Windows XP implementa la memoria condivisa, definendo una sezione oggetto (section
object); dopo avere ottenuto un handle per una sezione oggetto, un processo mappa la
porzione di memoria necessaria nel proprio spazio di indirizzamento; questa porzione è
chiamata vista.
Gestore di processo
Il gestore di processo di Windows XP fornisce servizi per la creazione, la cancellazione e
l’uso di processi, thread e job, ma non conosce le relazioni padre-figlio e le gerarchie dei
processi; tali raffinatezze sono lasciate al particolare sottosistema ambientale
proprietario del processo.
 Il gestore del processo non è neppure coinvolto nella schedulazione dei processi, ad
eccezione dell’individuazione delle priorità e delle affinità dei processi e dei thread, al
momento della loro creazione; la schedulazione dei thread avviene nel dispatcher del
kernel.

La chiamata di procedura locale
Windows XP usa un modello client-server; i sottosistemi di ambiente sono server che
assumono personalità particolari del sistema operativo, e il modello client-server è
usato per implementare un certo numero di sistemi operativi oltre ai sottosistemi di
ambiente. Con questo modello si implementano altre caratteristiche, quali la
gestione della sicurezza, lo spooler di stampa, i servizi web, i file system di
rete, l’autoconfigurazione (plug-and-play) e molte altre.
Il sistema operativo usa la chiamata di procedura locale (LPC) per passare le
richieste ed i risultati fra i processi client e server all'interno di una singola
macchina. In particolare, LPC è usato per richiedere servizi dai vari sottosistemi di
Windows XP.
Gestore di I/O
Il gestore di I/O (I/O manager) è responsabile del file system, dei driver del dispositivo e
dei driver della rete. Tiene traccia di quali driver del dispositivo, driver del filtro e file
system sono caricati ed inoltre controlla i buffer per le richieste di I/O.
Funziona con il gestore di VM per fornire file a memoria mappata I/O e controlla il gestore
della cache di Windows XP, che gestisce la cache dell’intero sistema di I/O.
Il gestore di I/O è fondamentalmente asincrono.

Il gestore di I/O converte le richieste ricevute in una forma standard che si chiama
pacchetto di richiesta di I/O

Gestore della cache
In molti sistemi operativi, l’operazione di cache è eseguita dal file system. Al contrario,
Windows XP fornisce una funzione di cache centralizzata in cui il gestore di cache (cache
manager) opera in stretto contatto con il gestore di Virtual Memory per fornire servizi di
cache per tutti i componenti sotto il controllo del gestore di I/O. La cache in Windows XP è
basata sui file invece che sui blocchi grezzi.
La dimensione della cache cambia dinamicamente, in base alla quantità di memoria libera
disponibile nel sistema. La cache è divisa in blocchi di 256 Kb in cui ogni blocco può
contenere una vista, cioè una regione di memoria mappata di un file. Ogni blocco della cache
è descritto da un blocco di controllo dell’indirizzo virtuale (virtual-address control block:
VACB) che memorizza l’indirizzo virtuale e lo spiazzamento del file per la vista.
Monitor della sicurezza
In Windows XP vi è un meccanismo uniforme per controllare nel sistema ogni entità
eccessibile dall’utente. Ogni volta che si apre un processo, un handle di un oggetto, il
security reference monitor (controllore del riferimento di sicurezza: SRM) controlla il
token di sicurezza del processo e la lista di controllo di accesso dell'oggetto per stabilire se
il processo ha i diritti necessari.


Registro
Windows XP mantiene molte delle proprie informazioni di configurazione in un database
interno chiamato registro (registry). Un database del registro si chiama hive (alveare). Ci
sono hive separati per le informazioni di sistema, per le preferenze di default
dell'utente, per l'installazione del software e per la sicurezza.
Poiché per poter avviare il sistema, sono richieste informazioni dal sistema hive (system
hive), il gestore del registro è implementato come componente del codice eseguibile.
Ogni volta che il sistema si avvia con successo, esso salva il system hive come l'ultimo
ben conosciuto. Per tanto Windows XP ha un componente chiamato recupero del
sistema (system restore) che periodicamente salva gli hive, come pure altre
configurazioni del software come i driver ed i file di configurazione eseguibili, in modo
che il sistema possa essere ripristinato ad una condizione precedentemente funzionante
nel caso in cui il sistema si avvii, ma non funzioni più come previsto.
FILE SYSTEM
 Il File system del sistema operativo windows XP è NTFS ( New Technology File System)
 Le sue principali caratteristiche sono:

• Affidabilità - NTFS è un sistema transazionale, questo vuol dire che se un'operazione è
  interrotta a metà (ad esempio per un blackout) viene persa solo quell'operazione ma
  non è compromessa l'integrità del file system il quale resta comunque leggibile dal
  computer.
• Permessi e Controllo d'Accesso - a ciascun file o cartella è possibile assegnare dei diritti
  di accesso (lettura, scrittura, modifica, cancellazione e altri).
• Nomi lunghi e Unicode - i nomi dei file e delle cartelle possono essere lunghi fino a 255
  caratteri e possono contenere caratteri di tutte le lingue del mondo grazie alla codifica
  Unicode.
• Dimensioni e Flessibilità - La dimensione dei volumi e il massimo numero di file sono
  praticamente illimitati.
• Ricerca veloce del file L’NTFS memorizza l’elenco dei file per ogni directory in
  ordine alfabetico. Questo gli permette di ricercare più velocemente i file, quando
  le directory sono molto estese.
STRUTTURA DELL’NTFS
In un volume NTFS i file sono composti da attributi. L’istanza di ogni attributo è detta stream.
Sono attributi di un file il nome, il proprietario, la data e l’ora dell’ultima modifica, i dati veri e
propri e così via.
La struttura dell’NTFS è costituita da:
• Il cluster  è l’unità fondamentale allocabile su un volume.
La dimensione dei cluster, o fattore di raggruppamento, è determinata all’atto della
formattazione del volume e può essere stabilita dall’utente.
Cluster più grandi permettono la riduzione della frammentazione, ma
comportano un maggior spreco di spazio sul volume.
L’NTFS suddivide i file in cluster logici. Ogni cluster logico è indicato
da un numero virtuale (VCN: Virtual Cluster Number).
• La tabella principale dei file (MFT: Master File Table) costituisce la
struttura sulla quale l’NTFS basa la gestione dei volumi ed è una tabella strutturata in blocchi
(solitamente in record di 1KB) che contiene gli attributi di tutti i file del volume, inclusi i
metadati (ossia le informazioni usate per implementare la struttura del file system.
Inoltre Il nome di ogni metafile inizia sempre con il simbolo $.)
Tali attributi possono essere attributi residenti quando sono presenti in MFT, oppure, se non
memorizzabili a causa del poco spazio, vengono salvati in qualche altra posizione del file
system e prendono il nome di attributi non residenti.
Un file può avere attributi definiti dall’utente, come può avere diversi attributi dati. In questo
caso gli attributi dati devono avere un nome. Pertanto la MFT è il luogo in cui sono registrate le
informazioni su ogni file e directory di un volume formattato ed è come un database
relazionale, contenente vari attributi relativi ai vari file
SICUREZZA E RISERVATEZZA DEI DATI

La sicurezza dei dati è essenziale per tutti gli utenti che elaborano informazioni private o
riservate, come banche, ospedali, ed enti della difesa.
Questi utenti devono avere la garanzia che i loro dati siano protetti dagli
accessi non autorizzati.
Prima che un processo possa aprire un handle per un oggetto, il sistema di protezione di
Windows NT verifica che esso abbia le autorizzazioni per farlo.
Ogni oggetto in Windows NT ha un descrittore di sicurezza, e tutti gli utenti che eseguono il
login del sistema, devono fornire una password di identificazione.
Il sistema di protezione, grazie alla password di identificazione ed al descrittore di
sicurezza, verifica se un processo di un certo utente può accedere all’oggetto.
Per quel che riguarda i volumi, le directory ed i file, il descrittore di sicurezza contiene per
ogni identità (gruppo di utenti) una serie di permessi.

I permessi si suddividono in permessi individuali e permessi standard, che sono
una composizione di permessi individuali.
R       Read
W       Write                                No             Access -
X       Execute                              Read           RX
D       Delete                               Change         RWXD
P       Change Permissions                   Full Control    RWXDPO
O       Take Ownership
                                             Tabella permessi standard dei file
Tabella permessi individuali



                                Operazioni     Operazioni consentite
                                consentite     sui nuovi file
                   No            Access         --
                   List          RX            Non specificato
                   Read          RX            RX
                   Add           WX            Non specificato
                   Add & Read RWX              RX
                   Change        RWXD          RWXD
                   Full Control RWXDPO         RWXDPO

                    Tabella Permessi standard per le directory
LA RIDONDANZA E CORREZIONE DEGLI ERRORI

    Per le applicazioni che non possono rischiare la perdita dei dati, la
    ridondanza offre un altro livello di protezione.
    Windows XPfornisce il supporto del RAID (Redundant Arrays of
    Inexpensive Disks) livello 1 e livello 5.
    Con il RAID livello 1 si possono duplicare i dati su più volumi
    (mirror), in modo che, se una copia non è più accessibile, c’è l’altra.
    Con il RAID livello 5 i dati sono suddivisi in spezzoni e ognuno di
    questi è distribuito su più volumi, in più in ogni spezzone vengono inclusi i
    codici di parità che permettono di ricostruire le informazioni ospitate su un
    volume danneggiato, a partire dagli altri.
    Il supporto della correzione degli errori è fornito all’NTFS dal Fault
    Tollerance Disk Driver (FtDisk). FtDisk è un driver che si pone fra l’NTFS stesso
    ed il driver del disco, inoltre può funzionare con qualsiasi file system
    supportato da Windows XP.
INDICIZZAZIONE DEI FILE DELLE DIRECTORY
L’NTFS organizza l’indice dei file e delle sotto directory contenute in una directory, sfruttando
una struttura ad albero a due livelli. I file sono sistemati nei vari nodi in modo
che, percorrendo la struttura in ordine differito, si incontrano i nomi in ordine alfabetico
crescente.

 I record della MFT che descrivono le directory hanno un particolare attributo: “indice dei
file”. Questo attributo è in realtà l’unione di tre diversi attributi: “indice principale”, “indice
d’allocazione”, “bitmap”.
L’indice principale è sempre residente e contiene il primo livello
dell’albero.
L’indice d’allocazione, invece, contiene i riferimenti ai run contenenti l’elenco dei figli di
ciascun nodo del primo livello.
Interfaccia del programmatore
Le API consistono in un insieme di funzioni in linguaggio C implementate in librerie a
collegamento dinamico (DLL).
Le Windows API, nonostante siano scritte in un mix di linguaggio C e assembly,
presentano un complesso modello orientato agli oggetti con una struttura molto
uniforme ed uno stile che è stato di ispirazione per molti altri progetti.
La struttura di base delle Windows API è rimasta pressoché invariata da Windows
1.0 ad oggi. Vi sono tre gruppi principali di API: kernel, GDI e user.
 • API Kernel
 Le API kernel forniscono alle applicazioni un’interfaccia di alto livello ai servizi
 del kernel del sistema operativo (gestione della memoria, dei
 processi, sincronizzazione, ecc
 • API GDI
 Le API GDI (Graphics Device Interface) costituiscono la libreria grafica dei sistemi
 Windows. GDI virtualizza tutti i dispositivi grafici (monitor, stampanti, plotter) in
 modo da avere un’interfaccia omogenea (chiamata Device Context) tra le
 differenti tipologie di dispositivi. Inoltre GDI permette di creare e manipolare
 una serie di oggetti grafici, tra cui font, penne, pennelli, bitmap, ecc.
 • API User
 Le API user (da user interface) forniscono i servizi di interfaccia grafica, basati sui
 concetti di "finestra" e di "messaggio".
Windows XP usa il sottosistema Win32 come principale sistema operativo ed inizia così
tutti i processi.
Win 32 controlla la tastiera, il mouse e lo schermo I/O.
Dato che Win 32 è l'ambiente di controllo, esso è progettato per essere estremamente
robusto.

L'ambiente Win32 suddivide le applicazioni in categorie: o grafiche o basate su interfaccia
a caratteri, dove un’applicazione basata sull’interfaccia a caratteri è tale che l'uscita
interattiva apre una finestra basata su una interfaccia a caratteri (comando). Win32
trasforma il risultato di un'applicazione basata su interfaccia a caratteri in una
rappresentazione grafica nella finestra di comando.
Questa trasformazione è facile: ogni volta che si ha una procedura di output, il
sottosistema ambientale chiama, a sua volta, una procedura di Win32 per visualizzarne il
testo.
Poiché l'ambiente Win32 effettua questa funzione per tutte le finestre basate su
interfaccia a caratteri, può trasferire il testo sullo schermo fra le finestre tramite buffer di
tastiera (clipboard).


Win32 API è l'interfaccia fondamentale rivolta alle capacità di Windows XP.

Más contenido relacionado

La actualidad más candente

Da Thompson a Torvalds: passato, presente e futuro del mondo *nix
Da Thompson a Torvalds: passato, presente e futuro del mondo *nixDa Thompson a Torvalds: passato, presente e futuro del mondo *nix
Da Thompson a Torvalds: passato, presente e futuro del mondo *nixFelice Pescatore
 
Introduzione ai Sistemi Operativi
Introduzione ai Sistemi OperativiIntroduzione ai Sistemi Operativi
Introduzione ai Sistemi OperativiorestJump
 
Lezione 6 sound design 1
Lezione 6   sound design 1Lezione 6   sound design 1
Lezione 6 sound design 1Lorenzo Cassulo
 

La actualidad más candente (6)

Da Thompson a Torvalds: passato, presente e futuro del mondo *nix
Da Thompson a Torvalds: passato, presente e futuro del mondo *nixDa Thompson a Torvalds: passato, presente e futuro del mondo *nix
Da Thompson a Torvalds: passato, presente e futuro del mondo *nix
 
Linux & Open Source - Lezione 2
Linux & Open Source - Lezione 2Linux & Open Source - Lezione 2
Linux & Open Source - Lezione 2
 
Introduzione ai Sistemi Operativi
Introduzione ai Sistemi OperativiIntroduzione ai Sistemi Operativi
Introduzione ai Sistemi Operativi
 
Lezione 6 sound design 1
Lezione 6   sound design 1Lezione 6   sound design 1
Lezione 6 sound design 1
 
La Storia di Microsoft
La Storia di MicrosoftLa Storia di Microsoft
La Storia di Microsoft
 
Corso linux base
Corso linux baseCorso linux base
Corso linux base
 

Similar a Sistemi operativi proprietari

Funzionalità e portabilità dei sistemi operativi per piattaforme mobili
Funzionalità e portabilità dei sistemi operativi per piattaforme mobiliFunzionalità e portabilità dei sistemi operativi per piattaforme mobili
Funzionalità e portabilità dei sistemi operativi per piattaforme mobiliNicola Losito
 
Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2
Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2
Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2caioturtle
 
Power point sistemi operativi , luca marcella 3° e
Power point sistemi operativi , luca marcella 3° ePower point sistemi operativi , luca marcella 3° e
Power point sistemi operativi , luca marcella 3° eLuca Marcella
 
Concetti base di informatica
Concetti base di informaticaConcetti base di informatica
Concetti base di informaticaGianni Locatelli
 
Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Francesco Baldassarri
 
Linux nelle PMI
Linux nelle PMILinux nelle PMI
Linux nelle PMIvittoriomz
 
Elio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaElio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaBetter Software
 
Presentazione sistemi operativi meli marco
Presentazione sistemi operativi meli marcoPresentazione sistemi operativi meli marco
Presentazione sistemi operativi meli marcoMarco Meli
 
Google Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoogle Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoWireless
 
Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2pma77
 

Similar a Sistemi operativi proprietari (20)

Ti base 2020
Ti base 2020Ti base 2020
Ti base 2020
 
HARDWARE & SOFTWARE
HARDWARE & SOFTWAREHARDWARE & SOFTWARE
HARDWARE & SOFTWARE
 
Ti 2021 22_new
Ti 2021 22_newTi 2021 22_new
Ti 2021 22_new
 
X La Gui
X La GuiX La Gui
X La Gui
 
Funzionalità e portabilità dei sistemi operativi per piattaforme mobili
Funzionalità e portabilità dei sistemi operativi per piattaforme mobiliFunzionalità e portabilità dei sistemi operativi per piattaforme mobili
Funzionalità e portabilità dei sistemi operativi per piattaforme mobili
 
Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2
Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2
Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2
 
Reportage Delphi Day 2012
Reportage Delphi Day 2012Reportage Delphi Day 2012
Reportage Delphi Day 2012
 
Power point sistemi operativi , luca marcella 3° e
Power point sistemi operativi , luca marcella 3° ePower point sistemi operativi , luca marcella 3° e
Power point sistemi operativi , luca marcella 3° e
 
Concetti base di informatica
Concetti base di informaticaConcetti base di informatica
Concetti base di informatica
 
Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)
 
Linux nelle PMI
Linux nelle PMILinux nelle PMI
Linux nelle PMI
 
Elio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaElio Tondo - Linux In Azienda
Elio Tondo - Linux In Azienda
 
Presentazione sistemi operativi meli marco
Presentazione sistemi operativi meli marcoPresentazione sistemi operativi meli marco
Presentazione sistemi operativi meli marco
 
Google Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoogle Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobili
 
Sistemi operativi
Sistemi operativiSistemi operativi
Sistemi operativi
 
Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2
 
MODULO 1-Informatica di Base
MODULO 1-Informatica di BaseMODULO 1-Informatica di Base
MODULO 1-Informatica di Base
 
I11 mortillaro
I11 mortillaroI11 mortillaro
I11 mortillaro
 
Io, Android
Io, AndroidIo, Android
Io, Android
 
Introduzione a .Net Core
Introduzione a .Net CoreIntroduzione a .Net Core
Introduzione a .Net Core
 

Sistemi operativi proprietari

  • 1. La storia della Microsoft Corporation inizia nel 1975, quando Paul Allen e Bill Gates propongono alla Micro Instrumentation and Telemetry Systems (MITS), società che aveva sviluppato il primo personal computer (chiamato Altair 8800), di utilizzare il linguaggio di programmazione BASIC che, secondo Allen e Gates, avrebbe potuto funzionare sul computer Altair 8800. Si trattava del primo linguaggio scritto per il PC: funzionava bene e nel febbraio dello stesso anno Allen e Gates lo diedero in licenza alla MITS, dalla quale Paul Allen fu assunto come Direttore del Software. Nell'Aprile del 1976 Gates e Allen dietero vita alla vera e propria MICROSOFT con lo scopo di portare un computer su ogni scrivania e in ogni casa. Nel 1980 la IBM stava cercando un sistema operativo per il suo nuovo prodotto (il PC IBM) e per questo fece domanda alla Microsoft che allora produceva quasi solo linguaggi (Microsoft BASIC). Gates, per non perdere l’occasione firmò il contratto di non divulgazione del codice e acquistò per 50.000 dollari un sistema operativo "veloce e sporco", il QDOS, "Quick and Dirt Operating System’’ dalla Seattle Computer Products. Egli aveva ottenuto da Tim Paterson (che aveva realizzato il QDOS), un accordo di licenza non esclusivo, che gli consentiva la possibilità di rivendere il prodotto. In seguito Microsoft comprò tutti i diritti della Seattle Computer Products e trasformò il nome QDOS in MS-DOS (MicroSoft – Disk Operating System). Questo primo sistema operativo MS-DOS aveva un'interfaccia a riga di comando, caratterizzata da un'interazione di tipo testuale tra utente ed elaboratore: l'utente impartiva comandi testuali mediante tastiera alfanumerica e riceveva risposte testuali dall'elaboratore mediante display o stampante alfanumerici. Inoltre era un sistema operativo monoutente e monotask, cioè era capace di far girare un solo programma alla volta.
  • 2. Novembre 1985: Lancio Windows 1.0 Essa non forniva un sistema operativo completo, ma era un'estensione dell'MS-DOS. Le finestre dei programmi potevano apparire solo affiancate sullo schermo, e quindi non potevano essere sovrapposte (overlapped). Dicembre 1987: debutto di Windows 2.0 Introduzione delle icone, possibilità di finestre sovrapposte, di gestire il layout dello schermo e utilizzare i tasti di scelta rapida per velocizzare il lavoro. Introduzione programmi a interfaccia grafica di Microsoft, Excel e Word per Windows.
  • 3. Giugno 1998: Lancio Windows 98 sono incorporati il supporto per Internet, la connessione remota e le nuove funzionalità Plug and Play che facilitano notevolmente le operazioni di installazione di componenti hardware e software. Compare per la prima volta il menu Start e la barra delle applicazioni Ottobre 2001: Lancio di Windows xp fornisce funzionalità perfette per le aziende così come per gli utenti più esigenti. Lo strumento ideale per ottimizzare l'affidabilità, la sicurezza e le prestazioni dei computer aziendali.
  • 4. Novembre 2006: Lancio Windows Vista Ha tra le sue priorità la sicurezza. La funzionalità di controllo dell'account utente consente di evitare che software potenzialmente pericoloso possa apportare delle modifiche al computer. Windows Vista dispone di una funzionalità di Crittografia unità BitLocker (crittografa tutti i file personali e di sistema contenuti nell'unità del sistema operativo, in unità di dati fisse e in unità di dati rimovibili) e garantisce una protezione ottimizzata dei dati. Ottobre 2009: Lancio di Windows 7 è un evoluzione di windows Vista. Considerando la diffusione di accedere a Internet da punti wireless pubblici, come ad esempio i bar o i parchi, Windows 7 è nato proprio per avere la possibilità di creare delle reti wireless aziendali o domestiche.
  • 5. È stato presentato in California da Microsoft a sviluppatori di tutto il mondo, il nuovo sistema operativo Windows 8 che è stato pensato per essere installato e funzionare su pc, laptop (Notebook) e tablets. Il nuovo prodotto della Microsoft lavorerà con processore ARM. (basato su un'architettura comune in grado di offrire prestazioni elevate, efficienza energetica leader del settore e il costo del sistema ridotto.) Gli informatici parlano di una vera e propria rivoluzione per i sistemi operativi finora sviluppati dalla società americana. Grazie all'interfaccia, denominata Metro, infatti, sarà possibile utilizzare il sistema operativo sia attraverso touch che con mouse, tastiere e pennine, per un utilizzo libero e completo di ogni applicazione. Windows 8 offre alte prestazioni grazie alla velocità di elaborazione di tutte le operazioni effettuate dal device su cui è installato, al design minimale e accessibile, all’interattività e alla portabilità. Per tanto Microsoft sembra puntare molto su di esso, soprattutto per la portabilità del sistema operativo su devices differenti dai pc, entrando nel mercato dei software e delle applicazioni per tablets e personal computers.
  • 6. Principi progettuali Gli obiettivi progettuali di Windows XP includono: • la sicurezza: windows XP fornisce un moderato livello di protezione nei confronti di software difettosi e di attacchi malevoli. • l'affidabilità: Windows 2000 era il sistema operativo più affidabile e più stabile sviluppato da Microsoft e molta della sua affidabilità era dovuta alla maturità del codice sorgente ed alla rilevazione automatica di errori gravi nei driver. I requisiti di affidabilità nei riguardi di Windows XP furono ancora più rilevanti: Windows XP amplia il controllo dei driver per individuare i guasti più sottili, migliora la possibilità di rilevare errori di programmazione nel codice utente e nelle applicazioni di terzi e sottopone i driver ed i dispositivi ad un rigoroso processo di certificazione. La sensazione di affidabilità di Windows XP è stata pure migliorata rendendo l'interfaccia grafica utente più facile da usare con un miglior aspetto visivo, con menu più semplici e miglioramenti controllati verso la scoperta di come svolgere task comuni. • elevata prestazione: Windows XP è progettato per fornire prestazioni elevate in sistemi desktop (che in gran parte sono vincolati dalle prestazioni I/O), in sistemi server e in ambienti multithread e multiprocessore. Per soddisfare le richieste di prestazioni usa molte tecniche quali I/O asincrono, protocolli ottimizzati per le reti (per esempio il blocco ottimista dei dati distribuiti, l’accodamento delle richieste), grafica nel kernel e tecniche sofisticate nell’uso della cache per il file system. Gli algoritmi di gestione della memoria e di sincronizzazione sono progettati con uno sguardo alle prestazioni legate alla linee di cache ed ai multiprocessori
  • 7. Compressione e Crittografia dei dati NTFS permette di utilizzare trasparentemente delle opzioni di compressione (NTFS può eseguire la compressione dei dati su singoli file o su tutti i file di un direttorio. Per comprimere un file, NTFS suddivide i dati del file in unità di compressione) e di crittografia (NTFS supporta la crittografia dei file; singoli file, o interi direttori, possono essere specificati per venire crittografati).
  • 8. Architettura Windows xp L'architettura di Windows XP è un sistema stratificato di moduli. Gli strati principali sono: • HAL • il kernel il codice eseguibile che funzionano in modo protetto • collezione di sottosistemi e di servizi che funzionano in modalità utente. I sottosistemi in modalità utente si dividono in due categorie: • sottosistemi di ambiente che emulano differenti sistemi operativi. • sottosistemi di protezione (protection subsystems) che forniscono funzioni di sicurezza. Uno dei principali vantaggi di questo tipo di architettura è che le interazioni fra moduli sono semplici.
  • 9.
  • 10. Strato di astrazione dell’hardware (HAL) Windows XP è stato progettato per funzionare praticamente su qualsiasi tipo di hardware. Invece di scrivere una diversa versione di XP per ogni piattaforma hardware, è stato creato HAL (l'Hardware Abstraction Layer) è uno è lo strato del software che si trova tra XP e l’hardware e che nasconde le differenze hardware tra i livelli superiori del sistema operativo per aiutare a rendere portabile Windows XP Pertanto è un insieme di funzioni di I/O il cui compito è di tenere conto di tutte le differenze fra dispositivi fisici diversi, al posto del programma che lo userà, nascondendogli la vera identità e natura di essi: per esempio il programma, invece di aprire personalmente un file chiederà all'HAL di farlo per lui e l'HAL, appena soddisfatta la richiesta, gli passerà un riferimento al file per la lettura (o lo leggerà per lui). HAL migliora la portabilità perché eventuali modifiche e adattamenti vanno fatti solamente nell'HAL senza toccare il codice del programma stesso; inoltre è relativamente facile aggiungere, all'occorrenza, una sezione all'HAL per gestire un dispositivo che non era stato inizialmente previsto. La HAL può essere utilizzata per emulare componenti non presenti nel sistema operativo o nell'hardware. Per esempio le moderne schede grafiche non gestiscono le modalità CGA, EGA o VGA. Queste modalità vengono emulate dall'HAL che provvede a tradurre le istruzioni che gestiscono queste modalità in comandi comprensibili dalla scheda grafica.
  • 11. IL KERNEL Il kernel di Windows XP fornisce le fondamenta per il codice eseguibile e per i sottosistemi, esso rimane in memoria e l’esecuzione non viene mai interrotta; Il kernel è responsabile di quattro attività principali: • schedulazione dei thread • gestione degli interrupt e delle eccezioni, • sincronizzazione a basso livello del processore e recupero dopo un’interruzione dell’alimentazione. Il kernel è orientato agli oggetti  Il kernel definisce un insieme di tipi di oggetti chiamati oggetti dispatcher . Gli oggetti del dispatcher controllano l’invio e la sincronizzazione nel sistema; esempi di questi oggetti sono gli oggetti eventi, oggetti semaforo (opera come un contatore o per controllare il numero di thread che accedono alla risorsa), oggetti thread e oggetti timer (sono usati per tenere traccia del tempo e per segnalare la mancata sincronizzazione quando le operazioni impiegano troppo tempo e devono essere interrotte). L'evento oggetto (event object) viene usato per registrare il verificarsi di un evento e per sincronizzare questo ultimo con una qualche azione. Pertanto tutto in XP è un "oggetto" che possono essere programmati. Questo oggetto ci permette di utilizzare (ad esempio, il "Desktop", o "Cartella") MICROKERNEL Si trova al centro del kernel, è molto piccolo, ma è importante perché fornisce servizi per le applicazioni (ad esempio, richiama l'interfaccia grafica sullo schermo, effettua dei diritti di sicurezza)
  • 12. IL CODICE ESEGUIBILE Il codice eseguibile di Windows XP fornisce un insieme dei servizi usati da tutti i sottosistemi di ambiente; tali servizi sono raggruppati nel modo seguente: • gestore dell’oggetto • gestore di memoria virtuale • gestore di processo • gestore di I/O • gestori plug-and-play e di sicurezza IL GESTORE DELL’OGGETTO Windows XP usa un insieme generico di interfacce per la gestione di entità in modalità kernel che vengono manipolate dai programmi in modalità utente e le chiama oggetti (objects) ed il componente di codice eseguibile che li gestisce è il gestore degli oggetti (object manager). Ogni processo ha una tabella degli oggettI contenente gli elementi che controllano gli oggetti usati dal processo. Il codice in modalità utente accede a questi oggetti tramite un valore detto handle (maniglia) che è restituito da molte API. Gli handle sono interfacce standardizzate per tutti i generi di oggetti. Un handle dell'oggetto è un identificatore unico per un processo che conferisce la capacità di accedere e manipolare le risorse di sistema.
  • 13. Gestore di memoria virtuale Il componente di codice eseguibile che controlla lo spazio d'indirizzo virtuale, l’allocazione della memoria fisica e la paginazione è il gestore della memoria virtuale (virtual-memory manager: VM). Il progetto di gestore di VM presuppone che: • l’hardware supporti la mappatura da memoria virtuale a quella fisica; • un meccanismo di paginazione; • la coerenza trasparente della cache nei sistemi multiprocessore • permette elementi multipli nella tabella di pagina da mappare nello stesso frame di pagina fisica. Le pagine dei dati allocate ad un processo che non sono in memoria fisica sono memorizzate o nei file di paginazione (paging files) su disco, o mappate direttamente in un file normale nel file system locale o remoto. Il gestore di VM di Windows XP usa un processo a due passi per allocare la memoria utente: nel primo passo, riserva una porzione dello spazio di indirizzamento virtuale del processo; nel secondo passo, coinvolge l’allocazione assegnando lo spazio di memoria virtuale (memoria fisica o spazio nei file di paginazione). Windows XP implementa la memoria condivisa, definendo una sezione oggetto (section object); dopo avere ottenuto un handle per una sezione oggetto, un processo mappa la porzione di memoria necessaria nel proprio spazio di indirizzamento; questa porzione è chiamata vista.
  • 14. Gestore di processo Il gestore di processo di Windows XP fornisce servizi per la creazione, la cancellazione e l’uso di processi, thread e job, ma non conosce le relazioni padre-figlio e le gerarchie dei processi; tali raffinatezze sono lasciate al particolare sottosistema ambientale proprietario del processo. Il gestore del processo non è neppure coinvolto nella schedulazione dei processi, ad eccezione dell’individuazione delle priorità e delle affinità dei processi e dei thread, al momento della loro creazione; la schedulazione dei thread avviene nel dispatcher del kernel. La chiamata di procedura locale Windows XP usa un modello client-server; i sottosistemi di ambiente sono server che assumono personalità particolari del sistema operativo, e il modello client-server è usato per implementare un certo numero di sistemi operativi oltre ai sottosistemi di ambiente. Con questo modello si implementano altre caratteristiche, quali la gestione della sicurezza, lo spooler di stampa, i servizi web, i file system di rete, l’autoconfigurazione (plug-and-play) e molte altre. Il sistema operativo usa la chiamata di procedura locale (LPC) per passare le richieste ed i risultati fra i processi client e server all'interno di una singola macchina. In particolare, LPC è usato per richiedere servizi dai vari sottosistemi di Windows XP.
  • 15. Gestore di I/O Il gestore di I/O (I/O manager) è responsabile del file system, dei driver del dispositivo e dei driver della rete. Tiene traccia di quali driver del dispositivo, driver del filtro e file system sono caricati ed inoltre controlla i buffer per le richieste di I/O. Funziona con il gestore di VM per fornire file a memoria mappata I/O e controlla il gestore della cache di Windows XP, che gestisce la cache dell’intero sistema di I/O. Il gestore di I/O è fondamentalmente asincrono. Il gestore di I/O converte le richieste ricevute in una forma standard che si chiama pacchetto di richiesta di I/O Gestore della cache In molti sistemi operativi, l’operazione di cache è eseguita dal file system. Al contrario, Windows XP fornisce una funzione di cache centralizzata in cui il gestore di cache (cache manager) opera in stretto contatto con il gestore di Virtual Memory per fornire servizi di cache per tutti i componenti sotto il controllo del gestore di I/O. La cache in Windows XP è basata sui file invece che sui blocchi grezzi. La dimensione della cache cambia dinamicamente, in base alla quantità di memoria libera disponibile nel sistema. La cache è divisa in blocchi di 256 Kb in cui ogni blocco può contenere una vista, cioè una regione di memoria mappata di un file. Ogni blocco della cache è descritto da un blocco di controllo dell’indirizzo virtuale (virtual-address control block: VACB) che memorizza l’indirizzo virtuale e lo spiazzamento del file per la vista.
  • 16. Monitor della sicurezza In Windows XP vi è un meccanismo uniforme per controllare nel sistema ogni entità eccessibile dall’utente. Ogni volta che si apre un processo, un handle di un oggetto, il security reference monitor (controllore del riferimento di sicurezza: SRM) controlla il token di sicurezza del processo e la lista di controllo di accesso dell'oggetto per stabilire se il processo ha i diritti necessari. Registro Windows XP mantiene molte delle proprie informazioni di configurazione in un database interno chiamato registro (registry). Un database del registro si chiama hive (alveare). Ci sono hive separati per le informazioni di sistema, per le preferenze di default dell'utente, per l'installazione del software e per la sicurezza. Poiché per poter avviare il sistema, sono richieste informazioni dal sistema hive (system hive), il gestore del registro è implementato come componente del codice eseguibile. Ogni volta che il sistema si avvia con successo, esso salva il system hive come l'ultimo ben conosciuto. Per tanto Windows XP ha un componente chiamato recupero del sistema (system restore) che periodicamente salva gli hive, come pure altre configurazioni del software come i driver ed i file di configurazione eseguibili, in modo che il sistema possa essere ripristinato ad una condizione precedentemente funzionante nel caso in cui il sistema si avvii, ma non funzioni più come previsto.
  • 17. FILE SYSTEM Il File system del sistema operativo windows XP è NTFS ( New Technology File System) Le sue principali caratteristiche sono: • Affidabilità - NTFS è un sistema transazionale, questo vuol dire che se un'operazione è interrotta a metà (ad esempio per un blackout) viene persa solo quell'operazione ma non è compromessa l'integrità del file system il quale resta comunque leggibile dal computer. • Permessi e Controllo d'Accesso - a ciascun file o cartella è possibile assegnare dei diritti di accesso (lettura, scrittura, modifica, cancellazione e altri). • Nomi lunghi e Unicode - i nomi dei file e delle cartelle possono essere lunghi fino a 255 caratteri e possono contenere caratteri di tutte le lingue del mondo grazie alla codifica Unicode. • Dimensioni e Flessibilità - La dimensione dei volumi e il massimo numero di file sono praticamente illimitati. • Ricerca veloce del file L’NTFS memorizza l’elenco dei file per ogni directory in ordine alfabetico. Questo gli permette di ricercare più velocemente i file, quando le directory sono molto estese.
  • 18. STRUTTURA DELL’NTFS In un volume NTFS i file sono composti da attributi. L’istanza di ogni attributo è detta stream. Sono attributi di un file il nome, il proprietario, la data e l’ora dell’ultima modifica, i dati veri e propri e così via. La struttura dell’NTFS è costituita da: • Il cluster  è l’unità fondamentale allocabile su un volume. La dimensione dei cluster, o fattore di raggruppamento, è determinata all’atto della formattazione del volume e può essere stabilita dall’utente. Cluster più grandi permettono la riduzione della frammentazione, ma comportano un maggior spreco di spazio sul volume. L’NTFS suddivide i file in cluster logici. Ogni cluster logico è indicato da un numero virtuale (VCN: Virtual Cluster Number). • La tabella principale dei file (MFT: Master File Table) costituisce la struttura sulla quale l’NTFS basa la gestione dei volumi ed è una tabella strutturata in blocchi (solitamente in record di 1KB) che contiene gli attributi di tutti i file del volume, inclusi i metadati (ossia le informazioni usate per implementare la struttura del file system. Inoltre Il nome di ogni metafile inizia sempre con il simbolo $.) Tali attributi possono essere attributi residenti quando sono presenti in MFT, oppure, se non memorizzabili a causa del poco spazio, vengono salvati in qualche altra posizione del file system e prendono il nome di attributi non residenti. Un file può avere attributi definiti dall’utente, come può avere diversi attributi dati. In questo caso gli attributi dati devono avere un nome. Pertanto la MFT è il luogo in cui sono registrate le informazioni su ogni file e directory di un volume formattato ed è come un database relazionale, contenente vari attributi relativi ai vari file
  • 19.
  • 20. SICUREZZA E RISERVATEZZA DEI DATI La sicurezza dei dati è essenziale per tutti gli utenti che elaborano informazioni private o riservate, come banche, ospedali, ed enti della difesa. Questi utenti devono avere la garanzia che i loro dati siano protetti dagli accessi non autorizzati. Prima che un processo possa aprire un handle per un oggetto, il sistema di protezione di Windows NT verifica che esso abbia le autorizzazioni per farlo. Ogni oggetto in Windows NT ha un descrittore di sicurezza, e tutti gli utenti che eseguono il login del sistema, devono fornire una password di identificazione. Il sistema di protezione, grazie alla password di identificazione ed al descrittore di sicurezza, verifica se un processo di un certo utente può accedere all’oggetto. Per quel che riguarda i volumi, le directory ed i file, il descrittore di sicurezza contiene per ogni identità (gruppo di utenti) una serie di permessi. I permessi si suddividono in permessi individuali e permessi standard, che sono una composizione di permessi individuali.
  • 21. R Read W Write No Access - X Execute Read RX D Delete Change RWXD P Change Permissions Full Control RWXDPO O Take Ownership Tabella permessi standard dei file Tabella permessi individuali Operazioni Operazioni consentite consentite sui nuovi file No Access -- List RX Non specificato Read RX RX Add WX Non specificato Add & Read RWX RX Change RWXD RWXD Full Control RWXDPO RWXDPO Tabella Permessi standard per le directory
  • 22. LA RIDONDANZA E CORREZIONE DEGLI ERRORI Per le applicazioni che non possono rischiare la perdita dei dati, la ridondanza offre un altro livello di protezione. Windows XPfornisce il supporto del RAID (Redundant Arrays of Inexpensive Disks) livello 1 e livello 5. Con il RAID livello 1 si possono duplicare i dati su più volumi (mirror), in modo che, se una copia non è più accessibile, c’è l’altra. Con il RAID livello 5 i dati sono suddivisi in spezzoni e ognuno di questi è distribuito su più volumi, in più in ogni spezzone vengono inclusi i codici di parità che permettono di ricostruire le informazioni ospitate su un volume danneggiato, a partire dagli altri. Il supporto della correzione degli errori è fornito all’NTFS dal Fault Tollerance Disk Driver (FtDisk). FtDisk è un driver che si pone fra l’NTFS stesso ed il driver del disco, inoltre può funzionare con qualsiasi file system supportato da Windows XP.
  • 23. INDICIZZAZIONE DEI FILE DELLE DIRECTORY L’NTFS organizza l’indice dei file e delle sotto directory contenute in una directory, sfruttando una struttura ad albero a due livelli. I file sono sistemati nei vari nodi in modo che, percorrendo la struttura in ordine differito, si incontrano i nomi in ordine alfabetico crescente. I record della MFT che descrivono le directory hanno un particolare attributo: “indice dei file”. Questo attributo è in realtà l’unione di tre diversi attributi: “indice principale”, “indice d’allocazione”, “bitmap”. L’indice principale è sempre residente e contiene il primo livello dell’albero. L’indice d’allocazione, invece, contiene i riferimenti ai run contenenti l’elenco dei figli di ciascun nodo del primo livello.
  • 24. Interfaccia del programmatore Le API consistono in un insieme di funzioni in linguaggio C implementate in librerie a collegamento dinamico (DLL). Le Windows API, nonostante siano scritte in un mix di linguaggio C e assembly, presentano un complesso modello orientato agli oggetti con una struttura molto uniforme ed uno stile che è stato di ispirazione per molti altri progetti. La struttura di base delle Windows API è rimasta pressoché invariata da Windows 1.0 ad oggi. Vi sono tre gruppi principali di API: kernel, GDI e user. • API Kernel Le API kernel forniscono alle applicazioni un’interfaccia di alto livello ai servizi del kernel del sistema operativo (gestione della memoria, dei processi, sincronizzazione, ecc • API GDI Le API GDI (Graphics Device Interface) costituiscono la libreria grafica dei sistemi Windows. GDI virtualizza tutti i dispositivi grafici (monitor, stampanti, plotter) in modo da avere un’interfaccia omogenea (chiamata Device Context) tra le differenti tipologie di dispositivi. Inoltre GDI permette di creare e manipolare una serie di oggetti grafici, tra cui font, penne, pennelli, bitmap, ecc. • API User Le API user (da user interface) forniscono i servizi di interfaccia grafica, basati sui concetti di "finestra" e di "messaggio".
  • 25. Windows XP usa il sottosistema Win32 come principale sistema operativo ed inizia così tutti i processi. Win 32 controlla la tastiera, il mouse e lo schermo I/O. Dato che Win 32 è l'ambiente di controllo, esso è progettato per essere estremamente robusto. L'ambiente Win32 suddivide le applicazioni in categorie: o grafiche o basate su interfaccia a caratteri, dove un’applicazione basata sull’interfaccia a caratteri è tale che l'uscita interattiva apre una finestra basata su una interfaccia a caratteri (comando). Win32 trasforma il risultato di un'applicazione basata su interfaccia a caratteri in una rappresentazione grafica nella finestra di comando. Questa trasformazione è facile: ogni volta che si ha una procedura di output, il sottosistema ambientale chiama, a sua volta, una procedura di Win32 per visualizzarne il testo. Poiché l'ambiente Win32 effettua questa funzione per tutte le finestre basate su interfaccia a caratteri, può trasferire il testo sullo schermo fra le finestre tramite buffer di tastiera (clipboard). Win32 API è l'interfaccia fondamentale rivolta alle capacità di Windows XP.