Corso di avvicinamento al Software Libero Lunedi 16 Gennaio Parte 1 GNU/Linux Siamo soliti chiamarlo Linux ma sarebbe piu' corretto dire GNU/Linux GNU/Linux Perche' GNU/Linux ? Perche' si tratta di un Sistema Operativo Libero (Free Software) i cui elementi principali sono ­ Il Kernel Linux ­ Il Software Libero in buona parte realizzato nell'ambito del Progetto GNU kernel Cosa e' un Kernel? kernel E' il cuore di un sistema operativo (nucleo) che fornisce le funzioni essenziali per il sistema, in particolare gestione della memoria, delle risorse del sistema e delle periferiche, assegnandole di volta in volta ai processi in esecuzione La controparte del kernel e' la shell, l'interfaccia utente del sistema kernel shell kernel hardware GNU/Linux Cosa e' il software libero? ripercorriamone brevemente la storia per capire come e perché e' nato Software Libero Agli albori dell'informatica non si parlava di software libero perche' il software era per sua natura libero: i ricercatori, come gran parte degli scienziati, erano soliti condividere le conoscenze: nel caso specifico il codice (sorgente) () Cosa e' il Codice Sorgente? () Cosa e' il Codice Sorgente? Nel mezzo del cammin... 101011100110001110110 1100001010011 () Cosa e' il Codice Sorgente? Lingua Italiana Codice Sorgente Traduttore Compilatore Lingua Cinese Programma Software Libero Il concetto di Free Software (Software Libero) fu ufficializzato per la prima volta nel 1984 da Richard M. Stallman Software Libero Quando cominciai a lavorare nel laboratorio di Intelligenza Artificiale del Massachusset Institute of Technology nel 1971, entrai a far parte di una comunità in cui ci si scambiavano i programmi, che esisteva già da molti anni. Software Libero La condivisione del software non si limitava alla nostra comunità; è un cosa vecchia quanto i computer, proprio come condividere le ricette è antico come il cucinare. Ma noi lo facevamo più di quasi chiunque altro. Software Libero Ad un certo punto le cose cambiarono Un episodio 'simbolo' ha a che fare con una stampante Software Libero La stampante era veloce ed aveva una buona qualita' ma la carta si inceppava spesso... Software Libero Stallman si mette al lavoro per limitare l'inconveniente ma non trova i sorgenti del driver: il produttore non li ha forniti ! Software Libero Mi disse di aver promesso che non me ne avrebbe fornito una copia Software Libero Era la prima volta che m’imbattevo in una clausola di non divulgazione, e mi resi immediatamente conto come questi accordi producano delle vittime. In questo caso la vittima ero io. Io e il mio laboratorio La nuova generazione di elaboratori come il VAX o il 68020, avevano il proprio sistema operativo, ma nessuno di questi era libero: si doveva firmare un accordo di non­diffusione persino per ottenerne una copia eseguibile. Questo significava che il primo passo per usare un computer era promettere di negare aiuto al proprio vicino. Una comunità cooperante era vietata. La regola creata dai proprietari di software proprietario era: se condividi il software col tuo vicino sei un pirata. Se vuoi modifiche, pregaci di farle C'erano un programma o dei programmi che io potessi scrivere, per rendere nuovamente possibile l'esistenza di una comunità? La risposta era semplice: innanzitutto serviva un sistema operativo. Software Libero Stallman decise di lasciare il posto di lavoro al M.I.T. per iniziare la realizzazione di un Sistema Operativo costituito interamente da software che tutti potessero utilizzare liberamente. Nasce il Progetto GNU Software Libero Nel gennaio 1984 lasciai il mio posto al MIT e cominciai a scrivere software GNU. Dovetti lasciare il MIT, per evitare che potesse interferire con la distribuzione di GNU come software libero. Se fossi rimasto, il MIT avrebbe potuto rivendicare la proprietà del lavoro, ed avrebbe potuto imporre i propri termini di distribuzione, o anche farne un pacchetto proprietario Progetto GNU Scelsi di rendere il sistema compatibile con Unix, in modo che fosse portabile, e che gli utenti Unix potessero passare facilmente a esso. Il nome GNU fu scelto secondo una tradizione hacker, come acronimo ricorsivo che significa GNU's Not Unix Progetto GNU GNU's Not Unix GNU Non e' Unix GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Praticamente tutto il software viene distribuito con una Licenza d'uso La GPL e' realizzata per tutelare la liberta' degli utenti e degli sviluppatori invece che gli interessi di una societa' produttrice. Software Libero Un software e' libero se l'utente e' libero di Eseguire il programma per qualsiasi scopo Modificare il programma ed adattarlo alle proprie necessita' Perché questa libertà abbia effetto pratico è necessario avere accesso al codice sorgente del programma poiché apportare modifiche a un programma senza disporre del codice sorgente è estremamente difficile Distribuire copie del programma, gratuitamente o dietro compenso Migliorare il programma e distribuirne le versioni modificate così che la comunità possa fruire dei miglioramenti apportati Software Libero Un software e' libero se l'utente e' libero di Eseguire il programma per qualsiasi scopo Modificare il programma ed adattarlo alle proprie necessita' Perché questa libertà abbia effetto pratico è necessario avere accesso al codice sorgente del programma poiché apportare modifiche a un programma senza disporre del codice sorgente è estremamente difficile Distribuire copie del programma, gratuitamente o dietro compenso Migliorare il programma e distribuirne le versioni modificate così che la comunità possa fruire dei miglioramenti apportati Software Libero Un software e' libero se l'utente e' libero di Eseguire il programma per qualsiasi scopo Modificare il programma ed adattarlo alle proprie necessita' Perché questa libertà abbia effetto pratico è necessario avere accesso al codice sorgente del programma poiché apportare modifiche a un programma senza disporre del codice sorgente è estremamente difficile Distribuire copie del programma, gratuitamente o dietro compenso Migliorare il programma e distribuirne le versioni modificate così che la comunità possa fruire dei miglioramenti apportati Software Libero Un software e' libero se l'utente e' libero di Eseguire il programma per qualsiasi scopo Modificare il programma ed adattarlo alle proprie necessita' Perché questa libertà abbia effetto pratico è necessario avere accesso al codice sorgente del programma poiché apportare modifiche a un programma senza disporre del codice sorgente è estremamente difficile Distribuire copie del programma, gratuitamente o dietro compenso Migliorare il programma e distribuirne le versioni modificate così che la comunità possa fruire dei miglioramenti apportati 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. Poiché free si riferisce alla libertà e non al prezzo, vendere copie di un programma non contraddice il concetto di software libero. In effetti, la libertà di vendere copie di programmi è essenziale: raccolte di software libero vendute su CD­ ROM sono importanti per la comunità, e la loro vendita è un modo di raccogliere fondi importante per lo sviluppo del software libero. Il Software Libero può essere comprato e rivenduto purché ne venga garantita la libertà che e' appunto la caratteristica essenziale ed irrinunciabile. Free Software Foundation Open Source Initiative Open Source La definizione coniata da una parte della comunita' per evitare la confusione generata dal significato della parola 'free' in free software che molti interpretavano nel suo significato piu' immediato ad una prima lettura: gratis Il timore era che le aziende che desideravano investire nel free software avrebbero potuto essere frenate dalle possibili implicazioni conseguenti il doppio senso della parola Open Source L’idea fondamentale alla base dell’Open Source e' che se si puo' leggere, distribuire e modificare liberamente grazie alla libera disponibilita' dei codici sorgenti il software migliora, si evolve, viene trasformato e ripulito dai bug e cio' avviene ad una velocita' impensabile rispetto ai modi tradizionali di produrre software. Free Software Il concetto di software libero pone invece l’accento sulla libertà, in particolare sulle quattro libertà fondamentali formalizzate nella Licenza GPL Linux Nel 1990 il sistema GNU era quasi completo, l'unica parte significativa ancora mancante era il kernel. Hurd Linux Linus Torvalds era uno studente dell'universita' di Helsinki Tutti hanno un libro che ha cambiato la loro vita. [...] Quello che si prese la mia e la proietto' verso nuove altezze fu Sistemi Operativi: Progettazione ed implementazione di Andrew S.Tanenbaum Linux Nel libro, Tanenbaum, professore dell'Universita' di Amsterdam, descriveva Minix, un piccolo clone di Unix che aveva realizzato a scopo didattico Subito dopo aver letto l'introduzione, scoperto la filosofia di Unix e quello che quel sistema potente, pulito e bellissimo poteva fare decisi di prendermi una macchina su cui fare girate Unix Linux Nel gennaio 1991 Linus compro' un (nuovo) computer sul quale pote' installare' Minix Linux Tra i programmi di Minix che non piacevano a Linus vi era l'emulatore di terminale. Linus inizio' a realizzarne uno suo ma invece di farlo all'interno di minix realizzo' un programma che interagisse direttamente con l'hardware del computer Linux L'emulatore di terminale sfruttava il task­switching che il 386 aveva la capacita' hardware di poter fare. Linux Linux Scrissi un driver per il disco. E dato che volevo salvare i documenti nel filesystem di Minix resi il mio filesystem compatibile con quello di Minix Linux Ci volle un sacco di lavoro. Quando lo finii fu evidente che il progetto si stava trasformando in un sistema operativo. Cosi' smisi di pensarlo come un emulatore di terminale ed iniziai a pensarlo come un sistema operativo. Linux fu rilasciato come software libero sotto GPL Al progetto si appassionarono molti sviluppatori che, attraverso internet, iniziarono a contribuire al suo sviluppo Come ogni applicazione Open Source il kernel di Linux e' in continua evoluzione La dimensione del kernel cresce in modo esponenziale con l'aggiunta di nuovi moduli, nuovo hardware supportato, etc 0.01 settembre 1991 10.239 0,2Mb 0.10 dicembre 1991 17.750 0,4Mb 0.99 dicembre 1992 81.091 2,2Mb 1.0 marzo 1994 176.250 4,7Mb 1.2 marzo 1995 310.950 8,4Mb 2.0 giugno 1996 777.956 22 Mb 2.2 gennaio 1999 1.800.847 52 Mb 2.4 gennaio 2001 3.377.902 100 Mb Oggi chi usa Linux? 29 milioni di utenti nel mondo (stima) tasso di crescita annuo del 200% Il sistema operativo piu' usato nel WEB 31% contro il 24% di Windows (c) () L’infrastruttura di Internet si affida prevalentemente a software open source Apache e' il piu' usato tra i server WEB con il 61% sul totale Si stima che ogni messaggio di posta elettronica spedito in rete passi attraverso Sendmail Chi usa Linux? Mainframes Clusters Workstations PCs (Intel AMD PPC) Servers WEB Routers PDA – cellulari Linux embedded Ricevitori Satellitari DVDplayers Dove si usa Linux? PS2 Xbox Mainframes Clusters Workstations PCs (Intel AMD PPC) Servers WEB Routers PDA – cellulari Linux embedded Ricevitori Satellitari DVDplayers Motorola 68k Dove trovare GNU/Linux La prima fonte e' internet GNU/Linux viene sviluppato attraverso internet da migliaia di programmatori sparsi per il mondo Costruire in questo modo un Sistema Operativo completo richiede tempo e competenze Le distribuzioni Dove trovare GNU/Linux Per rendere piu' agevole il processo di installazione di un sistema completo qualcuno penso' di riunire tutti i programmi che servivano in una distribuzione ed aggiunse delle utilita' che li installassero in modo organico sul computer dell'utente Distribuzioni GNU/Linux Le prime distribuzioni risparmiavano una enorme mole di lavoro ma chiedevano comunque delle competenze Distribuzioni GNU/Linux Successivamente sono stati aggiunti strumenti per l'autoriconoscimento dell'hardware e contemporaneamente le interfacce grafiche si sono arricchite di nuove funzionalita' Distribuzioni GNU/Linux Dove trovare una distribuzione GNU/Linux ­ internet (.iso) ­ internet (mini.iso ed installazione via rete) ­ edicola (CD/DVD allegati alle riviste) ­ libreria (CD/DVD allegati a manuali) ­ LUGs (gruppi di utenti) ­ un amico che lo usa (e' liberamente duplicabile) ­ boxed in libreria/negozio/internet (con manuali e servizio di supporto) Distribuzioni GNU/Linux La liberta' ha permesso che ne nascesse un numero molto elevato ed in continua crescita Ciascuna e' caratterizzata da ­ target ­ una selezione dei programmi ­ dotazione di utilita' per la configurazione ­ manuali e servizi aggiuntivi ­ struttura di base Distrowatch www.distrowatch.com + Tecniche Slackware debian ubuntu Fedora SuSE Mandriva ­ Tecniche Distribuzioni LiveCD 700Mb Knoppix Slax Feather DSL Damn Small Linux 50Mb Quale distribuzione scegliere? (?) ­ LiveCD ­ Distribuzione Desktop (quasi sempre piu' di una) ­ debian o slackware OpenSuSE Fedora Linspire Gentoo (ex Lindows) Linux From Scratch La pubblicita' :­)