Introduzione a Linuxmembers.ferrara.linux.it/pioppo/ing2002/linux-intro-2x1.pdf · Un po’ di...
Transcript of Introduzione a Linuxmembers.ferrara.linux.it/pioppo/ing2002/linux-intro-2x1.pdf · Un po’ di...
Introduzionea Linux
(e all'OpenSource)
Università di Ferrara, Facoltà di Ingegneria 2002
Simone Piunno, FerraraLUG
Cos'è LinuxLinux è 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 sistemaBoot loader: LILO (W.Almesberger), GRUB (GNU)Kernel: scritto da zero da Linus TorvaldsLibrerie di sistema: fornite da GNU
La shell: la più usata è fornita da GNUUtility: molte derivate dal progetto GNUServizi di rete: molti sono derivati dai sistemi BSDDriver grafica: progetto XFree86, X ConsortiumGUI: KDE (KDE Team) o Gnome (GNU)Strumenti di sviluppo: molti forniti da GNUGestione 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– SeLinux– ...
– Debian– Caldera– Turbo Linux– 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 SuSE Linux, KivioKDE, OpenOffice,
Mozilla
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
OpenSourcePer 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 GPLLa 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)
• PHP (gira sul 20% dei server Web)
• Sendmail, Postfix
• Python
• INN
• Mailman
• 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 anniRedhat 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 annii costi e i tempi sono stimati con modello COCOMO50% delle righe di codice sono sotto licenza GPL
Riferimenti: http://www.dwheeler.com/sloc/
Quanto vale l'OpenSource/2
Prodotto M-SLOCNASA Space Shuttle 1,8Sun Solaris (1998-2000) 8Windows 3.1 (1992) 3Windows 95 15Windows 98 18Windows NT (1992) 4Windows NT5 (1998) 20RedHat 6.2 (2000) 17RedHat 7.1 (2001) 30Debian 2.2 (2000) 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”
Bazaar styleLinus 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 scegliere la soluzione migliore.
• Il debugging è parallelizzabile.
• Dati abbastanza occhi, ogni bug è scopertoLa qualità del codice prodotto è impressionante.
Riferimenti: http://www.tuxedo.org/~esr/writings/cathedral-bazaar/
Altri esempi di bazaar• Gcc
• Mozilla
• OpenOffice
• Fetchmail
• Perl
• KDE
L'esempio di Gcc/egcs è illuminante!
Sun ci crede
Silicon ci crede
IBM ci crede
La casa bianca si fida
NSA lo propone
Amazon ci vive
Google ci vive
Linux a 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: in collaborazione con IBM 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 User's 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.
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.linuxdoc.org
• http://www.freshmeat.net� http://www.linux.it
• http://www.softwarelibero.it� http://www.ziobudda.net
FerraraLUG, riferimenti
Http://www.ferrara.linux.it