Corso LINUX - Accademia dell`Hardware e del Software Libero

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)