Accademia dell'Hardware e del Software Libero “Adriano Olivetti” Corso LINUX Desktop Officina H Marzo – Aprile 2013 Informazioni ● ● ● Sei incontri di due ore il Giovedì dalle 18 alle 20 circa Corso orientato al learning by doing (Laboratorio) Distribuzioni e/o materiale disponibile in laboratorio Obiettivo ● ● Migrare la propria quotidianità (informatica) in ambiente Open source sposando la filosofia della condivisione libera della conoscenza. Linux è il simbolo dell'Open ma non certo il solo . (Tema del primo incontro) Programma del corso ● 1 - Linux e Open source concetti di base e tassonomia ● 2 - Installazione delle distribuzioni ● 3 - Accesso al sistema e utilizzo ● 4 – Applicazioni (configurazione) ● 5 - Dispositivi aggiuntivi ● 6 – Problemi particolari e verifica finale Prima giornata FREE - OPEN Software libero “L'espressione Software libero si riferisce alla libertà dell'utente di eseguire, copiare, distribuire, studiare, cambiare e migliorare il software.” Richard M. Stallman Il software libero: software rilasciato con una licenza che permette a chiunque di utilizzarlo e che ne incoraggia lo studio, le modifiche e la redistribuzione; per le sue caratteristiche si contrappone al software proprietario ed è differente dalla concezione open source, incentrandosi sulla libertà dell'utente e non solo sull'apertura del codice sorgente. La licenza Stallmann Quattro tipi di libertà per gli utenti dello stesso: ● Libertà di eseguire il programma, per qualsiasi scopo (libertà 0). ● Libertà di studiare come funziona il programma, e adattarlo alle proprie necessità (libertà 1). (L'accesso al sorgente è un prerequisito delle libertà 1 e 3) ● Libertà di ridistribuire copie in modo da aiutare il prossimo (libertà 2). ● Libertà di migliorare il programma, e distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio (libertà 3). Open nella scuola Lo studente è più consapevole di ciò che fa, di quali sono le modalità di funzionamento di comandi e procedure, di qual è la struttura del software. ● La disponibilità del sorgente e le quattro libertà permettono al docente ed allo studente di “metterci le mani”, apportando modifiche funzionali alle proprie esigenze. ● Favorisce la crescita autonoma dell’allievo. ● Gli studenti possono portare lo strumento a casa. ● La documentazione è ricca e facilmente reperibile. ● Considerando l'utilizzo di un sistema Linux, esso dispone sia di interfaccia grafica che è utile per utenti “non professionali” che di interfaccia a carattere, per utenti “professionali”. Aspetti economici ● ● ● ● Il costo rilevante delle licenze d'uso di software proprietario. La scarsità (sopratutto nel nostro Stato) di fondi per la scuola e per l'istruzione in generale. Utilizzo di macchine datate o obsolete. Lascia a noi la possibilità di decidere il momento in cui cambieremo il nostro hardware. Assistenza tecnica pressoché gratuita ottenibile attraverso Internet. Ogni problema può essere risolto chiedendo aiuto sul Web. Aspetti etici ● ● ● ● Educazione alla legalità. Esso educa infatti alla conoscenza ed al rispetto delle licenze combattendo l'abitudine assunta da molti utenti di violare le leggi sul copyright. Libertà economica che influisce sul punto precedente abbassando (o annullando) il costo delle licenze. Libertà di insegnamento ed autonomia didattica ripulendo almeno l'ambiente scolastico dal monopolio software di alcune case produttrici. Rispetto di criteri di uguaglianza ed equità. Qualunque utente, su qualunque piattaforma hardware e appartenente a qualunque strato della società, potrà avere accesso al software. Aspetti tecnici ● Affidabilità. Sicurezza. ● Rapido sviluppo di nuove soluzioni. Varietà di sviluppi. ● Produzione di esperienze. ● ● Progetti Aperti Tutti hanno la possibilità di osservare e studiare il software, caratteristica che permette di scoprire facilmente bugs o debolezze nella sicurezza. La possibilità di osservare il codice, sprona anche gli utenti a sperimentare permettendo lo sviluppo attivo di potenziali programmatori. Il sw proprietario ti rende “cliente” Il sw open ti rende forza partecipe del progetto Il Sistema Operativo Il Computer (1) Elementi della macchina di Von Neumann Memoria principale Processore Memoria secondaria Dispositivi di Input/Output Unità Centrale Unità centrale Memoria principale (centrale) Processore Bus Controller Stampante Display/Video Periferiche di input/output Memorie di massa (secondarie) Il computer (elaboratore) ● ● HARDWARE (video, tastiera, motherboard, dischi fissi, chiavi usb, ecc SOFTWARE (sequenze più o meno lunghe di codici binari) – Software di base – Software applicativo Funzioni del S.O. -Avviamento dell'elaboratore e creazione dell'ambiente virtuale; -Gestione del processore e dei processi; -Gestione della memoria principale; -Gestione memoria virtuale; -Gestione della memoria secondaria; -Gestione delle risorse di input/output (periferiche) -Linguaggio di comandi per l'interazione con l'utente -Compilazione Elemento 1 del S.O. KERNEL: Il kernel è il cuore di un sistema operativo e fornisce ai componenti del sistema operativo e ai programmi le funzioni fondamentali per un accesso controllato all'hardware (evitandogli dettagli sulla sua gestione). Elemento 2 del S.O. FILE SYSTEM: Il file system definisce come i file vengono immagazzinati e organizzati su un dispositivo di archiviazione (hard disk, CD, ecc). Vi sono diversi tipi di file system che si differenziano sulla politica di gestione dei file. I principali tipi di file system sono Ext3 (usato dai sistemi Linux), HFS (usato dai sistemi Mac OS), NTFS e FAT32 (usati dai sistemi Windows) Elemento 3 del S.O. INTERFACCIA GRAFICA: che permette agli essere umani di interagire con il sistema. (motore grafico X) Gnome Kde Xfsc …... Elemento 4 del S.O. Compilatore GNU/ GCC Tutto l’ambiente linux ruota intorno a moduli scritti in linguaggio C e C++. E’ ovvio che assume particolare importanza il compilatore compatibile con tale linguaggio. Linux ha scelto GCC (GNU COMPILER COLLECTION), una particolare suite di compilatori integrata nel S.O. GCC permette la compilazione di sorgenti C, C++, Objective C, Fortran, ADA, e Java direttamente da linea di comando Linux. I due estremi ARCHITETTURA MICROKERNEL (Win, Unix) ARCHITETTURA MONOLITICA (Linux) Modelli di partenza (2006-2008) Modello “a cipolla” (modello teorico) k ern el g es tio n e m e m o r ia p r o c e s s o r e , r is o r s e in ter f a c cia c o m a n d i S.O. microkernel Struttura concettuale Applicativo utente Win 32 Processi da utility Sottosistema Win 32 Interfaccia di sistema (DLL) Servizi di sistema Gest. I/O Gest. Processi Gest. cache Gest. PnP Gest. memoria KERNEL HAL (Hardware Abstraction layer ) HARDWARE S.O. Kernel Monolitico Struttura concettuale GNOME (GNU Network Object Model Environment) KDE (K Desktop Environment Fine prima parte (installazione, partizionamento, VM)