Come mai Linux funziona così bene ?
 

Dicevo... avevo promesso di cercare di spiegarvi come mai Linux funziona così bene ed è diventato il pinguino più famoso del mondo :) ... be', cominciamo.

Preciso che nelle argomentazioni che seguono faccio riferimento a fatti veri e concreti, ma che ovviamente l'analisi del tutto e le conclusioni che ne traggo sono per forza di cose in buona parte personali e opinabili, e che probabilmente anche all'interno del mondo Linux potrete trovare punti di vista diversi dal mio.

Be'... non pretendo che mi crediate tanto facilmente, dato che, nonostante l'entusiasmo e la simpatia che ho subito avuto per Linux, nel tempo più volte ho continuato a fare il S. Tommaso e ad aspettarmi che i corrispondenti prodotti proprietari mi offrissero di più... ma quasi sempre ho dovuto alla fine constatare che il mondo del software libero non mi dava affatto di meno, anzi, spesso mi dava di più. Aggiungo che tuttora ogni tanto faccio fatica a capire come gli gli sviluppatori Open Source riescano a vivere senza vendere licenze d'uso... eppure sta di fatto che vivono e spesso vivono anche bene, ad esempio vendendo non il loro software ma tutti i servizi ad esso associati.

Ma cominciamo ad affrontare l'argomento. Prima di tutto, qualche esempio per convincerci che non stiamo parlando di aria fritta e che, anzi, il modello di sviluppo aperto (Open Source) del software porta a risultati evidentemente migliori nella stragrande maggioranza dei casi. Negli esempi che seguono confronto prodotti liberi con ciò che la Microsoft produce per cercare di offrire altrettanto; mi direte: "ma insomma, non prendertela coi bambini"... che volete che vi risponda... coi bambini normalmente è più facile averla vinta ;) (anche se ci sono eccezioni importanti). Inoltre scelgo come termine di paragone la Microsoft perché, nell'ambito delle aziende che sviluppano software proprietario, è una delle poche (forse l'unica) ad essere rimasta completamente chiusa e avversa alla logica del software libero, mentre quasi tutte le altre stanno rendendosi conto che il mondo Open Source continua a crescere e stanno assumendo nei suoi confronti un atteggiamento sempre più aperto (la SUN Microsystems, leader mondiale in importanti fasce dell'Informatica, costituisce un esempio eccellente in merito).

Esempio n. 1: Sicurezza

È fin troppo risaputo che da questo punto di vista Windows NT è semplicemente un colabrodo. Anche se, offrendo meno servizi, potenzialmente offre meno vie d'accesso a uno sfondatore (cracker), qualunque esperto di sicurezza vi dirà che Windows NT è la negazione del concetto di sicurezza: un famoso esperto, alla richiesta di parlare di "Windows NT e la sicurezza", rispose qualcosa del tipo "... un momento... devo parlare di Windows NT oppure di sicurezza ?". Qualche esempio ? Non ne servono molti, basta ricordare che in USA l'FBI sui suoi server Web ha dovuto abbandonare Windows NT semplicemente per disperazione, visto che non c'era verso di renderlo ragionevolmente sicuro; inoltre, credo che molti abbiano sentito parlare di un ragazzino di 18 anni che senza tanti problemi è riuscito ad avere accesso non autorizzato a un "server" Windows NT e a carpirgli la carta di credito di Bill Gates... no comment !

Esempio n. 2: Tempi di sviluppo

Nonostante i fiumi di denaro e la quantità di sviluppatori che la Microsoft ha coinvolto nello sviluppo di Windows 2000 (alias NT 5.0), ha ottenuto un prodotto che per la data di rilascio era evidentemente lontano dalla maturità e che quindi avrebbe ragionevolmente richiesto altri mesi. Inoltre, per riuscire a rimettere le mani nel confuso groviglio del codice di Windows NT 4.0, la Microsoft ha dovuto richiamare dalla pensione di corsa e a suon di quattrini un certo numero di coloro che si erano occupati da vicino dello sviluppo di NT 4.0. Nello stesso periodo di tempo intercorso tra i rilasci di Windows NT 4.0 e 5.0, il mondo Linux ha fatto quasi in tempo a produrre non una, ma due release del kernel: dalla 2.0 alla 2.2 e dalla 2.2 alla 2.4, che è ormai dietro l'angolo. E questo nonostante gli sviluppatori di Linux siano sparsi in giro per il mondo e Linus Benedict Torvalds si occupi dello sviluppo del kernel come seconda attività: per chi non lo dovesse sapere, Linus Torvalds lavora in Transmeta; per sua scelta non si è mai arricchito tramite Linux (mentre altri ci hanno onestamente guadagnato un mare di quattrini) e ha sempre voluto che per lui lavorare a Linux rimanesse un diletto come era all'inizio e non diventasse mai un lavoro vero e proprio.

Esempio n. 3: Qualità del prodotto finale

L'affidabilità di Windows NT 2000 è assolutamente ridicola, fare un confronto sarebbe semplicemente irriverente nei confronti di Linux. Inoltre i benchmark pubblicati da fonti indipendenti tanto da Microsoft quanto dal mondo Open Source, dimostrano che Windows NT è irrimediabilmente lento e Linux lo surclassa su tutta la linea, su certe cose con proporzioni semplicemente strepitose: riguardo al alcuni parametri prestazionali dei server Web, Linux + Apache va tranquillamente 2-3 volte più veloce di Windows NT + IIS... Per non parlare delle risorse richieste: Windows NT 5.0 richiede 64 mega di RAM solo per fare il boot... mentre con gli stessi mega potete mettere in piedi con Linux un server Web coi controfiocchi... e analoghe proporzioni valgono per l'occupazione su disco rigido.

Esempio n. 4: Qualità della vita dei programmatori

Normalmente, i programmatori Open Source sviluppano con gioia i prodotti a cui lavorano; inutile precisare che, per forza di cose, questo non è sempre vero per chi sviluppa software proprietario. Ma il problema più serio sta nel fatto che, nonostante le montagne di quattrini che la Microsoft fa muovere nel mondo e nonostante Bill Gates e altri come lui si siano arricchiti in maniera inverosimile, un'ampia percentuale dei programmatori Microsoft percepisce stipendi da fame, tranquillamente inferiori a quelli che in Italia vengono percepiti da operai non qualificati o dalle donne delle pulizie. Quindi a quanto pare non è affatto detto che chi sviluppa software a pagamento stia economicamente in condizioni migliori di chi sviluppa software libero... anzi.

Esempio n. 5: Diffusione (e poi la smetto ;)

La diffusione di Linux è in rapida e continua crescita. Nel mondo dei server Web, Linux ha superato da tempo Windows NT, ora è usato quasi da un server Web su 3. Da sempre la Microsoft si preoccupa di prevalere non grazie alla qualità di ciò che produce, ma mediante strategie commerciali scorrette e tramite l'uso di "formati" e algoritmi chiusi e proprietari: ad esempio, anche se Microsoft Office ha molti difetti e costa enormemente di più dei prodotti ad esso alternativi (Word Perfect Office costa 5-10 volte di meno, Star Office è addirittura gratis, ecc. ecc.), molti sono quasi costretti a continuare a usarlo dato che, non facendo riferimento a nessuno standard, risulta di fatti non del tutto compatibile con i prodotti ad esso alternativi... tipico esempio di situazione in cui la Microsoft combatte gli avversari impedendo la libera concorrenza. Ma ovviamente esistono dei campi dove la Microsoft non riesce a giocare sporco oltre certi limiti: ad esempio Internet è basata su protocolli di comunicazione che, per forza di cose, fanno riferimento a degli standard universalmente accettati (anche perché Internet è nata molto prima che Bill Gates se ne interessasse). In questi campi la Microsoft non riesce a primeggiare praticamente su nulla. L'esempio più notevole è costituito dal server Web Apache (quello che viene usato anche su Linux), che viene usato quasi da 2 server Web su 3 nel mondo... anche in questo caso, parliamo di un prodotto gratuito, che, stando a risultati di indagini statistiche (sui quali a quanto pare nessuno ha avuto molto da obiettare, anche perché ottenuti anche questi da fonti indipendenti), è la scelta preferita non solo sui Sistemi Operativi liberi come Linux, ma anche sui Sistemi Operativi proprietari.

Si potrebbero fare molti altri esempi, ma direi che, per gli scopi di questa disquisizione, quelli fatti possono già bastare.

Perché il modello Open Source risulta vincente in questi esempi ?

È ovvio che a questo punto sorge spontanea la domanda: ma perché questi vantaggi derivano dal modello di sviluppo aperto (Open Source) del software ?

Dal mio punto di vista, la risposta è semplicissima. Proviamo a fare un parallelo tra il mondo della Ricerca Scientifica e il mondo dell'Informatica. Credete che il mondo della Ricerca Scientifica avrebbe progredito altrettanto se le grandi scoperte fatte nella Storia fossero rimaste segrete ? Il progresso scientifico e dell'Umanità è inscindibilmente legato alla diffusione della cultura, della conoscenza, delle grandi scoperte... e solo chi conosce riesce ad essere libero (tutte le grandi dittature si sono rette in buona misura sull'ignoranza, oltre che sulla povertà). Se le leggi della Fisica, della Chimica, della Meccanica, ecc. fossero segreti industriali di una certa azienda, non sarebbe possibile per nessun'altra azienda sfruttare la conoscenza delle stesse leggi per ottenere motori a scoppio e automobili sempre migliori... e inevitabilmente ci troveremmo a usare automobili molto più costose e di qualità decisamente inferiore.

A parte le eccezioni che confermano la regola, nella storia non è stato messo in discussione che le scoperte scientifiche siano e debbano essere patrimonio dell'intera Umanità. E nonostante questo, chi ha lavorato per la Ricerca non necessariamente ha vissuto nell'indigenza, anzi normalmente è vero il contrario. Inoltre, anche se oggi la Relatività è un patrimonio di tutti, nessuno mette in discussione che sia stata scoperta da Albert Einstein, cioè nessuno discute la paternità delle scoperte scientifiche. Infine, la diffusione della conoscenza non ha alterato negativamente la situazione di concorrenza nei vari campi della produzione: la Fiat e la Ford sviluppano motori a scoppio facendo riferimento alle stesse leggi fisiche e chimiche, e il fatto che entrambe le aziende hanno accesso alla conoscenza di tali leggi non impedisce che possa esserci una concorrenza leale tra tali aziende, così come non comporta un appiattimento del mercato: nulla impedisce che una delle due aziende possa dimostrarsi capace di sfruttare tali conoscenze meglio dell'altra... quindi in generale la diffusione della conoscenza non danneggia le aziende e la leale concorrenza tra di esse.

La mia impressione è che evidentemente le stesse considerazioni possano in buona misura essere valide anche per il mondo dell'Informatica e riguardo allo sviluppo del software. Che cosa voglio dire ? Che il mondo dell'Informatica progredisce più rapidamente liddove il software viene lasciato libero e viene reso patrimonio di tutti (leggi "Linux"). Che Linux e Apache sono liberi, ma nessuno si permette di mettere in discussione la loro paternità. Che Linux e Apache sono liberi per tutti, ma che questo non comporta affatto un appiattimento del mercato relativo al Web: tra le aziende che usano Linux e Apache ci sono quelle che crescono e si affermano, così come quelle che vivacchiano o falliscono.

Se ami qualcuno, lascialo libero...

Rilasciare liberamente il software significa anche permettere ad altri di leggerlo, di imparare da esso, di valutarlo, giiudicarlo, emendarlo... infine di migliorarlo continuamente. C'è chi obietta che questo modello di sviluppo aperto non è adatto a situazioni in cui è importante la sicurezza: se un software è pubblicamente noto, chiunque può individuare eventuali difetti di sicurezza e violare i sistemi che lo usano. Sta di fatti che, richiamando uno degli esempi precedenti, Windows NT, il cui codice sorgente non è pubblicamente noto, viene regolarmente violato ed è estremamente meno sicuro di Linux. Infatti, in qualunque corso serio riguardante la sicurezza, tra le prime cose si insegna che la sicurezza di un algoritmo non può e non deve risiedere nella sua segretezza, bensì nell'impossibilità di forzarlo pur conoscendolo. Un esempio evidente di tutto ciò: oggi la sicurezza nel transito su Internet delle informazioni riservate si basa sul Secure Socket Layer, protocollo sviluppato dalla Netscape Corporation, le cui specifiche sono pubblicamente note... la sicurezza non sta nella segretezza del protocollo, ma nel fatto che, pur conoscendolo, non si riesce a forzarlo in un tempo confrontabile con la durata della vita di un uomo. E lo stesso vale per il software: un programma è sicuro quando anche chi lo conosce in ogni suo dettaglio non riesce a violarlo, non quando il suo codice non viene rilasciato... anche perché di un programma di cui non viene rilasciato il codice sorgente, può sempre essere esaminato il codice assembler prodotto a valle della compilazione e distribuito da produttore... e anche lì si possono individuare punti deboli in termini di sicurezza.

Ultima considerazione: perché sto parlando di software "libero" e non di software "gratuito" ? Non certo per caso. Continuiamo con il parallelo con la conoscenza delle scoperte scientifiche. Nei Paesi civili viene riconosciuto a tutti il diritto all'Istruzione; ma questo non vuol dire che la diffusione della conoscenza non abbia un suo costo (anche se in parte se ne può far carico lo Stato). Anche quando si usufruisce di lezioni private ad esempio di Matematica, nessuno discute che tali lezioni siano a pagamento... e anche se venissero fatte gratuitamente, avrebbero pur sempre un loro costo (gestione e manutenzione della stanza in cui si svolgono le lezioni, materiale di cancelleria, ecc.). Ma ciò non toglie che le nozioni e i concetti che vengono acquisiti andando a lezione di Matematica siano, passatemi il termine, "liberamente ridistribuibili e condivisibili col resto del mondo". Insomma, nessun Professore di Matematica potrà mai vietarvi di insegnare ad altri ciò che imparate da lui; quindi sostenete delle spese per ottenere una conoscenza liberamente ridistribuibile, con il solo limite di non poter a vostra volta limitare il diritto di ridistribuzione da parte di coloro a cui comunicherete ciò che avete imparato.

... e impedisci a chiunque di limitare la sua libertà

La licenza GNU GPL (General Public License), in fin dei conti, afferma la stessa cosa, riferendosi al software. La GPL è piuttosto articolata ed è molto interessante e piacevole da leggere, ma i punti più importanti secondo me sono proprio questi, molto molto sinteticamente:

Faccio presente che l'ultimo punto è forse il più importante: nel rilasciare un software libero, non devo preoccuparmi solo di garantirne la libertà d'uso... devo anche assicurarmi che nessuno abbia il diritto di appropriarsi di ciò che ho donato e di limitarne la libertà d'uso, ad esempio rilasciandone sotto copyright proprietario una versione modificata, magari senza rilasciarne il codice sorgente.

Insomma...

se ami qualcuno, lascialo libero... e impedisci a chiunque di limitare la sua libertà.

Ciao a tutti e alla prossima :)


Questo testo viene rilasciato sotto la GNU FDL (Free Documentation License).
Tutte le sue sezioni sono da considerare non modificabili.

Debian Apache Powered by PHP Layers Menu Valid XHTML 1.0! Valid CSS!