PDF, 2 slide per foglio

Transcript

PDF, 2 slide per foglio
Introduzione
a Linux
(e all'OpenSource)
Simone Piunno, FerraraLUG
Università di Ferrara, Facoltà di Ingegneria 2003
Cos'è Linux
Linux è un sistema operativo:
•
•
•
•
•
•
•
•
•
•
UNIX-like, POSIX compatibile
Multi utente, multi tasking, multi threading
Multi processore (SMP)
Multi piattaforma, 32 o 64 bit
Modulare
Gestisce molti filesystem differenti
Gestisce molte tecnologie di networking differenti
Gestisce molte GUI a finestre
Corredato da moltissime applicazioni
Libero, opensource
Un po' di storia
• 1969, ArpaNET, comunità in rete, futura Internet
• 1971, UNIX un design vincente
• 1981, PC IBM, hardware aperto, discesa dei costi
• 1984, Richard Stallman inizia il progetto GNU
• 1985, Nascono la FSF e la licenza GPL
• 1989, BSD networking release 1, un TCP/IP aperto
• 1990, Tim Berners Lee inventa il World Wide Web
• 1991, Linus Torvalds inizia a lavorare a Linux
• 1993, Linux 1.0
Riferimenti: http://safari.oreilly.com/main.asp?bookname=opensources
Componenti del sistema
Boot loader:
LILO (W.Almesberger), GRUB (GNU)
Kernel:
scritto da zero da Linus Torvalds
Librerie di sistema:
fornite da GNU
La shell:
la più usata è fornita da GNU
Utility:
molte derivate dal progetto GNU
Servizi di rete:
molti sono derivati dai sistemi BSD
Driver grafica:
progetto XFree86, X Consortium
GUI:
KDE (KDE Team) o Gnome (GNU)
Strumenti di sviluppo:
molti forniti da GNU
Gestione pacchetti:
RPM (RedHat) o DEB (Debian)
Applicativi:
vari
Componenti del sistema/2
• Un sistema linux è altamente modulare
• Ciascun modulo ricopre una funzione
• Per ogni funzione abbiamo la scelta tra
diverse alternative
• Possiamo creare un sistema ad hoc per
ogni situazione (embedded, palmari,
workstation grafica, cluster, mainframe,
etc.)
Le distribuzioni
Ci vuole qualcuno che raccolga la varie parti in un
complesso funzionante, organico, facile da installare/usare.
Questo è il ruolo delle distribuzioni.
–
–
–
–
–
RedHat
SuSE
Mandrake
AlphaLinux
...
–
–
–
–
–
Debian
SeLinux
Trustix
Immunix
...
Ogni distribuzione è tarata per un certo tipo di utilizzo.
Se ne conoscono circa 200!!!
Riferimenti: http://lwn.net/Distributions/
Linux è free software
“Free as in speech, not as in beer”
Gratis
Non Gratis
Libero
KDE, OpenOffice,
Mozilla
SuSE Linux, Kivio
Non libero
Internet Explorer,
Acrobat Reader,
Flash Player
Windows, PhotoShop
Riferimenti: http://www.fsf.org/philosophy/free-sw.html
Linux non è “contro”
• Non è contro il software a pagamento, se
riuscite a fare soldi con Linux gli autori
sono contenti (e c'è chi li fa).
• Non è contro il copyright, la proprietà
intellettuale di Linux è difesa
strenuamente, viene solo esercitata in
modo diverso.
Riferimenti: http://www.gnu.org/philosophy/selling.html
OpenSource
Per evitare confusione si usa il termine OpenSource.
OpenSource significa avere il diritto di:
•
•
•
•
Riprodurre il software e di ridistribuirlo
Accedere al codice sorgente
Fare modifiche al software per migliorarlo
Per sempre
Open Source Initiative detiene il marchio ed approva le
licenze conformi al modello. Esempi di licenze approvate:
GPL, BSD, MIT, X consortium, Artistic, MPL, etc.
Riferimenti: http://www.opensource.org/
Esempio: la licenza GPL
La licenza GPL permette di:
•
•
•
•
Riprodurre e ridistribuire il software
Esaminare e modificare il codice sorgente
RIDISTRIBUIRE LE VERSIONI MODIFICATE
Per sempre
La licenza ci da molte libertà ma ci chiede qualcosa indietro:
• Le versioni modificate, se ridistribuite, devono stare
interamente sotto la stessa licenza (compresa ogni parte
aggiunta)
E' nota anche col nome di Copyleft
Riferimenti: http://www.fsf.org/licenses/licenses.html
Vantaggi dell'OpenSource
Linux presenta vantaggi in molti campi:
• Per la didattica
• Per la ricerca
• Per l'amministratore di sistema
• Per lo sviluppatore
• Per l'azienda
• Per l'utente finale
• Per l'amministrazione pubblica
Vantaggi nella didattica
• Avere i sorgenti permette di studiare da vicino
l'implementazione delle varie soluzioni.
• Il codice di Linux è fatto apposta per essere letto
e capito.
• Poter modificare il codice ed eseguire la versione
modificata è il top dell'esperienza di laboratorio.
• Tonnellate di documentazione dettagliata.
Vantaggi nella ricerca
• Possibilità di introdurre varianti o
implementazione di nuovi concetti ad ogni livello
del sistema.
• Nessun NDA da firmare.
• Si può interagire e scambiare idee con ricercatori
e sviluppatori in tutto il mondo.
• Il proprio lavoro viene valutato e riconosciuto dai
pari.
Vantaggi per il SysAdmin
• Infiniti tool di qualità eccellente, componibili in sistemi
più complessi.
• Linguaggi di scripting potentissimi.
• Completo controllo della piattaforma, possibilità di
diagnosticare e risolvere i problemi rapidamente e in
molteplici modi.
• Ci sono mediamente meno problemi di sicurezza e
vengono scoperti e risolti più rapidamente.
• Estrema stabilità (no crash, no reboot)
• No virus
Vantaggi per lo sviluppatore
• Infiniti tool di sviluppo, compilatori, interpreti,
editor, debugger, ambienti integrati, etc.
• Disponibilità incredibile di librerie di ottima
qualità.
• Posso riusare il codice per mie applicazioni
(interne?) o personalizzarlo secondo i miei
bisogni.
• Tonnellate di documentazione dettagliata.
Vantaggi per l'azienda
• Interoperabilità, aderenza agli standard aperti.
• In applicazioni in cui la sicurezza è fattore critico si può
provare che il programma è libero da codice pericoloso.
• Se viene scoperto un problema posso intervenire da solo o
pagare qualcuno affinchè lo faccia per me.
• Personale mediamente più qualificato.
• Investimento garantito nel tempo (meno rischi)
• Basso costo.
Vantaggi per l'utente finale
• Costi bassi.
• La concorrenza protegge il consumatore.
• Tra qualche decina d'anni riuscirò ancora a
leggere i miei file.
Riferimenti: http://www.pps.jussieu.fr/~dicosmo/Piege/PiegeIT.html
Vantaggi per l'Amm. Pubblica
• I dati dei cittadini sono trattati con la dovuta
cautela e sicurezza.
• Garantisce permanenza dei dati nel tempo.
• Trasparenza nelle procedure (es. di voto).
• Lo stato non deve favorire un'azienda (es. formati
di file)
• Le risorse economiche rimangono sul territorio.
Riferimenti: http://www.gnu.org.pe/resmseng.html
Esempi famosi di OpenSource
• BIND (gira sul 90% dei server DNS)
• Apache (gira sul 60% dei server Web)
• Sendmail, Postfix (oltre 80% dei server di posta)
• Python, Perl, PHP
• Zope
• OpenOffice
• MySQL, Postgresql
• Samba
Apache domina il web
Riferimenti: http://www.netcraft.com/survey
Business OpenSource
Abbiamo esempi concreti di come sia possibile creare profitto
intorno all'opensource:
• Leader per il client, vendi il server (es. Netscape)
• Produci l'hardware, libera il software (es. IBM, Apple)
• Regala la ricetta, apri un ristorante (es. Cygnus, Zope)
• Vendi gli accessori (es. O'Reilly, istituti di formazione)
• Libera il futuro, vendi il presente (es. Aladdin Ghostscript)
• Libera il software, vendi il marchio (es. RedHat, SuSE)
• Libera il software, vendi il contenuto (es. AOL, Kivio)
• Metti i bastoni tra le ruote della concorrenza (es. Sun)
• Dividi i costi e i rischi (es. Silicon Graphics, WebSphere)
Quanto vale l'OpenSource
Debian 2.2
• 55 milioni di righe di codice (mozilla 2.1M, kernel 1.8M)
• C 70%, C++ 10%, LISP 5%, shell 5%, perl 2.5%....
• 14000 anni/uomo
• 1.9 miliardi di dollari per rifarla da zero in 6 anni
Redhat 7.1
• 30 milioni di righe di codice (kernel 2.4M, mozilla 2.1M)
• C 71%, C++ 15%, shell 2.6%, LISP 2.4%, assembly 1.8%
• 8000 anni/uomo
• 1.1 miliardi di dollari per rifarla da zero in 6.5 anni
i costi e i tempi sono stimati con modello COCOMO
50% delle righe di codice sono sotto licenza GPL
Riferimenti: http://www.dwheeler.com/sloc/
Quanto vale l'OpenSource/2
Prodotto
NASA Space Shuttle
Sun Solaris (1998-2000)
Windows 3.1 (1992)
Windows 95
Windows 98
Windows NT (1992)
Windows NT5 (1998)
RedHat 6.2 (2000)
RedHat 7.1 (2001)
Debian 2.2 (2000)
M-SLOC
1,8
8
3
15
18
4
20
17
30
55
Riferimenti: http://www.counterpane.com/crypto-gram-0003.html
Legge di Brooks
“Al crescere del numero dei programmatori
coinvolti in un progetto, la quantità di lavoro
svolta aumenta proporzionalmente ma la
complessità e la frequenza dei bug aumenta
col quadrato.”
Lavoro Svolto = N
Complessità e Bug = N²
Riferimenti: Frederick.P.Brooks, “The mythical man month”, 1975
Bazaar style
Linus Torvalds inventa un nuovo modello di sviluppo del
software, che va oltre la legge di Brooks:
• Apri il codice a chiunque voglia vederlo.
• Rilascia presto, rilascia spesso.
• I tuoi utenti sono la tua più grande risorsa, ascoltali.
• Delega tutto quello che puoi.
• Dai un indirizzo ma lascia che siano gli altri a sfidarsi
per la soluzione migliore.
• Il debugging è parallelizzabile.
• Dati abbastanza occhi, ogni bug è scoperto
La qualità del codice prodotto è impressionante.
Riferimenti: http://www.tuxedo.org/~esr/writings/cathedral-bazaar/
Altri esempi di bazaar
• Gcc (da 2.91)
• Fetchmail
• Mozilla
• Perl
• OpenOffice
• KDE
L'esempio di Gcc/egcs è illuminante!
Anche Internet (il TCP/IP) è il risultato di un bazaar.
Sun ci crede
Scott McNealy, Sun Microsystems:
"'We think the big winner with Linux will be on the desktop" -- 10.05.2003
Oracle ci crede
Larry Ellison, Oracle: "(Microsoft has) already been killed by one open-source product.
Slaughtered, wiped out, taken from market dominance to irrelevance [...] They had a
virtual monopoly on Web servers, and then they were wiped off the face of the earth. And
it's going to happen to them again on Linux." -- 04.03.2003
IBM ci crede
Sam Palmisano, IBM: "We don't invest a billion dollars casually, Lou (Gerstner)
and I don't write those checks without some...scrutiny." -- 31.01.2001
La casa bianca si fida
NSA lo propone
Amazon ci vive
Google ci vive
Linux @ ing.unife.it
• 1996: vengono installati 2 server linux (ing49, ing54), prime
postazioni internet a disposizione degli studenti della facoltà.
Nasce il LinuxTeam da studenti volontari.
• 1997: al LinuxTeam vengono affidati i pc della biblioteca.
• 1999: viene aggiunta una LAN sperimentale con una dozzina
di PC in rete ATM 25Mbps, ed iniziano esperimenti di Ipv6,
ATM, multicast, etc.
LinuxTeam è stato terreno fertile per la formazione di un folto
gruppo di appassionati di Linux nei dintorni di Ferrara.
FerraraLUG, storia
• 1997: alcuni studenti della facoltà iniziano a pensare ad
una associazione di utenti e formano, tra i primi in Italia,
un Linux Users Group.
• 1999: FerraraLUG si costituisce formalmente in
associazione culturale senza scopo di lucro.
• 2000: Iniziano i corsi di alfabetizzazione su Linux
• 2001: FerraraLUG co-organizza il primo LinuxDay
nazionale.
• 2002: FerraraLUG ha oltre 100 soci, co-organizzato a
ingegneria il secondo LinuxDay nazionale
FerraraLUG, attività
Punto di incontro e scambio informazioni tra gli utenti.
Aiuto generale per chi si avvicina a Linux.
Corsi di alfabetizzazione.
Sperimentazione sul server dell'associazione.
Sviluppo di software opensource.
Traduzione di software opensource esistente.
Organizzazione seminari, eventi.
Relazioni con altri LUG a livello nazionale.
Promozione sociale.
Pizzate!
Linux, riferimenti
• http://www.linux.org
• http://www.opensource.org
• http://www.gnu.org
• http://www.fsfeurope.org
• http://www.tldp.org
• http://www.freshmeat.net
http://www.linux.it
• http://www.softwarelibero.it
http://www.ziobudda.net
FerraraLUG, riferimenti
Http://www.ferrara.linux.it
[email protected]