La filosofia di LINUX (1/2) - SisInfLab
Transcript
La filosofia di LINUX (1/2) - SisInfLab
Corso di Sistemi Operativi DEE - Politecnico di Bari LINUX - Introduzione 1 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Cos’è LINUX? E' il kernel del S.O. GNU/Linux Sviluppato a partire dal kernel creato da Linus Torvalds nel 1991 Fornisce un'iterfaccia tra hardware e programmi-utente (alternativa a Windows, Mac OS, MS-DOS, Solaris, …) Si tratta di un clone di UNIX Un po' di storia All’epoca Torvalds era studente all’università di Helsinki Linux è ispirato a Minix, S.O. UNIX-like sviluppato da Andrew Tanenbaum Nasce dall'idea di sviluppare un S.O. che tenga conto del feedback degli utenti 2 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Free software & Open source Richard Stallman: GNU (GNU's Not Unix) Project Un programma è software libero se gli utenti del programma godono delle quattro libertà fondamentali: 1. Libertà di eseguire il programma, per qualsiasi scopo. 2. Libertà di studiare come funziona il programma e di modificarlo in modo da adattarlo alle proprie necessità. L'accesso al codice sorgente ne è un prerequisito. 3. Libertà di ridistribuire copie in modo da aiutare il prossimo. 4. Libertà di migliorare il programma e distribuirne pubblicamente i miglioramenti apportati, in modo tale che tutta la comunità ne tragga beneficio. L'accesso al codice sorgente ne è un prerequisito. 3 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari L'incontro Linus Torvalds: “Sadly, a kernel by itself gets you nowhere. To get a working system you need a shell, compilers, a library etc.” Richard Stallman: “The GNU Hurd is not ready for production use. Fortunately, another kernel is available. [It is called] Linux.. So combining the necessary programs provided by GNU in Cambridge, Massachusetts and a kernel, developed by Linus Torvalds in Helsinki, Finland, Linux was born. Due to the physical distances involved […] Linux is an operating system that came to life on the Internet. The Internet would also be crucial in Linux's subsequent development as the means of coordinating the work of all the developers that have made Linux into what it is today.” 4 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari L'evoluzione Nasce come “costola” di UNIX liberamente distribuibile Inizialmente fu accessibile solo per gli “addetti ai lavori” (Anni '90) Sono stati sviluppati programmi e driver specifici Nascono compagnie, come la Red Hat, che portano Linux al livello di qualsiasi altro S.O. user-friendly Stabile e versatile Può essere installato su home PC e server di rete Maggiore affidabilità, minor costo Torvalds oggi lavora alla manutenzione del “suo” kernel Attualmente migliaia di sviluppatori lavorano al progetto Oltre 20 milioni di utenti LINUX nel mondo Ad oggi, è il S.O. che cresce più velocemente (numeri di versione) 5 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Free distribution → Sviluppo di numerose versioni Come orientarsi? Distribuzione: versione del S.O. pubblicamente disponibile per l'uso. Soddisfa particolari esigenze (O.S. per desktop PC, web server, gps device, smart phone, firewall, piattaforme Windows e Macintosh, etc.) Si tratta del pacchetto completo comprendente: 1. LINUX (vale a dire il nucleo) 2. Applicativi E’ sviluppata da una comunità indipendente dalle altre 6 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari La potenza della “community” Migliaia di sviluppatori lavorano giornalmente al progetto 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 Documentation Project 7 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari I numeri di versione (1/2) Sono due, diversi e riferiti a: 1. Distribuzione 2. Kernel Versioning differente per distribuzione e kernel: E’ più recente Red Hat 5.2 o SuSE 6.0? E’ più recente LINUX 2.4 o 2.6? Punti fermi Una nuova distribuzione usa sempre il kernel più recente Tutti gli applicativi hanno un proprio numero di versione 8 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari I numeri di versione (2/2) Il kernel è l’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 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 8 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Distribuzioni desktop più diffuse Fedora (http://www.linux.org/article/view/distro-fedora) Ubuntu (http://www.linux.org/article/view/distro-ubuntu) Linux Mint (http://www.linux.org/article/view/distro-mint) Distribuzioni server più diffuse Red Hat Debian OpenSUSE Slackware CentOS 10 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Il copyright (1/2) LINUX è coperto da una GNU General Public License La GPL stabilisce le norme per l'uso, 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 11 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Il copyright (2/2) 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 12 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Installazione Dual boot: Partizione Virtual machine WUBI (Windows-based Ubuntu Installer) Live cd: Avvio del S.O. da cd Consente di provare differenti distribuzioni http://www.ubuntu.com/download/desktop 13 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Caratteristiche del sistema Le funzionalità Il kernel Programmi di servizio Elaboratori di testi e videoscrittura Applicativi commerciali Supporto alla programmazione X Window Filosofia progettuale 14 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Funzionalità di base Scheduling dei processi Gestione della memoria virtuale Gestione dei file Gestione dell’input/output Funzionalità avanzate Editing e compilazione Giochi, grafica e multimedialità Supporto al networking 15 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Le funzionalità di base (1/4) Multiuser: più utenti possono interagire contemporaneamente (da terminali diversi) con il sistema senza interferenze. Ogni utente è individuato univocamente da un nome logico (username). Gli utenti sono suddivisi in gruppi, individuabili univocamente mediante groupname. L'utente root, amministratore di sistema, non ha alcuna limitazione nell'accesso alle risorse del sistema stesso. 16 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Le funzionalità di base (2/4) Multitasking: il suo nucleo può supportare la contemporanea esecuzione di più processi gestiti a divisione di tempo. Compatibilità con molte architetture di CPU 1. Intel x86 e Pentium 2. Sparc, Alpha, PowerPC 3. Multiprocessing (fino a 16 processori paralleli) 17 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Le funzionalità di base (3/4) Compatibilità con i file system: 1. ISO 9660 (CD- ROM) 2. MS-DOS e Windows 3. OS/2, Apple, Amiga 18 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Le funzionalità di base (4/4) Compatibile con la maggioranza degli standard UNIX Controllo diretto dei job in esecuzione Console virtuale (modalità testuale) Coesistenza con altri S.O. Portabile (linguaggio C) Grande attenzione al networking (integrazione di sistema) 1. Driver per TCP/IP (client e servizi per FTP, Telnet, SMTP, HTTP) 2. Driver per PPP 3. Driver per SLIP e PLIP 19 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Applicazioni 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 20 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Il kernel 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 21 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Programmi di servizio (1/2) 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 22 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Programmi di servizio (2/2) 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) 23 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Elaboratori di testo e videoscrittura (1/2) 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 24 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari 25 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Elaboratori di testo e videoscrittura (2/2) 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 26 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Applicativi commerciali (1/2) Attenzione crescente delle software house verso LINUX Sun Microsystem Inc. ha prodotto OpenOffice 1. Videoscrittura (Writer) 2. Foglio Elettronico (Calc) 3. Database (Base) 4. Editor scientifico (Math) 5. Presentation Manager (Impress) disponibile gratuitamente e in grado di leggere i formati più diffusi Corel produce versioni LINUX di WordPerfect 27 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Applicativi commerciali (2/2) 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 28 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Supporto alla programmazione (1/2) 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 29 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari Supporto alla programmazione (2/2) 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 30 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari X Window (1/3) 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 di documentazione 2. Tool per la grafica e la multimedialità 3. Strumenti per la programmazione 31 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari X Window (2/3) 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 32 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari X Window (3/3) Tutte le distribuzioni usano X Window creato da XFree86 1. Basato su X11R6 (X11 release 6) 2. E’ nella directory usr/X11R6 Deve essere configurato 1. Mediante un file testuale (xf86Config) 2. Mediante un programma a menu (XConfigurator) E’ stratificato e modulare 1. X Server 2. Window Manager 3. Desktop Manager (KDE, Gnome) 33 di 35 LINUX – Graphical User Interface G. Piscitelli - M. Ruta Corso di Sistemi Operativi DEE - Politecnico di Bari La filosofia di LINUX (1/2) 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 34 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini Corso di Sistemi Operativi DEE - Politecnico di Bari La filosofia di LINUX (2/2) 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 L. Torvalds di includere la modifica nel kernel Il debugging avviene in poche ore E’ uno dei più efficienti sforzi di sviluppo mai intrapresi 35 di 35 LINUX - Introduzione G. Piscitelli - M. Ruta - S. Giannini