Diapositiva 1
Transcript
Diapositiva 1
Corso di Sistemi Operativi DEE - Politecnico di Bari LINUX - Introduzione 1 di 26 LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Cos’è LINUX? Si tratta di un clone di UNIX Più precisamente è il kernel del S.O. Funzionalità di base Scheduling dei processi Gestione della memoria virtuale Gestione dei file Gestione dell’input/output Funzionalità avanzate 2 di 26 Editing e compilazione Giochi, grafica e multimedialità Supporto al networking LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Applicazioni 3 di 26 Difficile fare classificazioni a valore generale Gestione DataBase aziendali Università (didattica e ricerca) Server 1. Web server (Apache) 2. File e printer Server (Samba) 3. Sistemi multiprocessore 4. Cluster Workstation LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Un po’ di storia Suo padre è Linus Torvalds che lo concepisce nel 1991 All’epoca Torvalds era studente all’università di Helsinki Nasce come “costola” di UNIX liberamente distribuibile Torvalds oggi lavora alla manutenzione del “suo” kernel La prima versione è stata diffusa via Internet Attualmente migliaia di sviluppatori lavorano al progetto Circa 20 milioni di utenti LINUX nel mondo Curiosità 4 di 26 E’ ispirato a MINIX di A. Tanenbaum Era un tema d’anno neanche troppo promettente (!?) LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari La potenza della “community” 5 di 26 Gli hacker del kernel hanno adottato LINUX per primi Migliaia di sviluppatori lavorano giornalmente al progetto Come avere un help on line sempre a disposizione Supporto per la maggior parte dell’hardware Traduzione degli applicativi più comuni in pacchetti LINUX La filosofia dell’open source applicata alla realtà LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Caratteristiche del sistema 6 di 26 Nota sui numeri di versione Le funzionalità Il kernel Programmi di servizio Elaboratori di testi e videoscrittura Applicativi commerciali Supporto alla programmazione X Window Il copyright Filosofia progettuale LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari I numeri di versione (1/2) Sono due, diversi e riferiti a: 1. Distribuzione 2. Kernel Cos’è una distribuzione Si tratta del pacchetto completo comprendente: 1. LINUX (vale a dire il nucleo) 2. Applicativi E’ sviluppata da una comunità indipendente dalle altre Cos’è un kernel 7 di 26 Si tratta dell’insieme delle routine di basso livello del S.O. E’ dipendente in maniera lasca dalla distribuzione Ogni sua modifica viene autorizzata da Torvalds in persona LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi Mappa delle distribuzioni DEE - Politecnico di Bari 8 di 26 LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari I numeri di versione (2/2) Versioning differente per kernel e distribuzione E’ più recente Red Hat 5.2 o SuSE 6.0? E’ più recente LINUX 2.4 o 2.6? Numerazione del nucleo Due o tre valori interi separati da un punto Una release stabile è identificata dall’ultimo numero pari Una release di sviluppo è identificata dall’ultimo numero dispari Il terzo valore si chiama patch level Punti fermi 9 di 26 Una nuova distribuzione usa sempre il kernel più recente Tutti gli applicativi hanno un proprio numero di versione La compilazione dei pacchetti è molto flessibile LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Le funzionalità (1/2) 10 di 26 Multitasking e multiuser Multiprocessing (fino a 16 processori paralleli) Compatibilità con molte architetture di CPU 1. Intel x86 e Pentium 2. Sparc, Alpha, PowerPC Compatibilità con i file system: 1. ISO 9660 (CD- ROM) 2. MS-DOS e Windows 3. OS/2, Apple, Amiga LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Le funzionalità (2/2) 11 di 26 Compatibile con la maggioranza degli standard UNIX Controllo diretto dei job in esecuzione Console virtuale (modalità testuale) Coesistenza con altri S.O. Grande attenzione al networking 1. Driver per TCP/IP (client e servizi per FTP, Telnet, SMTP, HTTP) 2. Driver per PPP 3. Driver per SLIP e PLIP LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Il kernel 12 di 26 E’ il codice che controlla l’interfaccia tra applicativi e HW E’ monolitico (un unico modulo che serve le richieste) Supporto ai driver caricabili e scaricabili dalla memoria Emulazione della Floating Point Unit (FPU) Supporto alla virtualizzazione della memoria Utilizzo ottimizzato delle funzioni di libreria: 1. Gli eseguibili adoperano librerie condivise a linking dinamico 2. Gli eseguibili sono più compatti 3. Ottimizzazione dell’uso della memoria LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Programmi di servizio (1/2) 13 di 26 Traduzione per LINUX di tutte le utility UNIX Possibilità di replicare un certo ambiente operativo 1. Java Development Kit (JDK) 2. Perl Editor di testo 1. vi e vim 2. Emacs e joe Utility di compressione dati 1. tar, gzip e bzip2 LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Programmi di servizio (2/2) 14 di 26 SHELL 1. E’ il più importante programma di servizio 2. Interprete dei comandi utente 3. Job control 4. Cronologia dei comandi immessi 5. Funzione di completamento automatico 6. Ridirezione dell’input e dell’output 7. Utilizzo di script in linguaggio di shell 8. Esistono varie shell che differiscono per la sintassi dei comandi 9. La più diffusa è Bourne Again SHell (BASH) LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Elaboratori di testo e videoscrittura (1/2) 15 di 26 Differenza tra elaboratori di testo e videoscrittura Elaboratori di testo 1. Si introduce il testo in un linguaggio di formattazione che ne descrive l’aspetto 2. Un esempio di linguaggio di formattazione è HTML 3. La formattazione avviene mediante un programma distinto che converte i codici 4. Analogia con editing e compilazione 5. I più famosi sono TEX e il suo dialetto LATEX 6. Maggiore portabilità dei documenti 7. Riferimenti aggiornati automaticamente LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Elaboratori di testo e videoscrittura (2/2) 16 di 26 Videoscrittura (WYSIWYG) 1. Interfaccia visuale 2. Editing di espressioni complesse (formule matematiche) 3. Interfaccia grafica per disegnare figure e schemi 4. Lettura e scrittura di e-mail e news 5. Correttore ortografico interattivo 6. Generatore automatico di indici per documenti 7. Tool per la progettazione di font LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Applicativi commerciali (1/2) 17 di 26 Attenzione crescente delle software house verso LINUX Star Division ha prodotto Star Office 1. Videoscrittura 2. Foglio Elettronico 3. Editor HTML 4. Presentation Manager 5. Disponibile gratuitamente 6. In grado di leggere i formati più diffusi Corel produce versioni LINUX di WordPerfect LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Applicativi commerciali (2/2) 18 di 26 Caldera produce NetWare per LINUX. Esso consente di: 1. Fornire servizi di file server 2. Fornire servizi di print server 3. Condividere dati 4. Mantenere la compatibilità con client NetWare per Windows, DOS, UNIX e Macintosh Oracle e Informix hanno versioni LINUX dei loro DBMS IBM produce una beta version di DB2 per LINUX LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Supporto alla programmazione (1/2) 19 di 26 LINUX possiede strumenti di programmazione completi 1. Librerie standard 2. Compilatori 3. Debugger C o C++ sono gli ambienti normalmente supportati 1. gcc è il compilatore C/C++ per LINUX 2. Vengono offerte funzionalità moderne e avanzate Supporto completo per Java e JDK 1. Applet e servlet 2. Connettività a Database 3. Sistemi distribuiti IP based 4. Portabilità avanzata grazie a JVM LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Supporto alla programmazione (2/2) 20 di 26 Esistono traduzioni per LINUX di molti compilatori 1. SmallTalk 2. Pascal 3. Fortran 4. Lisp Vari assembler per scrivere codice macchina Linguaggi per scrivere script (Perl) Tool di profiling 1. Statistiche di funzionamento 2. Prestazioni del software Possibilità di accedere ai sorgenti e manipolare il kernel Possibilità di creare applicazioni per sistemi UNIX LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari X Window (1/2) 21 di 26 Si tratta dell’interfaccia grafica per macchine UNIX Ha una elevata configurabilità Si basa sull’utilizzo di dispositivi di puntamento generici E’ distribuita gratuitamente Il pacchetto X Window contiene molti applicativi 1. Giochi e software i documentazione 2. Tool per la grafica e la multimedialità 3. Strumenti per la programmazione LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari X Window (2/2) 22 di 26 E’ presente anche un emulatore di terminale L’aspetto grafico è controllato dal windows manager Sono disponibili tutti i sorgenti Esistono molti applicativi freeware in rete Supporta quasi tutti gli hardware video 1. Schede grafiche 2. Adattatori e acceleratori grafici 3. Monitor LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Il copyright (1/2) 23 di 26 LINUX è coperto da una General Public License La GPL stabilisce le norme per la diffusione e la modifica LINUX è freeware open source 1. NON è detto che sia gratuito 2. I sorgenti sono liberamente modificabili 3. Non esistono limitazioni ai diritti di distribuzione Un software free non è di pubblico dominio 1. Rimane la proprietà degli autori 2. Gli autori sono protetti dalle leggi sul copyright LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari Il copyright (2/2) 24 di 26 LINUX è freeware ma non shareware 1. Non è previsto invio di denaro per la diffusione 2. Si dispone da subito di una versione full La licenza GPL si estende ai sorgenti modificati 1. Non è possibile introdurre licenze più restrittive 2. La diffusione può essere gratuita o a pagamento La GPL pone ampi margini di scelta alle aziende venditrici La GPL impone la diffusione dei sorgenti Obiettivi della GPL 1. Incrementare la qualità del software 2. Non trarre profitto LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari La filosofia di LINUX (1/2) 25 di 26 Migliorare la qualità del software Elevare le garanzie di controllo 1. Incrementare il numero di revisioni 2. Disporre di documentazione e reportistica avanzata Rapida scoperta e soluzione dei bug Un sistema operativo per hacker. Cioè per: 1. Programmatori appassionati 2. Utilizzatori interessati al miglioramento continuo delle prestazioni La community LINUX comunica per lo più via mailing list Linus Torvalds mantiene un ruolo determinante LINUX - Introduzione G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari La filosofia di LINUX (2/2) 26 di 26 Per aggiungere o modificare funzionalità occorre 1. Rendere disponibile una versione alfa 2. Inviare un messaggio ad una delle mailing list degli sviluppatori 3. Rispondere ai commenti o alle domande 4. Passare alla fase beta del codice 5. Passare alla versione definitiva 6. Chiedere a Linus di includere la modifica nel kernel Il debugging avviene in poche ore E’ uno dei più efficienti sforzi di sviluppo mai intrapresi LINUX - Introduzione G. Piscitelli - M. Ruta