Cos'e' Linux?
Introduzione e usi pratici
TiLUG day primavera 2008
17 maggio 2008
Cos'e' Linux?
Linux puo' essere:
- il kernel creato da Linus Torvalds
- un movimento free/open software
- un sistema completo (label per distribuzioni)
- un tessile (trademark di una ditta Svizzera)
Linux e' un kernel!
Linux e' inanzi tutto un kernel creato da
Linus Torvalds nel 1991, creato per divertimento
("Just for Fun")
Cos'e' un kernel?
Il kernel e' il cuore di un computer:
- gestisce risorse (CPU, memoria, tempo, disco) -> multitasking
- processi (programmi)
- hardware
ovvero gestisce trasparentemente l'hardware in modo che
il programmatore e l'utente non debbano occuparsi dei
dettagli (leggo ogni file allo stesso modo, sia che
siano su dischetti, disco fisso, rete o USB, che siano
SCSI o ATA o IDE, che venga usato qualsiasi filesystem
(FAT16, ext3, reiserfs, ...)
Linux e' un kernel!
Linux:
- Supporta 27 architetture, e innumerevoli
altre sotto-architetture.
Da palmari e controller fino a supercomputers
- veramente multitasking e interattivo
- supporta un infinita' di hardware
(come nessun altro sistema operativo)
- ma problemi con alcuni modem, alcune wifi
e alcune schede grafiche
- Virtualizza e puo' essere virtualizzato
Linux e' un kernel! Nascita di Linux
1965-1969: Multics (AT&T, GE, MIT)
1969: UNIX (Ken Thompson, Dennis Ritchie)
1974: Thomson alla Berkley University
1985: Il "manifesto della GNU"
- 1991 esistevano: SystemV (AT&T), Solaris2 (Sun), IRIX (SGI),
- Ultrix (DEC), Xenix (Microsoft/SCO), BSD, HP-UX, AIX (IBM)
1991: Linux
1991: BSD/386
Linux e' un kernel! Simile a Unix
Ovvero basato su dei semplici concetti:
- tutto e' un file (possibilmente di testo)
- KISS "Keep it Simple, Stupid" ovvero
molti programmi semplici, che integrati
diventano potenti, ma cmq flessibili
Linux e' un movimento: la GNU
Le 4 liberta' della GNU (Richard M. Stallman)
Liberta' 0: Liberta' di usare il programma, per ogni uso.
- Liberta' 1: Liberta' di studiare come funziona il programma
- e di adattarlo per i propri bisogni
(le sorgenti sono una precondizione)
- Liberta' 2: Liberta' di distribuire copie
- (aiutare gli altri)
- Liberta' 3: Liberta' di migliorare il programma e di
- publicarlo con le modifiche
(a favore della comunita')
- Concetto copyleft: Non si puo' restringere le liberta'
- date. Lasciato il diritto di copia anche agli altri
Linux e' un movimento: le licenze
GPL: [lunga]
- Puoi usare, copiare, modificare, distribuire
le modifiche
- In caso di modifiche, devi garantire l'accesso
elle sorgenti
- In caso di distribuzione, non puoi restringere
le liberta'
- Linking solo con parti compatibili GPL
BSD: [3 o 4 punti]
- Puoi usare, copiare, modificare, distribuire
le modifiche
- Le sorgenti devono mantenere i vecchi copyright.
(non sei obbligato a distribuirle)
Linux e' un movimento? Free o Open?
In principio:
- Free Software:
- "free as free speech, not (only) as a free beer"
- E' un diritto avere le sorgenti
- Open Source:
- conviene distribuire le sorgenti
- liberta' del programmatore di scegliere la licenza
In pratica:
- usati indiscrimitamente
- GPL: Ti offro il mio programma, quindi tu mi offri le
modifiche
[www.gnu.org, www.opensource.org]
Linux e' un movimento? Perche' Linux e non GNU?
La filosofia del free software e' stata
creata dalla GNU e copiata in Linux
Ma linux ha creato comunita' (di sviluppatori)
(release eraly, release often)
(vedi stili cathedral and baazar)
quindi ci si identifica con Linux e non la GNU.
Linux e' un sistema completo
"Linux" e' composto da molte componenti,
di solito assemblate ed integrate da distribuzioni
Distribuzioni Senza scopo di lucro
- Debian: classica distribuzione free, molte architetture
- Gentoo: tutto dalle sorgenti, per sentire la forza delle sorgenti!
Distribuzioni commerciali
- RedHat, specialmente per clienti commerciali e servers
- Novel (Suse), per tutti.
ampiamente sviluppato il suppoto multilingue, e KDE
Distribuzioni miste
- Ubuntu: basata su debian, ma con release fisse
free, ma con possibilita' di avere supporto commerciale
Killers:
browsers:
firefox (icewasel)
konqueror
link2, ...
Compilatore:
gcc: supporta moltissime architetture e moltissimi linguaggi,
non sempre performante come il compilatore della Intel
virtualizazione:
xen, kvm?, .. usano linux come virtualizzatore
xen, kvm, vmware, ... virtualizzano Linux
grafica:
gimp
un paio di professionali per video
audio: