Linux - SisInfLab
Transcript
Linux - SisInfLab
Fondamenti di Sistemi Operativi DEI - Politecnico di Bari Linux Linux - Introduzione La Shell Bash Testi di riferimento: Linux e la shell Bash: http://sisinflab.poliba.it/ruta/linux/Linux e la shell Bash.pdf Di Matt Welsh, Matthias Kalle Dalheimer, Lar Kaufman “Linux. La guida” Apogeo A.A. 2013-2014 1 Fondamenti di Sistemi Operativi Cos’è Linux DEI - Politecnico di Bari Illustrazione tratta da Advanced Programming in the UNIX Environment: Second Edition G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 2 Fondamenti di Sistemi Operativi Cos’è Linux DEI - Politecnico di Bari Cos’è LINUX? • Si tratta di un clone di UNIX • Più precisamente è il kernel del S.O GNU/Linux • Fornisce un'interfaccia tra hardware e programmi-utente (alternativa a Windows, Mac OS, MS-DOS, Solaris, …) • 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 • Stabile e versatile • Può essere installato su home PC e server di rete • Maggiore affidabilità, minor costo G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 3 Fondamenti di Sistemi Operativi Un po’ di storia DEI - Politecnico di Bari L’evoluzione • UNIX sviluppato nei laboratori AT&T Bell da Ken Thompson • Linux sviluppato a partire dal kernel creato da Linus Torvalds (studente all’università di Helsinki) nel 1991 • 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 • Torvalds oggi lavora per la 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) G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 4 Fondamenti di Sistemi Operativi Free software & Open source 1/3 DEI - Politecnico di Bari Richard Stallman: GNU (GNU's Not Unix) Project • È uno dei principali esponenti del software libero • Fu il pioniere del concetto di copyleft • autore di molte licenze copyleft compresa la GPL (GNU Public Licence), la licenza per software libero attualmente più diffusa. • Primi software realizzati: Emacs è un editor di testo libero; GCC (GNU Compiler Collection) è un compilatore multi-target; GDB (GNU debugger) è il debugger predefinito del sistema operativo GNU; • Nel 1990 inizia lo sviluppo di un kernel chiamato GNU Hurd, che tutt'oggi è ancora insufficientemente stabile. G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 5 Fondamenti di Sistemi Operativi Free software & Open source 2/3 DEI - Politecnico di Bari • Free Software: codice sorgente + eseguibile è distribuito gratuitamente • Open source: codice sorgente + eseguibile è venduto • Software proprietario: eseguibile G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 6 Fondamenti di Sistemi Operativi Free software & Open source 3/3 DEI - Politecnico di Bari • 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 di modificarlo in modo da adattarlo alle proprie necessità. 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 è un prerequisito per i punti 2. e 4. G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 7 Fondamenti di Sistemi Operativi La community DEI - 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à • The Linux Documentation Project (http://www.tldp.org/) G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 8 Fondamenti di Sistemi Operativi Caratteristiche del sistema DEI - Politecnico di Bari • Il copyright • Le funzionalità • Nota sui numeri di versione • Il kernel • Programmi di servizio • Elaboratori di testo e videoscrittura • Applicativi commerciali • Supporto alla programmazione • X Window • Filosofia progettuale G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 9 Fondamenti di Sistemi Operativi Il Copyright 1/2 DEI - Politecnico di Bari • LINUX è coperto da una General Public License • La GPL stabilisce le norme per la diffusione e la modifica • LINUX è freeware open source • NON è detto che sia gratuito I sorgenti sono liberamente modificabili Non esistono limitazioni ai diritti di distribuzione Un software free non è di pubblico dominio Rimane la proprietà degli autori Gli autori sono protetti dalle leggi sul copyright G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 10 Fondamenti di Sistemi Operativi Il Copyright 2/2 DEI - Politecnico di Bari • LINUX è freeware ma non shareware Non è previsto invio di denaro per la diffusione Si dispone da subito di una versione full • La licenza GPL si estende ai sorgenti modificati Non è possibile introdurre licenze più restrittive 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 Incrementare la qualità del software Non trarre profitto G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 11 Fondamenti di Sistemi Operativi Funzionalità 1/4 DEI - Politecnico di Bari Funzionalità di base • Scheduling dei processi • Gestione della memoria virtuale • Gestione dei file • Gestione dell’input/output Funzionalità avanzate Funzionalità • Editing e compilazione • Giochi, grafica e multimedialità • Supporto al networking G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 12 Fondamenti di Sistemi Operativi Funzionalità 2/4 DEI - Politecnico di Bari 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 suddivisiFunzionalità in gruppi, individuabili univocamente mediante groupname. Ciascun utente può appartenere ad uno o più gruppi. • l'utente root, amministratore di sistema, non ha alcuna limitazione nell'accesso alle risorse del sistema stesso. G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 13 Fondamenti di Sistemi Operativi Funzionalità 3/4 DEI - Politecnico di Bari Multitasking • Il suo nucleo può supportare la contemporanea esecuzione di più processi gestiti a divisione di tempo su un’unica CPU. Multithreading • Esecuzione di più parti di uno stesso programma in Funzionalità contemporanea. Multiprocessing • Supporta fino a 16 processori paralleli; Compatibilità con molte architetture di CPU: • Intel x86; • Sparc, Alpha, PowerPC; G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 14 Fondamenti di Sistemi Operativi Funzionalità 4/4 DEI - Politecnico di Bari Compatibilità con diversi file system Compatibile con la maggioranza degli standard UNIX Controllo diretto dei job in esecuzione Console virtuale (modalità testuale) Coesistenza con altri S.O. Funzionalità 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 G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 15 Fondamenti di Sistemi Operativi Il kernel DEI - Politecnico di Bari o Si tratta dell’insieme delle routine di basso livello del S.O. o É il codice che controlla l’interfaccia tra applicativi e HW • • É monolitico (un unico modulo che serve le richieste) Non-preemptive: diverse funzioni del kernel devono essere eseguite senza interruzione • Supporto ai driver caricabili e scaricabili dalla memoria Loadable Kernel Module: estendono le funzioni del kernel o É indipendente in maniera debole dalla distribuzione o Emulazione della Floating Point Unit (FPU) in assenza coprocessore matematico del • Supporto alla virtualizzazione della memoria • Utilizzo ottimizzato delle funzioni di libreria: Gli eseguibili adoperano librerie condivise a linking dinamico Gli eseguibili sono più compatti Ottimizzazione dell’uso della memoria G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 16 Fondamenti di Sistemi Operativi Le distribuzioni DEI - Politecnico di Bari 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 Distribuzioni desktop più diffuse Funzionalità • 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 • Slackware • Debian • CentOS • OpenSUSE G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 17 Fondamenti di Sistemi Operativi I numeri di versione 1/2 DEI - Politecnico di Bari Sono due, diversi e riferiti a: • Distribuzione • Kernel Versioning differente per kernel e distribuzione Consiste di quattro cifre: A.B.C[.D] A: versione del kernel: (es. 2.6.12.3) • viene modificato molto raramente; • la più recente è la versione 3, nel 2011, per i 20 anni del kernel linux; B: revisione "maggiore" del kernel: • prima della serie 2.6.x, i numeri pari indicano un ramo stabile; i numeri dispari (come 1.1 oppure 2.5) indicano rami di sviluppo; • a partire dalla serie 2.6.x, lo sviluppo di nuove caratteristiche avviene all'interno dello stesso ramo; G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 18 Fondamenti di Sistemi Operativi I numeri di versione 2/2 DEI - Politecnico di Bari C: revisione "minore" del kernel: • inizialmente, questo numero aumentava quando venivano implementati nel kernel aggiornamenti riguardanti la sicurezza, correzioni di alcuni errori, nuove caratteristiche, o nuovi driver; • modello attuale: viene cambiato solo quando nuovi driver o caratteristiche diverse sono introdotte; D: build number: • serve a conteggiare correzioni e patch di sicurezza; • è inoltre associata col numero delle volte che il compilatore ha costruito il kernel, ed è denominata "build number". Punti • • • fermi Una nuova distribuzione usa sempre il kernel più recente Tutti gli applicativi hanno un proprio numero di versione La compilazione dei pacchetti è molto flessibile G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 19 Fondamenti di Sistemi Operativi Programmi di servizio DEI - Politecnico di Bari • 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 • SHELL G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 20 Fondamenti di Sistemi Operativi Elaboratori di testo (1/2) DEI - Politecnico di Bari Si introduce il descrive l’aspetto testo in un linguaggio di formattazione che ne • Un esempio di linguaggio di formattazione è HTML • La formattazione avviene mediante un programma distinto che converte i codici • Analogia con editing e compilazione • Maggiore portabilità dei documenti • Riferimenti aggiornati automaticamente • I più famosi sono TEX e il suo dialetto LATEX G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 21 Fondamenti di Sistemi Operativi Elaboratori di testo 2/2 DEI - Politecnico di Bari G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 22 Fondamenti di Sistemi Operativi Videoscrittura DEI - Politecnico di Bari • Interfaccia visuale • Editing di espressioni complesse (formule matematiche) • • • • • Interfaccia grafica per disegnare figure e schemi Correttore ortografico interattivo Generatore automatico di indici per documenti Tool per la progettazione di font Es: gedit, OpenOffice Writer G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 23 Fondamenti di Sistemi Operativi La SHELL DEI - Politecnico di Bari • É il più importante programma di servizio • Interprete dei comandi utente: File eseguibili – File binari – File di testo interpretati Comandi incorporati (built-in) • • • • • Job control Cronologia dei comandi immessi Funzione di completamento automatico Redirezione dell’input e dell’output Linguaggio di programmazione (utilizzo di script in linguaggio di shell) G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 24 Fondamenti di Sistemi Operativi La SHELL DEI - Politecnico di Bari Esistono varie shell che differiscono per la sintassi dei comandi. • Bourne shell (sh) • C shell (csh) • Korn shell (ksh) • Z shell (zsh) La più diffusa è Bourne Again SHell (BASH). G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 25 Fondamenti di Sistemi Operativi Applicativi commerciali 1/2 DEI - Politecnico di Bari • LibreOffice (The Document Foundation). • 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 G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 26 Fondamenti di Sistemi Operativi Applicativi commerciali 2/2 DEI - Politecnico di Bari 1. Caldera produce NetWare per LINUX. Esso consente di: 2. Fornire servizi di file server 3. Fornire servizi di print server 4. Condividere dati 5. 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 G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 27 Fondamenti di Sistemi Operativi Supporto alla programmazione 1/2 DEI - Politecnico di Bari • 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 G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 28 Fondamenti di Sistemi Operativi Supporto alla programmazione 2/2 DEI - Politecnico di Bari • 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 G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 29 Fondamenti di Sistemi Operativi X window 1/3 DEI - Politecnico di Bari • L'accesso ad un sistema UNIX mediante terminale avviene utilizzando un programma chiamato login. Il programma identifica gli utenti chiedendo loro username e password. • Se l'autenticazione avviene con successo il sistema esegue una shell. • X Window (X11): interfaccia grafica per macchine UNIX • Ha una elevata configurabilità • Si basa sull’utilizzo di dispositivi di puntamento generici • È 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 G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 30 Fondamenti di Sistemi Operativi X window 2/3 DEI - Politecnico di Bari • 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) • É stratificato e modulare 1. X Server 2. Window Manager 3. Desktop Manager e Environment (KDE, Gnome) G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 31 Fondamenti di Sistemi Operativi X window 3/3 DEI - Politecnico di Bari • É 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 G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 32 Fondamenti di Sistemi Operativi La filosofia di Linux 1/2 DEI - Politecnico di Bari • 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 G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 33 Fondamenti di Sistemi Operativi La filosofia di Linux 2/2 DEI - Politecnico di Bari • 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 • É uno dei più efficienti sforzi di sviluppo mai intrapresi G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 34 Fondamenti di Sistemi Operativi Installazione DEI - Politecnico di Bari Dual boot: • Partizione • Virtual machine (VMware) WUBI (Windows-based Ubuntu Installer) • Presente dalla versione 8.04 di Ubuntu • Permette di installare Ubuntu come un’applicazione di Windows • File system virtuale • non modifica il sistema e non crea partizioni per ospitare il nuovo S.O. Live cd: • Avvio del S.O. da cd • Consente di provare differenti distribuzioni G. Piscitelli - M. Ruta - A. Cinquepalmi A.A. 2013-2014 35