E Se…

11 agosto 2013

Qualche tempo fa si scherzava tra nerd, e qualcuno tra serio e faceto esclamo’ “Pensate se Free Software Foundation avesse finito Hurd ed il sistema operativo GNU fosse stato completo!”. Io ridacchiai, pensando allo stato attuale di Hurd e alla definizione di “finito”. Dopo un secondo mi son fatto serio. E dopo un altro secondo mi e’ stato impossibile evitare di dichiarare ad alta voce “Sarebbe stata la catastrofe”.

Come immagino tutti i lettori di questo blog sanno (e se no, sapevatelo) nell’era pre-opensource Stallman e compagnia si erano messi in testa di fare un sistema operativo completamente libero, e dopo aver scritto l’editor di testo per scrivere il codice, il compilatore per compilarlo, ed il debugger per debuggarlo, si piantarono nell’implementazione del kernel. Ovvero il pezzo che serviva ad eseguirlo, quello che stando a quanto che mi hanno insegnato all’universita’ e’ il sistema operativo propriamente definito. E, posti dinnanzi alla difficile scelta di rimandare il raggiungimento dell’obiettivo primario al 2043 o di sfruttare l’alternativa che gli era stata presentata su un piatto d’argento – il kernel Linux sviluppato da Linus Torvalds dalla parte opposta del pianeta – fecero buon viso a cattivo gioco ed optarono per la seconda, iniziando a costruire intorno ad esso. A cio’ si deve la doppia dicitura GNU/Linux, che a tutt’oggi caratterizza pressoche’ tutte le distribuzioni installate sui nostri PC e buona parte di grane e grattacapi all’interno della community.

E’ successo pero’ che Stallman e Torvalds non siano proprio sempre d’accordo su tutto: il primo ha una visione estremamente rigida ed inflessibile sulla liberta’ del software, il secondo ha un approccio piu’ libertario e pragmatico. Ed e’ cosi’ che al kernel Linux possono essere agganciati anche moduli non liberi senza eccessivi patemi, permette di inizializzare i driver con informazioni che si trovano in file di firmware pre-compilati, e contiene esso stesso blob binari di cui nessuno ha il codice sorgente che li ha generati. Insomma: una buona parte dell’hardware supportato da Linux, e’ supportato – che lo si voglia o no – in virtu’ di componenti tutt’altro che liberi. E tutti sappiamo quanto il supporto all’hardware sia fattore enormemente critico nella diffusione, soprattutto in ambiente desktop.

Se FSF avesse completato Hurd, non avesse dovuto ricorrere a Linux come kernel del proprio sistema, e non avesse dovuto dipendere dal reazionario Torvalds, tutto questo semplicemente non sarebbe successo: niente driver proprietari, niente blob binari, niente supporto hardware, e niente pubblico. Stallman lo ha sempre espressamente dichiarato: l’importante e’ garantire la massima apertura del codice, non raggiungere il piu’ ampio numero possibile di persone; data questa premessa mai si sarebbe piegato ad accettare compromessi nel suo sistema, e certo nessuno lo avrebbe supplicato per farlo. Qualcuno potra’ oggi sostenere che in fin dei conti le odierne gNewSense e Trisquel, distribuzioni “halal” benedette da Free Software Foundation che montano una versione speciale del kernel Linux “epurato” dai bit proibiti, in fin dei conti riconoscono una buona quantita’ di dispositivi – benche’ mai tanti quanti una piu’ lasciva Ubuntu – ma va detto che a questo punto ci siamo arrivati solo dopo venti anni di lenta ma costante espansione ed un coinvolgimento di un numero massivo di sviluppatori; se l’esperienza Linux (o in questo caso GNU) non fosse stata in un certo qual modo semplificata e resa piu’ morbida fin dall’inizio, sarebbe stato ben difficile avere tale progressivo coinvolgimento.

Ma va considerato anche un altro aspetto, meno appariscente ma probabilmente piu’ rilevante: GNU sarebbe stato certamente un sistema operativo libero, ma molto poco opensource. Fin dall’inizio della sua missione Stallman non si e’ mai dimostrato particolarmente incline ad accettare patch e correzioni dal mondo esterno, come ci racconta Eric Raymond nel celeberrimo “La Cattedrale ed il Bazaar” (nel saggio, Emacs e GCC rientrano nella categoria “Cattedrale”), e il “caso GnuTLS” del dicembre scorso ci racconta che le cose non sono cambiate nel tempo: a fronte di alcuni contrasti con lo sviluppatore principale appunto di GnuTLS in merito alla governance interna del progetto GNU, saltarono fuori dichiarazioni del calibro di “There is no process for decision making or transparency in GNU. The only existing process I saw is ‘Stallman said so'”. Torvalds non e’ uno stinco di santo e lo sappiamo tutti (per dirne due: CFS e ReiserFS 4), ma e’ legittimo chiedersi quanti componenti, anche importanti, non sarebbero stati inclusi nel kernel GNU sotto una guida puritana ed ortodossa: l’implementazione del protocollo SMB, indispensabile per interoperare con la condivisione file di Windows? I vari moduli per la virtualizzazione, che a loro volta permettono di eseguire altri sistemi operativi non necessariamente liberi? Per non parlare del supporto al DRM, che ha determinato una apertura spaccatura tra Torvalds e Stallman.

“Altola’! Hurd e’ sempre stato progettato come un micro-kernel, dunque chiunque avrebbe potuto implementare i suoi moduli anche senza il permesso di Stallman, ci sarebbero state tutte le funzioni del mondo e avremmo potuto cantare Kumbaya nudi sulla spiaggia!”. O forse no. Torvalds stesso, nel primo annuncio assoluto del suo kernel amatoriale, prendeva le distanze dal progetto GNU definendolo “professionale”: qualcosa di lontano, intoccabile, etereo. Vien da pensare che non fosse l’unico a vederla cosi’ – anche in funzione della gia’ citata tendenza a non accogliere in modo particolarmente entusiastico i contributi provenienti dai comuni mortali fuori da FSF – e che dunque il mondo GNU sia sempre stato visto – e sempre sarebbe stato visto – come un mondo parallelo. Talmente parallelo che, forse, non ci sarebbero neppure state “distribuzioni” messe insieme spontaneamente dalla community, come nella notte dei tempi e’ successo per Debian e Slackware: perche’ occuparsene, quando ci avrebbe pensato gia’ FSF? E delle distribuzioni “commerciali”, manco a parlarne: se mai una Red Hat o una Novell avessero messo mano a GNU, lo avessero compilato per proprio conto, e per una qualche necessita’ di esigenza dei propri clienti ci avessero aggiunto anche per sbaglio un qualche componente proprietario (cosa assai facilmente credibile, soprattutto all’inizio, quando necessariamente non ci poteva ancora essere una implementazione libera di ogni cosa), la contro-propaganda sarebbe stata sufficientemente spinta da fare terra bruciata intorno all’aspirante imprenditore. Gia’ oggi possiamo osservare l’attitudine dei nostri alla polemica nei confronti di Canonical, che, pur talvolta andando oggettivamente oltre il lecito, prova a far sfondare la sua Ubuntu sul mercato di massa benche’ la Fondazione non perda una singola occasione per muovere rimostranze piu’ o meno fondate (e, conseguentemente, tenendo lontani i potenziali collaboratori esterni al progetto open); figurarsi se fossero ancor piu’ direttamente toccati dalla questione, ovvero se Canonical cercasse di “manomettere” il loro proprio sistema operativo!

Alla luce di tutte queste considerazioni, c’e’ di che’ ringraziare che le cose siano andate cosi’ come sono andate. Il governo delle larghe intese gnulinuxaro, in cui devono necessariamente convivere scuole di pensiero diverse e persino contrastanti, forse non e’ il migliore possibile ma, pur non facendo contento nessuno (esattamente come la sua controparte parlamentare italiana) permette di non eccedere in nessuna direzione ed avere un ambiente bilanciato tra principi e pragmatismo (contrariamente alla sua controparte parlamentare italiana).

E se ci fosse stato Hurd? Sarebbe stata la catastrofe.

Una Risposta to “E Se…”


  1. […] E Se… GNU/Linux o Hurd ::: MadBob […]


Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...