Cenni sui sistemi operativi il sistema operativo è una sorta di strato che si pone sopra la macchina fisica e permette di fare richieste ad una macchina astratta ma che l’utente crede vera. il compito del sistema operativo, oltre a quello di controllare l’esecuzione degli altri programmi, consiste nell’impedire alle applicazioni di eseguire dei comandi che potrebbero rivelarsi dannosi App 1 App 2 ... Sistema Operativo Hardware App n Files e filesystem • Un file è una collezione di dati con un nome. • Un file è una sequenza di byte terminata da un carattere di EOF (End Of File) • Il filesystem è l’insieme dei files, della loro organizzazione in directory e dei metodi di gestione e di accesso. • I files risiedono nella memoria secondaria (dischi) • Esistono comandi per creare, distruggere, aprire, chiudere, leggere, scrivere files. • In un sistema multiutente è necessario proteggere i files, dunque ci possono essere più livelli di protezione per diverse tipologie di utenti. Files e filesystem I dispositivi di archiviazione, ad esempio i dischi fissi, si presentano al sistema operativo come array di blocchi di dimensione fissa, generalmente chiamati settori, tipicamente di 512 byte l'uno. Le operazioni disponibili sono la lettura e la scrittura di un blocco arbitrario, o talvolta di un insieme di blocchi. Il software di gestione del file system è responsabile dell'organizzazione di questi settori in file e di tenere traccia di quali settori appartengono a quali file e quali settori invece non sono utilizzati. I file system tipicamente hanno tabelle di associazione dei nomi dei file con i rispettivi file tramite collegamenti fisici, usualmente collegando il nome del file a un indice in una tabella di allocazione dei file (file allocation table) di qualche genere, come la FAT di un file system MS-DOS, o un inode in un file system di tipo Unix. Software libero Free software is a matter of liberty, not price. To understand the concept, you should think of free as in free speech, not as in free beer. (Richard Stallman) Software libero La parola libero non implica la possibilità di utilizzare tale software in maniera indiscriminata: il software libero è comunque soggetto ad una licenza d'uso. Esso si contrappone quindi al software proprietario ed è differente dalla concezione open source, incentrandosi sulla libertà dell'utente e non solo sull'apertura del codice sorgente, che è comunque un prerequisito del software libero. Open source Con questo termine si intende un software i cui autori , o meglio: i detentori dei diritti, ne permettono e favoriscono il libero studio e l'apporto di modifiche da parte di altri programmatori indipendenti grazie ad apposite licenze d'uso (p.e. GPL [GNU Public License]). Il fenomeno ha tratto grande beneficio da Internet, perché esso permette a programmatori geograficamente distanti di coordinarsi e lavorare allo stesso progetto. Software libero vs Open source Le quattro libertà offerte dal free software: 1. Libertà di usare il programma senza impedimenti; 2. Libertà di aiutare se stesso studiando il codice disponibile e modificandolo in base alle proprie esigenze; 3. Libertà di aiutare il tuo vicino, cioè la possibilità di distribuire copie del software rielaborato, rendendolo così accessibile a tutti; 4. Libertà di pubblicare una versione modificata del software. Principi base dell'open source: 1. Libertà di redistribuzione (sta poi al singolo decidere se farlo gratuitamente o se far pagare il prodotto); 2. Libertà di consultare il codice sorgente; 3. Necessità di approvazione per i prodotti derivati; 4. Integrità del codice sorgente dell'autore; 5. Nessuna discriminazione verso singoli o gruppi di persone; 6. Nessuna discriminazione verso i settori di applicazione; 7. La licenza deve essere distribuibile; 8. La licenza non può essere specifica per un prodotto; 9. La licenza non può contaminare altri software; 10. La licenza deve essere tecnologicamente neutrale. Software libero vs Open source L’accento nel primo caso è sul concetto di libertà, anche da fattori economici; Nel secondo caso si ammette la possibilità di trarre guadagno da ciò che si è realizzato, purché alle condizioni prima elencate. Software libero Direttiva 19 Dicembre 2003 (c.d. «Direttiva Stanca», in particolare gli art. 3, 4 e 7), Sviluppo ed utilizzazione dei programmi informatici da parte delle pubbliche amministrazioni. Prevede in particolare le seguenti azioni: 1. analisi comparativa delle soluzioni. La direttiva dispone che le Pubbliche Amministrazioni acquisiscano programmi informatici sulla base di una valutazione comparativa tecnica ed economica tra le diverse soluzioni disponibili sul mercato, tenendo conto della rispondenza alle proprie esigenze. 2. Criteri tecnici di comparazione. Le Pubbliche Amministrazioni nell'acquisto dei programmi informatici devono privilegiare le soluzioni che assicurino l'interoperabilità e la cooperazione applicativa tra i diversi sistemi informatici della Pubblica Amministrazione, salvo che ricorrano peculiari ed eccezionali esigenze di sicurezza e di segreto. 3. Rendere i sistemi informatici non dipendenti da un unico fornitore o da un'unica tecnologia proprietaria. 4. Garantire la disponibilità del codice sorgente per l'ispezione e la tracciabilità da parte delle Pubbliche Amministrazioni. 5. Esportare dati e documenti in più formati, di cui almeno uno di tipo aperto. Windows, Linux, OSX • GUI: • Windows: fissa, obbligatoria ed unica (fa eccezione Windows 2012 Server); • Linux: opzionale ed a scelta in (Gnome, KDE, Unity, XFCE, LXDE, ...); • OSX: Fissa, obbligatoria ed unica. • Struttura del filesystem (ad albero per tutti ma in Windows c’è la possibilità che il carico sia sbilanciato): • Windows: ogni filesystem identificato da una lettera di unità; • Linux/OSX: ogni filesystem identificato da un percorso (es: C:\ vs /dev/sda1). • Altre caratteristiche: • Windows: multiprocessore, mono-piattaforma (o quasi), mono-utente, poco scalabile (diversi tipi di OS per diverse situazioni); • Linux: multiprocessore, multipiattaforma, multiutente, scalabile (la stessa versione di Linux può girare su un pc domestico come su un server o un firewall); • OSX: multiprocessore, multipiattaforma, multiutente, non scalabile. Windows, Linux, OSX • Stabilità: • Windows: non eccezionale – per via anche della struttura del filesystem e del registro (v.); • Linux/OSX: buona, specie per kernel collaudati; • Modularità e possibilità di personalizzazione: • Windows/OSX: quasi nulle; • Linux: buon livello di modularità e grandi possibilità di personalizzazione. • Costi: • Windows: a pagamento, sia OS, sia la maggior parte dei software; • Linux: OS e sw gratuiti e liberi (v. sopra) nella stragrande maggioranza dei casi; • OSX: OS e sw a pagamento con costi elevati (anche a causa dell’hardware).