Software: di sistema e applicativo Di sistema: controlla il comportamento del sistema stesso il più importante dei software di sistema è il sistema operativo: controlla le risorse del sistema fornisce la base su cui costruire tutti gli altri programmi Applicativo: risolve i problemi dell’utente, appoggiandosi sullo strato fornito dal sistema operativo Alessandro Di Nuovo 1 1 Il sistema operativo Con il termine sistema operativo si intende l’insieme di programmi e librerie che opera direttamente sulla macchina fisica... ... mascherandone le caratteristiche specifiche... ... e fornendo agli utenti un insieme di funzionalità di alto livello Il sistema opera-vo fornisce all'utente vari strumen-, quale un ambiente per l'esecuzione di altri programmi e una visione astra:a del hardware. Alessandro Di Nuovo 2 2 Funzione del sistema operativo Rendere u-lizzabili le risorse fisiche presen- nel sistema informa-co infrastru:ura so@ware, che si pone come interfaccia per l’infrastru:ura hardware e serve a facilitarne l’u-lizzo e la ges-one Il sistema opera-vo è un insieme di moduli so@ware che virtualizzano le cara:eris-che dell’hardware so:ostante, rendendolo accessibile come una macchina astra:a, più semplice da u-lizzare di quella fisicamente disponibile. Alessandro Di Nuovo 3 SO: funzionalità GESTORE DELLE RISORSE, controlla tu:e le risorse del calcolatore e le ges-sce in modo efficiente: -ene traccia di chi u-lizza la risorse acce:a e soddisfa le richieste di u-lizzo di una risorsa fa da mediatore fra le risorse che risultano in confli:o. MACCHINA ESTESA: cos-tuisce la base su cui è possibile scrivere i programmi applica-vi. presenta all’utente una macchina estesa più facile da programmare dell’HW so:ostante. Alessandro Di Nuovo 4 Sistemi Operativi • MS-DOS • MS-Windows (95, 98, 2000, XP, Vista, Seven) • Unix • Commerciali: Sun Solaris, IBM AIX, HP-UX,… • Linux • BSD • Apple • Mac OS X • iOS • Altri (IBM AS/400, Symbian, Android…) Alessandro Di Nuovo 5 5 Architettura di un S.O. - 1 • Un moderno S.O. è organizzato secondo una architettura “a strati” (a cipolla) • Ogni strato implementa una macchina virtuale più potente del precedente • Appoggiandosi alle funzionalità offerte dallo strato precedente • Tale approccio permette una chiara separazione tra interfaccia e implementazione delle diverse funzionalità • Ogni strato è costituito da un insieme di programmi e librerie • I meccanismi di chiamate tra livelli possono essere diversi • chiamate a sottoprogrammi, interruzioni sincrone o asincrone, invio di messaggi a processi Alessandro Di Nuovo 6 6 Architettura di un S.O. - 2 Programmi utente Interfacce utente Interprete dei comandi Interfaccia grafica Gestore del file system Gestori di risorse (kernel/nucleo) Gestore delle periferiche Gestore della memoria Gestore dei processi (nucleo) Macchina fisica Alessandro Di Nuovo 7 7 Il Nucleo • Il nucleo • Si appoggia direttamente sulla macchina fisica • Effettua la gestione dei processi • In un sistema multitasking realizza una macchina virtuale in cui ad ogni processo è assegnata un processore virtuale • Comprende i principali programmi di risposta ad interruzione • Realizza le primitive di sincronizzazione e scambio messaggi tra processi Alessandro Di Nuovo 8 8 Il nucleo La macchina virtuale realizzata dal nucleo Processore virtuale Processore virtuale ... Processore virtuale Bus di sistema Disco Memoria centrale Alessandro Di Nuovo Interfaccia delle periferiche 9 9 Il gestore della memoria • Il gestore della memoria • Realizza le funzionalità di allocazione della memoria • Supera i limiti della memoria fisica e mostra ai processi uno spazio di memoria virtuale • Partiziona la memoria tra i vari processi che la richiedono • Garantendo la protezione delle diverse zone di memoria Alessandro Di Nuovo 10 10 Il gestore della memoria La macchina virtuale realizzata dal gestore della memoria Memoria virtuale Memoria virtuale ... Memoria virtuale Processore virtuale Processore virtuale ... Processore virtuale Bus di sistema Interfaccia delle periferiche Disco Alessandro Di Nuovo 11 11 Il gestore delle periferiche Il gestore delle periferiche Maschera le caratteristiche fisiche delle periferiche Fornisce agli strati superiori un insieme di procedure di alto livello per l’accesso alle diverse periferiche Offre ad ogni processo la visibilità di un insieme di periferiche virtuali dedicate Gestisce, almeno in parte, i malfunzionamenti delle periferiche Cultura tecnologica del progetto Alessandro Di Nuovo 12 12 Il gestore delle periferiche La macchina virtuale realizzata dal gestore delle periferiche Memoria virtuale Interfaccia periferiche virtuali Memoria virtuale ... Bus Interfaccia periferiche virtuali Bus Processore virtuale Processore virtuale Bus di sistema Disco Alessandro Di Nuovo 13 13 Il gestore del file system Il gestore del file system E’ responsabile della gestione delle periferiche di massa Hard disk CD / DVD Memory stick USB ... Fornisce agli strati superiori un insieme di procedure per l’accesso al file system Garantisce la protezione nell’accesso ai file Alessandro Di Nuovo 14 14 Il gestore del file system • Le funzioni di base che sono supportate da un file system sono Il recupero di dati precedentemente memorizzati L’eliminazione di dati obsoleti La modifica/aggiornamento di dati preesistenti La copia di dati Tra supporti di memorizzazione diversi (ad es. da HD a CD) In cartelle diverse nello stesso supporto Alessandro Di Nuovo 15 15 Il gestore del file system I dati contenuti nella memoria di massa vengono strutturati e gestiti mediante una organizzazione in file Un file è un contenitore logico identificato da un nome (filename) I filename generalmente sono composti da due parti ad es. informatica.pdf Il filename vero e proprio (informatica) L’estensione (pdf) Alessandro Di Nuovo 16 16 Il gestore del file system L’estensione è spesso associata al programma che ha generato il file e individua pertanto la tipologia del contenuto del file .exe à file eseguibili .txt à file di testo .doc à documenti di testo (MS Word) .wav à file audio .bmp à immagine in formato bitmap ... Ad ogni file sono poi associati dal sistema operativo altri dati Data di creazione / modifica Lunghezza del file (in byte) Utenti/Gruppi che possono accedere ai file Alessandro Di Nuovo 17 17 Il gestore del file system I file vengono suddivisi in più contenitori logici, chiamati directory, cataloghi o cartelle (folders) Le cartelle sono organizzate secondo una struttura ad albero Il file system contiene una directory detta radice dell’albero che può contenere file o altre cartelle Ciascun file è individuato univocamente dal suo nome completo o percorso assoluto Ad es. D:\downloads\temp\002.part Due file con lo stesso nome in due cartelle distinte, ad esempio D:\Immagini\Compleanno\foto1.jpg D:\Documenti\foto1.jpg fanno riferimento a due file che in generale possono essere DIVERSI Alessandro Di Nuovo 18 18 Il gestore del file system D: Documenti Downloads Incoming Temp ... ... Alessandro Di Nuovo 19 19 Nozioni di base File System Alessandro Di Nuovo 20 Organizzazione fisica dei dati Come mantenere la corrispondenza tra il nome del file e i blocchi su disco che ne contengono i da-: lista concatenata (e.g. Windows 95/98) a par-re dal primo elemento, in coda a ogni blocco di da- viene riportato l’indirizzo del successivo), la lista può essere memorizzata in una par-colare area del disco: File Alloca-on Table, FAT l’indirizzo del primo blocco dei da- si trova nel descri:ore di file per arrivare a conoscere l’effe]vo indirizzo su disco di un dato è necessario analizzare, qualora il file sia composto da N blocchi, un numero di blocchi proporzionale a N. i‑node (e.g. UNIX) se il file è piccolo, l’i-­‐node con-ene l’indicazione dei blocchi di da-, se il file è grande, l’i-­‐node iden-ficare un insieme di altri i‑node, che a loro volta specificano blocchi di da-; se il file è molto grande si ripete il procedimento con un livello ulteriore di indirezione; … per arrivare a conoscere l’effe]vo indirizzo su disco di un dato è necessario analizzare, qualora il file sia composto da N blocchi, un numero di i‑node proporzionale a log(N). Alessandro Di Nuovo 21 Il controllo degli accessi Iden-ficazione degli accessi al sistema. Associare a ogni utente un account (login) e una parola d’ordine (password). All’interno del sistema opera-vo, in un apposito file, è contenuta la lista di tu] gli account e delle rela-ve password: solo se viene specificato un account fra quelli previs- (utente abilitato) e la password corrisponde a quella memorizzata (cer-ficazione di iden-tà) viene consen-to l’accesso al sistema. Questo consente di personalizzare il sistema, per esempio definendo: la distribuzione dei cos- di ges-one fra i vari uten-; la visibilità del sistema in termini di porzione del file system complessivo, periferiche e programmi applica-vi disponibili; la personalizzazione dell’ambiente opera-vo. Consente di controllare gli accessi ai file: livello di protezione a livello di file o di directory; es. UNIX: tre -pi di uten-: il proprietario, il gruppo e il “resto del mondo”. tre abilitazioni: le:ura (R), scri:ura (W) ed esecuzione (X). altro metodo: Access Control List nel SO esiste una tabella in cui ogni riga corrisponde a una diversa risorsa del sistema (programmi, stampan-, directory...), la riga con-ene una lista che specifica tu] gli uten- abilita- all’uso della corrispondente risorsa e le modalità per la sua fruizione (per esempio a un utente potrebbe essere consen-to solo leggere ma non scrivere in una directory, oppure proibito l’uso di alcune stampan- collegate in rete). Alessandro Di Nuovo 22 Il gestore del file system La macchina virtuale realizzata dal gestore del file system Memoria virtuale Interfaccia periferiche virtuali Memoria virtuale File ... File ... Bus Interfaccia periferiche virtuali File ... File 23 23 Bus Processore virtuale Processore virtuale Bus di sistema Alessandro Di Nuovo Modulo del SO direttamente accessibile dall’utente Ha la funzione di interpretare i comandi che gli giungono (da tastiera e/o point&click) e di attivare i programmi corrispondenti. Le operazioni che svolge sono: lettura dalla memoria di massa del programma da eseguire (tramite il gestore dei file); allocazione della memoria centrale (tramite il gestore della memoria); caricamento del programma e dei relativi dati nella memoria allocata (tramite il gestore della memoria); creazione e attivazione del processo corrispondente (tramite il nucleo). 17/12/13 Alessandro Di Nuovo Informa-ca e cultura dell’informazione – capitolo 3 – Il sistema opera-vo 24 24 Il gestore delle interfacce - Shell Interfaccia grafica (point & click) Interfaccia a caratteri Alessandro Di Nuovo 25 L’interprete dei comandi e l’interfaccia grafica L’interprete comandi e l’interfaccia grafica Costituiscono l’interfaccia verso l’utente Consentono l’interazione dell’utente con il s.o. e con i programmi applicativi in esecuzione Permettono di accedere ai programmi conservati su memoria di massa e mandarli in esecuzione allocando la memoria necessaria e creando il processo relativo Nel caso di un sistema multiutente forniscono ai diversi utenti la visione di una macchina virtuale dedicata Cultura tecnologica del progetto Alessandro Di Nuovo 26 26 Una possibile classificazione dei moderni S.O. • I moderni sistemi operativi possono essere classificati in: • Sistemi monotask: • Permettono l’esecuzione di un solo programma utente per volta (es. DOS) • Il computer a disposizione del programma dall’inizio alla fine della sua esecuzione • Coda dei job, gestita FIFO (first in, first out) e/o con priorità • Sistemi multitask • Permettono l’esecuzione di più programmi utente contemporaneamente • Classificazione ulteriore: • • Multitasking cooperativo (Windows 3.1, MacOS) Multitasking preemptive (Windows 95/98/NT, Unix) • Time sharing o meno Alessandro Di Nuovo 27 27 elaborazione attesa per operazioni di I/O Sistema uniprogrammato Tempo Progr. 1 Sistema multiprogramma to con time sharing Progr. 2 Progr. 3 Tempo elaborazione 17/12/13 Alessandro Di Nuovo Informa-ca e cultura dell’informazione – capitolo 3 – Il sistema opera-vo attesa per operazioni di I/O 28 28 Svantaggi dei sistemi monoprocessore mono-tasking Nessuna interazione utente-programma Lentezza: la CPU non può essere usata da nessun processo mentre il programma in esecuzione svolge operazioni di I/O (molto piu’ lente di letture/scritture in Memoria) Esempio: DOS è un SO monotasking; non si può fare niente altro mentre si formatta un floppy o si memorizzano dati su disco Alessandro Di Nuovo 29 29 Miglior sfruttamento del processore In un sistema uniprocessore è possibile commutare da un programma all’altro quando il programma in esecuzione è in attesa di operazioni di ingresso/uscita Presenza in memoria di diversi programmi consente commutazione più efficiente tempo di accesso alla memoria centrale molto inferiore rispetto alla memoria di massa Possibilità di gestione di più utenti senza degrado eccessivo delle prestazioni 17/12/13 Alessandro Di Nuovo Informa-ca e cultura dell’informazione – capitolo 3 – Il sistema opera-vo 30 30 Multitasking (time sharing) Ripartizione del tempo di CPU tra tutti i processi che la vogliono Ogni job rimane in esecuzione solo per un quanto di tempo, poi l’esecuzione passa al prossimo job e il primo va in attesa à Esecuzione globale più veloce Durata del quanto di tempo tra 100 e 200 millisecondi à granularità molto fine A ciascun utente sembra di avere la CPU tutta per lui, solo più lenta Cultura tecnologica del progetto Alessandro Di Nuovo 31 31 Stati di un processo Inizio esecuzio ne Selezione primo processo pronto e sua esecuzione Processo in esecuzione Processi pronti Termine quanto di tempo Richiesta di operazione di I/ O Processo Completamento operazione in attesa di I/O (evento esterno atteso) Alessandro Di Nuovo 32 32 Attesa Se il processo richiede operazioni ad altri dispositivi (es. Operazioni di I/O), la CPU rimarrebbe inutilizzata è lo scheduler mette il processo in stato di attesa, il dispatcher sceglie un nuovo processo tra i pronti dalla tabella, quando l’operazione sarà finita, lo scheduler dichiarerà di nuovo pronto il processo Permette un utilizzo molto più efficiente delle risorse di elaborazione Esempio: durante la digitazione di un documento di testo, l’utente compie molte pause per riflettere sul contenuto che sta scrivendo questo tempo è usato dal sistema per compiere altre operazioni in contemporanea (ad es. gestire la ricezione di e-mail) Alessandro Di Nuovo 33 33 Spesso la memoria centrale non ha dimensioni tali da contenere tutti i programmi che occorre eseguire in modo concorrente: l l manca spazio per attivare nuovi processi manca spazio per consentire l’evoluzione di qualche processo già in esecuzione Soluzione: trasferire il contenuto di un’area della memoria centrale in un’area della memoria di massa (area di swap) l l 17/12/13 OK per processi in attesa ~ OK per i processi pronti Alessandro Di Nuovo Informa-ca e cultura dell’informazione – capitolo 3 – Il sistema opera-vo 34 34 Il processo non si rende conto delle interruzioni: il nucleo maschera al processo come effettivamente la sua elaborazione evolve nel tempo; il nucleo rende trasparente la presenza delle operazioni di interruzione e di riassegnamento del processore a un processo. Contesto di un processo insieme dei dati che rappresentano lo “stato” del processo: situazione della memoria, contenuto dei registri, livello di priorità, … quando un processo viene interrotto (esce dallo stato di esecuzione) il nucleo provvede a salvare del suo contesto (in una struttura dati chiamata descrittore del processo); quando un processo torna nello stato di esecuzione il nucleo provvede a ripristinare il suo contesto (recuperando i dati precedentemente salvati nel descrittore). Cambio di contesto (context swapping) si verifica quando un processo (e.g. P1) in esecuzione viene sostituito da un altro processo P2 (il primo del processi pronti); il nucleo provvede a • salvare il contesto di P1 e gestirne l’evoluzione (pronto vs attesa); • ripristinare il contesto di P2 per consentirgli una corretta evoluzione. 17/12/13 Alessandro Di Nuovo Informa-ca e cultura dell’informazione – capitolo 3 – Il sistema opera-vo 35 35 Vantaggi dell’esecuzione concorrente di più processi: impiegare in maniera trasparente una o più CPU (sia inserite in un solo calcolatore che in più calcolatori, collegati in rete); aumentare l’utilizzo della CPU nei sistemi a partizione di tempo, ove si eseguono più lavori in quasi parallelismo; condividere la stessa risorsa fisica fra diversi utenti in modo del tutto trasparente ma controllato; accedere contemporaneamente, da parte di diversi utenti, a una base di dati comune e centralizzata; … Problemi starvation: un processo non riesce ad accedere ad una risorsa perché la trova sempre occupata da altri processi (che per esempio possono avere un livello di priorità maggiore); blocco critico: un insieme di processi rimane bloccato perché ciascuno di essi aspetta delle risorse che sono occupate da un altro processo compreso in questo stesso insieme (vincolo circolare). Evitare (prevenzione) o risolvere (eliminazione) situazioni di blocco critico o di starvation riduce le prestazioni complessive del sistema. 17/12/13 Alessandro Di Nuovo Informa-ca e cultura dell’informazione – capitolo 3 – Il sistema opera-vo 36 36 Introduzione al Deadlock Definizione: Un insieme di processi è in stallo se ogni processo dell’insieme è in attesa di un evento che solo un altro processo dell’insieme può causare Normalmente l’evento è l’accesso ad una risorsa occupata Nessun processo può Andare in esecuzione Rilasciare la risorsa Essere sbloccato Alessandro Di Nuovo 37 37 Condizioni per il Deadlock • Condizione di mutua esclusione Ogni risorsa è assegnata ad un processo o è disponibile • Condizione di “Hold and wait” I processi che detengono risorse possono chiederne altre • Condizione di assenza di prerilascio Le risorse assegnate non possono essere tolte forzatamente ad un processo • Condizione di attesa circolare Deve esistere una catena circolare di due o più processi ognuno dei quali è in attesa di una risorsa occupata dal prossimo processo della catena Alessandro Di Nuovo 38 38 Algoritmo dello struzzo • Fare finta che il problema non esiste • È ragionevole se • Il deadlock è un evento raro • Il costo della sua prevenzione è alto • UNIX e Windows hanno tale approccio • La valutazione da fare è rispetto a • convenienza • correttezza Alessandro Di Nuovo 39 39 Sistemi mono e multiprocessore Time sharing in sistemi mono-processore: multi-tasking (più programmi in esecuzione con una sola CPU) Sistemi multiprocessore: le varie CPU possono lavorare contemporaneamente su job diversi ciascuna CPU opera in multi-tasking Alessandro Di Nuovo 40 40 Bootstrap: avvio del SO All’inizio, la CPU ha in indirizzo fissato nel registro contatore di programma, che punta all’indirizzo nella ROM (Read Only Memory) ove inizia il programma di bootstrap che è sempre memorizzato lì L’esecuzione del programma di bootsrap trasferisce il kernel del Sistema Operativo da una parte prestabilita della memoria di massa (hard-disk, floppy-disk, CD-Rom,…) in memoria principale Quindi l’esecuzione prosegue con un salto all’area di memoria principale contenente il Sistema Operativo (che quindi viene mandato in esecuzione) Tra le prime operazione del kernel del Sistema Operativo vi sono tipicamente quelle di caricamento di altri componenti software: driver delle periferiche installate programmi di sistema lanciati automaticamente all’avvio Alessandro Di Nuovo 41 41 Bootstrap Alessandro Di Nuovo 42 42 MS-DOS Sviluppato dalla Microsoft nel 1981 per il PC IBM Adottato da altri con PC IBM-compatibili Molto limitato: mono-utente, mono-tasking Circa 50 comandi per il SO: DIR per vedere il contenuto di una directory COPY per copiare file DEL per cancellare un file REN per cambiare il nome a un file CD per muoversi in un altra directory MD per creare nuove directory RD per cancellare directory Nome file: per eseguire il file (se eseguibile) … Cultura tecnologica del progetto Alessandro Di Nuovo 43 43 MS Windows – Elementi principali Interfaccia grafica Mouse che sposta un cursore Cut & paste (copia e incolla) Drag & drop (trascina e lascia) Icone associate a file, directory, dischi, … Directory come cartelle Pulsanti Finestre: cornici con strumenti Menu di comandi Alessandro Di Nuovo 44 44 Breve storia di windows 1/2 Nel 1980 la Microsoft era una piccola società con 40 dipendenti, che fatturava 8 milioni di dollari. Bill Gates venne contattato dall'IBM, che in quel periodo dominava il mercato degli elaboratori mainframe ed aveva appena iniziato la realizzazione di un personal computer, per scrivere un nuovo sistema operativo. Nasce così l'MS DOS ed esplode il boom del computer per tutti. Due anni dopo Bill Gates annuncia la nascita di una prima versione di Windows (1982). Non è un sistema operativo, ma una semplice interfaccia grafica attaccata al DOS molto rozza. Gli utenti cominciano a prendere confidenza con questa nuova dimensione. A maggio, nel 1990, viene lanciato Windows 3.0 e un anno dopo esce Windows 3.1. Nel '94 il fatturato è di 4,65 miliardi di dollari. Nel '95 viene lanciato Windows 95 e i dollari salgono a quasi 6 miliardi. Internet Explorer comincia ad insidiare la posizione di leader tra i browser di Netscape. Infine nel '98 esce la nuova versione di Windows (Windows 98) e nel frattempo la crescita del sistema operativo di rete, Windows NT, si consolida fino a creare serie minacce a ben più blasonati sistemi. Cultura tecnologica del progetto Alessandro Di Nuovo 45 45 Breve storia di windows 2/2 Il successore di windows NT è Windows 2000. Windows 2000 compare in due versioni: la Professional e la Server. La prima è la soluzione ideale per applicazioni desktop mentre la seconda per la gestione e l’amministrazioni di reti, domini, ecc. Con il nuovo millennio si registra l’uscita del nuovo Windows Millennium Edition (ME), praticamente un Windows 98 SE rivisto nella grafica, potenziato a livello di funzioni multimediali e nel quale fa la sua definitiva scomparsa il buon vecchio DOS. Alla fine del 2002 viene presentato Windows XP nelle versioni Home, Professional e Server. La prima prenderà il posto di Windows ME mentre le altre due sostituiranno le analoghe versioni di Windows 2000. Windows XP presenta un’interfaccia completamente ridisegnata, un ottimo supporto alle periferiche attualmente sul mercato e una grande supporto ai prodotti multimediali non ultimi i videogame grazie all’integrazione diretta delle DirectX. Windows XP è presente sul mercato anche nella versione a 64 bit per processori Alpha. Nel 2006 è stata rilasciato Windows Vista. Tra le principali novità: pieno supporto dei processori a 64 bit (funziona però anche a 32 bit); nuovo motore per l’interfaccia grafica; funzionalità avanzate di ricerca dei documenti archiviati; maggiore protezione rispetto agli attacchi informatici. Cultura tecnologica del progetto Alessandro Di Nuovo 46 46 Unix Sistema Operativo: multi-utente, multi-tasking, con time-sharing Nato negli anni ’60 con un progetto congiunto AT&T e MIT Concepito per poter funzionare su diverse piattaforme hardware con adattamenti limitati Interprete dei comandi: shell testuale più di 300 comandi, con opzioni Disponibilità di interfaccia grafica (finestre, mouse, etc.) messa a disposizione da un insieme di moduli separati (sistema X Window) Cultura tecnologica del progetto Alessandro Di Nuovo 47 47 Linux Linux è una delle molte varianti di Unix con la peculiarità di essere open source (= il cui codice sorgente è liberamente disponibile) La sua nascita è dovuta in parte alle restrizioni imposte da AT&T all’uso di del codice sorgente di UNIX per la didattica: hanno indotto Andy Tanenbaum allo sviluppo di MINIX, un implementazione di UNIX per scopi didattici MINIX ha ispirato Linus Torvalds a realizzare una propria implementazione del kernel UNIX Il kernel sviluppato da Linus è stato combinato con una suite di programmi UNIX, sviluppati nell’ambito del progetto GNU (iniziativa che ha originato il movimento open source), per formare la prima distribuzione di Linux e renderla disponibile su Internet come software open source Oggi esistono innumerevoli distribuzioni di Linux, distinte per diverse combinazioni di kernel, interfacce grafiche (le più note sono Gnome e KDE) e programmi di utilità. Alessandro Di Nuovo 48 48 Linux Gnome à ß KDE Alessandro Di Nuovo 49 49 BSD BSD è un’altra versione open source del sistema operativo Unix, in questo caso nata alla University of California, Berkeley (USA) Ritenuto più stabile di Linux (anche grazie ad un gruppo di sviluppo più ristretto, quindi più controllabile) ma il numero di applicazioni disponibili è più ristretto (principalmente applicazioni per i server) Oggi esistono 4 distribuzioni principali di BSD: 3 distribuzioni free: FreeBSD, OpenBSD, NetBSD 1 distribuzione a pagamento, all’interno del Sistema Operativo Apple MAC OS-X 50 50 Alessandro Di Nuovo MAC OS-X Architettura MAC OS-X Applicazioni • MAC OS-X è l’ultima generazione di S.O. per i personal computer prodotti da Apple • Abbandonato il precedente sistema operativo Apple ha costruito la nuova generazione del proprio S.O. a partire da una variante di BSD, chiamata Darwin, che rimane open source • A questo nucleo, Apple ha aggiunto componenti proprietari, dall’interfaccia grafica (Aqua) ad una suite di applicazioni e utilities. GUI à Kernel, gestori di risorse e servizi di base Alessandro Di Nuovo 51 51