|
PDF e Linux Copertina Trappola |
|
Articolo
Questo è il testo di un talk che ho fatto in luglio alla Festa di Rifondazione a Borgo S.Lorenzo, vicino Firenze. L'intervento era rivolto anche a persone che non avevano mai sentito parlare di Linux, quindi molto del contenuto di questo articolo vi sarà familiare, ma potete prenderlo come suggerimento per convincere qualche vostro amico : - )
Buona lettura
Normalmente, quando pensiamo a una licenza di utilizzo per del software, ci vengono in mente clausole strettissime come quelle del "contratto di acquisto" del software Microsoft (che troviamo, ad esempio, nella Guida in linea di Windows95, sotto la voce "licenza"): il software non può essere installato su più di un computer contemporaneamente, non può essere duplicato su qualsiasi supporto, non può essere installato su un server di rete... addirittura si può fare solo una copia di backup del software. Non si può disassemblare, decompilare, decodificare. Non si può dividere in parti, non si può affittare, e può essere rivenduto solo se completo di tutte le sue parti. Ah, e la Microsoft o le sue filiali non forniscono alcun supporto tecnico, rivolgetevi a chi vi ha venduto il computer.
Più che una "licenza", che ha nella parola stessa il significato di "permesso", è un elenco di divieti, posti dalla grande azienda produttrice per tutelare i suoi interessi.
Da quando però Internet è diventata di uso comune, sono spuntate fuori una miriade di licenze, tutte diverse tra di loro, che riprendono alcuni dei divieti elencati sopra, e non ne considerano altri: in genere i prodotti sottoposti a queste sono considerati "minori" per qualità, e le licenze stesse possono essere divise in due grandi categorie: shareware e freeware.
Il software shareware può essere liberamente distribuibile, ed ha la caratteristica di essere dato "in prova" all'utente: se dopo il periodo di prova indicato nella licenza si vuole continuare ad usare il prodotto, bisogna pagare una certa cifra all'autore. Non si può chiedere denaro per la distribuzione delle copie del software, ed esso non può essere disassemblato. Un esempio di software soggetto a una licenza del genere è il noto archiviatore WinZip.
Il software freeware, intendendo "free" come "gratuito" (l'inglese purtroppo in questo ha un difetto: "free" può stare sia per "gratuito" che per "libero"), viene liberamente distribuito, e può essere utilizzato per tutto il tempo che si vuole, su quanti computer si vuole, senza dover pagare nessuno. In genere il software di questo tipo è il risultato di "esercizi" di studenti, o è una manovra commerciale di una qualche azienda che spera così di associare il suo nome a un prodotto largamente diffuso; ad esempio Adobe ha distribuito il suo Acrobat Reader gratuitamente. L'Acrobat Reader è un programma che permette di visualizzare un formato di file, il pdf, proprietario della Adobe; la diffusione dei lettori ha fatto sì che le vendite del programma corrispondente per creare file pdf siano aumentate notevolmente.
Naturalmente la divisione tra software shareware e freeware è molto approssimativa, dato che esistono innumerevoli variazioni sul tema, dal software gratuito per uso non commerciale, a quello "cardware", per cui l'utente, se soddisfatto del prodotto, deve scrivere una cartolina di ringraziamento all'autore, ma per i nostri scopi è sufficiente.
Esiste un'ulteriore categoria di licenze software, che è quella di cui tratta questo intervento: le licenze freeware o, meglio, "open source". La caratteristica principale di questo tipo di licenza è che obbliga chi distribuisce il software ad allegarvi i sorgenti, cioè il codice scritto dall'autore. Tutte le altre licenze hanno una clausola in cui si vieta la decompilazione, cioè la ricerca di parti di codice a partire dai file eseguibili, mentre le licenze "open source" danno a tutti gli utenti la possibilità di vedere come è strutturato il software, a costo ovviamente di conoscere il linguaggio in cui è stato scritto il programma. Ma rendere disponibile il sorgente non basta: per essere veramente "open source", un programma deve soddisfare alla "Open source definition", una serie di condizioni scritte dai coordinatori di uno dei principali progetti open source di oggi, la distribuzione Debian Linux, ed ormai approvate da tutta la comunità dell'open source.
La "OPEN SOURCE DEFINITION"Questo tipo di licenze sono molto meno restrittive per quanto riguarda la distribuzione la modifica del software, ma al contempo tengono conto dei diritti degli autori. Il software open source non è "terra di nessuno", ma software soggetto a copyright degli autori, e ciascun punto della Open source definition è rivolto alla tutela dell'autore ed al miglioramento del software secondo un modello di tipo "bazaar".
La definizione di metodi "a cattedrale" e "a bazaar" è di Eric S. Raymond, nel suo famoso documento "The cathedral and the bazaar". Facciamo l'esempio di un prodotto software "usuale" e di un prodotto open source.
Nel primo caso lo sviluppo viene fatto da poche persone, i dipendenti dell'azienda. Il tempo che passa tra il rilascio di una versione e quello della successiva è lungo. Se un utente ha un problema, può solo comunicarlo alla ditta produttrice, e non risolverlo da solo. Lo sviluppo del software è quindi paragonabile a una cattedrale, dove tutti stanno in silenzio a meditare. Nel caso di un software open source, l'autore crea una base minima del programma, e lo rilascia al pubblico. Gli utenti, avendo il codice sorgente, non si devono limitare a constatare un problema, ma possono risolverlo e inviare la correzione all'autore, che quindi emanerà una nuova versione del software. Se il progetto è di una certa dimensione, l'autore (che diventerà coordinatore del progetto) può delegare quello che vuole ad altri. Lo sviluppo di questo tipo viene detto "a bazaar". Se voglio creare un prodotto non open source, devo cominciare da zero, perchè non ho disponibili i sorgenti di altri programmi simili.
Se voglio fare lo stesso per un programma open source, posso tranquillamente utilizzare il codice già scritto da altri e disponibile in rete. È chiaro dunque che, anche se un prodotto proprietario può contare sul supporto economico di un'azienda, i prodotti open source sono sostenuti da una rete di contributi che non solo rendono più veloce il loro sviluppo, ma riescono ad andare a coprire proprio le necessità degli utenti.
Cos'è Linux? Linux è un sistema operativo open source, reperibilein internet o acquistabile in cd-rom a cifre molto basse, che gira sui PC e su calcolatori di diverso tipo, quali Mac, Alpha ed altri. Contiene tutte le funzionalità più avanzate dei sistemi operativi moderni (uso della rete, ambiente grafico, ambienti di sviluppo... e persino giochi) e funziona decisamente meglio dei sistemi della monopolista Microsoft.
L'approccio di base è di tipo unix, ma ha al suo interno anche strumenti di compatibilità avanzati con gli altri tipi di sistema operativo, come ad esempio per la gestione dei protocolli di rete di Microsoft, per la condivisione di file e stampanti con le macchine windows, per la lettura e scrittura di dischi formattati Ms-DOS, Windows, Mac ed altro ancora.
Comprende anche dei programmi di emulazione per poter utilizzare programmi scritti per altri tipi di Unix, per DOS e per Windows.
Linux fu creato nei primi anni '90 da uno studente finlandese, Linus Torvalds, che, come esercizio, pensò di migliorare il sistema Unix con sorgenti disponibili allora allora più diffuso, Minix. L'intuizione di Linus lo portò a rendere disponibile la prima versione del nucleo del suo sistema operativo, la 0.02, e chiedere ai frequentatori della rete di dargli una mano a svilupparlo. Oggi il kernel di Linux è arrivato alla versione stabile 2.0.36 ed alla versione di sviluppo 2.1.131 e, pur essendo sempre coordinato da Linus, viene sviluppato cooperativamente da centinaia di programmatori di tutto il mondo e chiunque può contribuire.
Linux può essere scaricato dalla rete senza nessun costo aggiuntivo, o se ne può acquistare un CD-ROM, di cui viene pagato solo il supporto fisico (il cofanetto Infomagic, uno dei più diffusi, contiene 6 cd-rom con le principali distribuzioni di Linux e viene commercializzato a circa 40mila lire).
Anche se Linux in sè è disponibile gratuitamente, diverse ditte hanno costruito delle "distribuzioni", che possono essere considerate delle versioni "impacchettate" di Linux. Le maggiori distribuzioni includono il kernel di Linux, il supporto di rete, centinaia di programmi, software di sviluppo, una o più interfacce grafiche e molto di più.
Oltre a tutto questo, le distribuzioni includono un qualche programma di installazione e molte anche l'assistenza.
Abbiamo dunque che il kernel di Linux viene distribuito insieme a molti altri programmi open source; la maggior parte di essi sono presi dal progetto GNU (una definizione ricorsiva per "GNU's Not Unix", un sistema Unix open source, migliore degli altri Unix); questo progetto, fondato dal padre del software libero, Richard Stallman, raccoglie sotto di sè innumerevoli programmi, tutti open source e soggetti a licenza GPL. Stallman fu il primo ad intuire che anche i programmatori che volevano lasciare "liberi" i loro programmi dovevano essere tutelati da un copyright... dato che questo tipo di copyright non pone restrizioni sull'utilizzo del software, ma cerca di tutelare la libertà del software stesso, in modo che nessuno possa appropriarsi di codice libero e utilizzarlo per scrivere software commerciale, viene anche chiamato "copyleft", con l'ironia tipica dei programmatori, che poverini, stando tutto il giorno davanti ad un monitor devono trovare qualcosa con cui divertirsi ;-)
Linux, dunque, o meglio GNU/Linux, è uno dei principali esempi del fatto che il software open source è ormai una realtà dell'informatica dioggi. Linux viene usato come server di rete nelle università e da molti fornitori italiani (e non solo) di servizi internet.
Viene utilizzato nelle amministrazioni pubbliche (ad esempio per la rete di controllo dei trasporti pubblici in Trentino o per la rete della provincia di Pesaro), per la gestione di grandi quantità di dati, come nel caso dei principali esperimenti dell'Istituto Nazionale per la Fisica Nucleare, o addirittura per la creazione degli effetti speciali nel film "Titanic", e per molte altre cose.
Linux può girare efficacemente anche su computer "di scarto", come i 386 e i 486, permettendo una vita più lunga per l'hardware utilizzato (al contrario dei sistemi di tipo Windows che richedono un aggiornamento dell'hardware - e del software - continuo, comportando spese molto ingenti), e quindi può essere anche impiegato per lo sviluppo sostenibile di aree in via di sviluppo, e diminuisce l'inquinamento dovuto allo scarto di materiale scarsamente riciclabile come i vecchi computer.
Linux ha alle sue spalle un supporto tecnico estremamente efficace, formato da tutti i programmatori e gli appassionati del sistema operativo, che su Internet, a titolo volontario, forniscono aiuto a chi ne ha bisogno. È inoltre corredato da una grande mole di documentazione a tutti i livelli, per la maggior parte in inglese, ma che sta venendo tradotta anche in italiano, che permette a chiunque di accedere alle possibilità del sistema.
La metodologia di sviluppo di Linux permette anche un adattamento velocissimo agli eventuali problemi di sicurezza che si vengono a creare: essendo disponibili i sorgenti, chiunque può apportare le modifiche per chiudere un buco di sicurezza, ed è provato dall'esperienza che la diffusione di tali modifiche è molto più rapida che nel caso dei sistemi commerciali, dove questi aggiornamenti "fuori programma" sono molto lenti, se anche vengono fatti.
La domanda che mi sento fare a questo punto è "se è tutto così bello perché non avevo mai sentito nominare Linux?".
Da un lato perché l'uomo più ricco del mondo può autocelebrarsi ed essere celebrato mentre noi possiamo solo fare passa-parola. Dall'altro perché in effetti dei problemi ci sono, e nemmeno io a volte mi sento di proporre una macchina Linux.
Il nostro sistema è certamente più difficile da usare di un sistema Windows, anche se molto è semplicemente una questione di abitudine: il sistema di tutti è noto, il sistema diverso rompe con le nostre abitudini. In parte la difficoltà maggiore è una realtà, perché trattandosi di un sistema multi-utente talvolta bisogna scontrarsi con problematiche di amministrazione di sistema (ma, allo stesso modo, NT richiede competenze da amministratore di sistema: questo è tÈ chiaro dunque che, anche se un prodotto proprietario può contare sul supporto economico di un'azienda, i prodotti open source sono sostenuti da una rete di contributi che non solo rendono più veloce il loro sviluppo, ma riescono ad andare a coprire proprio le necessità degli utenti.
Chi ha familiarità con il mondo di internet sicuramente è venuto a contatto con degli esempi di software open source, anche se probabilmente non se ne è mai accorto: il DNS, che gestisce le corrispondenze tra indirizzi numerici (del tipo 192.168.1.2) e letterali (del tipo www.pluto.linux.it) è un software open source.
Cos'è Linux? Linux è un sistema operativo open source, reperibilein internet o acquistabile in cd-rom a cifre molto basse, che gira sui PC e su calcolatori di diverso tipo, quali Mac, Alpha ed altri. Contiene tutte le funzionalità più avanzate dei sistemi operativi moderni (uso della rete, ambiente grafico, ambienti di sviluppo... e persino giochi) e funziona decisamente meglio dei sistemi della monopolista Microsoft.
L'approccio di base è di tipo unix, ma ha al suo interno anche strumenti di compatibilità avanzati con gli altri tipi di sistema operativo, come ad esempio per la gestione dei protocolli di rete di Microsoft, per la condivisione di file e stampanti con le macchine windows, per la lettura e scrittura di dischi formattati Ms-DOS, Windows, Mac ed altro ancora.
Comprende anche dei programmi di emulazione per poter utilizzare programmi scritti per altri tipi di Unix, per DOS e per Windows.
Linux fu creato nei primi anni '90 da uno studente finlandese, Linus Torvalds, che, come esercizio, pensò di migliorare il sistema Unix con sorgenti disponibili allora allora più diffuso, Minix. L'intuizione di Linus lo portò a rendere disponibile la prima versione del nucleo del suo sistema operativo, la 0.02, e chiedere ai frequentatori della rete di dargli una mano a svilupparlo. Oggi il kernel di Linux è arrivato alla versione stabile 2.0.36 ed alla versione di sviluppo 2.1.131 e, pur essendo sempre coordinato da Linus, viene sviluppato cooperativamente da centinaia di programmatori di tutto il mondo e chiunque può contribuire.
Linux può essere scaricato dalla rete senza nessun costo aggiuntivo, o se ne può acquistare un CD-ROM, di cui viene pagato solo il supporto fisico (il cofanetto Infomagic, uno dei più diffusi, contiene 6 cd-rom con le principali distribuzioni di Linux e viene commercializzato a circa 40mila lire).
Anche se Linux in sè è disponibile gratuitamente, diverse ditte hanno costruito delle "distribuzioni", che possono essere considerate delle versioni "impacchettate" di Linux. Le maggiori distribuzioni includono il kernel di Linux, il supporto di rete, centinaia di programmi, software di sviluppo, una o più interfacce grafiche e molto di più.
Oltre a tutto questo, le distribuzioni includono un qualche programma di installazione e molte anche l'assistenza.
Abbiamo dunque che il kernel di Linux viene distribuito insieme a molti altri programmi open source; la maggior parte di essi sono presi dal progetto GNU (una definizione ricorsiva per "GNU's Not Unix", un sistema Unix open source, migliore degli altri Unix); questo progetto, fondato dal padre del software libero, Richard Stallman, raccoglie sotto di sè innumerevoli programmi, tutti open source e soggetti a licenza GPL. Stallman fu il primo ad intuire che anche i programmatori che volevano lasciare "liberi" i loro programmi dovevano essere tutelati da un copyright... dato che questo tipo di copyright non pone restrizioni sull'utilizzo del software, ma cerca di tutelare la libertà del software stesso, in modo che nessuno possa appropriarsi di codice libero e utilizzarlo per scrivere software commerciale, viene anche chiamato "copyleft", con l'ironia tipica dei programmatori, che poverini, stando tutto il giorno davanti ad un monitor devono trovare qualcosa con cui divertirsi ;-)
Linux, dunque, o meglio GNU/Linux, è uno dei principali esempi del fatto che il software open source è ormai una realtà dell'informatica dioggi. Linux viene usato come server di rete nelle università e da molti fornitori italiani (e non solo) di servizi internet.
Viene utilizzato nelle amministrazioni pubbliche (ad esempio per la rete di controllo dei trasporti pubblici in Trentino o per la rete della provincia di Pesaro), per la gestione di grandi quantità di dati, come nel caso dei principali esperimenti dell'Istituto Nazionale per la Fisica Nucleare, o addirittura per la creazione degli effetti speciali nel film "Titanic", e per molte altre cose.
Linux può girare efficacemente anche su computer "di scarto", come i 386 e i 486, permettendo una vita più lunga per l'hardware utilizzato (al contrario dei sistemi di tipo Windows che richedono un aggiornamento dell'hardware - e del software - continuo, comportando spese molto ingenti), e quindi può essere anche impiegato per lo sviluppo sostenibile di aree in via di sviluppo, e diminuisce l'inquinamento dovuto allo scarto di materiale scarsamente riciclabile come i vecchi computer.
Linux ha alle sue spalle un supporto tecnico estremamente efficace, formato da tutti i programmatori e gli appassionati del sistema operativo, che su Internet, a titolo volontario, forniscono aiuto a chi ne ha bisogno. È inoltre corredato da una grande mole di documentazione a tutti i livelli, per la maggior parte in inglese, ma che sta venendo tradotta anche in italiano, che permette a chiunque di accedere alle possibilità del sistema.
La metodologia di sviluppo di Linux permette anche un adattamento velocissimo agli eventuali problemi di sicurezza c