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]