Blob, il binario che uccide… il free software


Va bè dai! Lasciamo perdere il titolo.😀

Questo post nasce in verità da una serie di articoli che ho letto e relativi commenti circa alcune distribuzioni che adottano una politica molto ferrea circa la pulizia della distro stessa da qualsiasi software rilasciato solamente in  forma binaria o comunque non rispondente ai requisiti che definiscono un software libero.

Le reazioni di molti sono state alquanto aspre relativamente a tali scelte. Ho letto pareri decisamente contrari, ad esempio, riguardanti la distribuzione gNewSense che sarebbe una Ubuntu ripulita da qualsiasi software non libero. gNewSense veniva etichettata come inutile, spreco di risorse hardware e altri commenti tutt’altro che piacevoli in quanto la mancanza soprattutto di driver chiusi causerebbe l’impossibilità da parte di alcuni dispositivi (come alcuni dongle wireless ecc…) di funzionare correttamente.

Ho letto anche che è bene accettare blob binari nel kernel linux poiché avere un sistema che funziona aiuta a diffonderlo ed un linux che sostituisce Windows o OsX porta comunque più libertà.

Questo concetto è vero fino ad un certo punto poiché ovviamente sostituire un utente Windows con un utente Linux altrettanto chiuso in realtà non porta una vera alternativa. Nulla si vuole togliere agli utenti che desiderano avere tutto pronto e funzionante out of the box e non gli importa come ma incentivare l’immissione nell’universo Linux di software non free non fa altro che portare ad  una continua chiusura del sistema. La mia soddisfazione a breve termine nel vedere che la mia scheda wireless funzioni egregiamente sotto Ubuntu grazie a driver proprietari in realtà farà si che non si avrà mai un’alternativa libera poiché la casa produttrice non avrà alcun interesse a rilasciare le specifiche dei suoi prodotti.

Veniamo comunque a discorsi un po’ più pratici. Windows è solitamente considerato un sistema instabile con parecchi problemi e questa è una verità de facto. Tuttavia sono pochi ad aver realizzato che “parte” dei problemi di questo sistema dipendevano dalla immensa mole di driver distribuiti da terzi e non controllabili dagli sviluppatori del sistema operativo.

Addirittura Microsoft conserva un database con i driver che per certo danno problemi di stabilità (avete presente anche i BSOD ?) del sistema. Questo può avvenire per molte ragioni:

  • L’interfaccia del sistema operativo o i meccanismi interni cambiano ma il produttore del driver non diffonde aggiornamenti
  • Il produttore del driver non ha tempo per testare a fondo il comportamento del programma o non conosce alla perfezione i meccanismi del kernel per cui stà sviluppando
  • Il produttore del driver è fallito e ciao ciao supporto!
  • Il produttore del driver ha sfornato un nuovo modello di scheda e non è interessato a supportare oltre la vecchia versione.
  • SOLO il produttore del driver può risolvere i problemi del driver. Ne Linus Torvalds, ne la Microsoft, ne nessun altro

Questi sono solo alcuni dei motivi per cui nel tempo un driver di cui si dispone del sorgente e delle specifiche hardware sarà sempre migliore e stabile nell’evolversi del sistema operativo al contrario dei driver proprietari.

Altri problemi derivanti dal software distribuito solo in forma binaria sono relativi alla piattaforma di distribuzione. Linux, BSD ecc… sono kernel formidabili! Al di là della loro architettura interna (molti sostengono ad esempio che linux sia strutturalmente vecchio e alla lunga poco mantenibile per il fatto di essere monolitico ecc…) sono comunque spettacolari per il fatto che con poco si riesce ad implementarli per diverse architetture. Che sia x86, SPARC, ARM, motorola o quel che volete si può compilare o implementare e compilare il kernel Linux (o anche BSD, basta pensare a DragonFly BSD). Al contrario, un driver o un programma distribuito in forma binaria è compilato e sviluppato per la sola architettura di target e quindi non funzionerà su altre architetture.

Per farvi un esempio andate a considerare l’Adobe Flash Player. Viene distribuito in forma binaria anche sui sistemi GNU/Linux. Essendo chiuso, Adobe deve rilasciare il software compilato sia per architettura x86 che per x86 a 64bit. Ora la versione a 64bit è già noto essere tutt’altro che esente da malfunzionamenti ed altri problemi cui si deve aspettare che Adobe abbia “voglia” di mettere mano. Se un giorno Adobe vorrà interrompere il supporto per flash a 64bit allora tutte le distro linux a 64bit non potranno godere dell’opportuna versione del software flash.

Altri problemi ancora possono derivare a livello giuridico dal tipo di licenza impiegata. In questo caso anche se il software viene rilasciato con sorgente ma non come software libero (GNU GPL) ci potranno essere diversi problemi di redistribuzione e altro ancora.

Insomma tutto questo discorso serve solo a far capire che è stupido oltre che sbagliato scagliarsi contro chi cerca di supportare o incentivare con varie iniziative lo sviluppo di soluzioni libere. Esse costituiscono la sola e vera alternativa al software proprietario ed è giusto che esista. Vedere persone che chiamano “Talebani” in senso dispregiativo e non per scherzare i sostenitori del software libero stannon in realtà autoprocurandosi un danno in un futuro non troppo lontano. Questo non toglie che possiate usare come, quanto e quando volete il software proprietario che può avere i suoi pregi ed i suoi difetti ma contribuire come possibile (anche solo con una voce, un sostegno morale) affinché dei volontari o le compagnie possano fornire anche a “voi” del software libero  mi sembra un minimo gesto per qualcosa che porta solo vantaggi.

L’utilizzo di sistemi liberi comunque non è solo una salita dolorosa, anzi. Vi basta inquadrare la questione diversamente da come la considerate oggi. Se volete far girare il sistema operativo OsX di Apple cosa dovete fare? Acquistare un Mac ovvio! Perché non potete prendere una copia di OsX e farla girare su qualsiasi pc per il semplice fatto che non tutto l’hardware esistente è supportato da Cupertino.

Per il software e l’hardware libero il discorso è uguale! Basta acquistare hardware o computer che sono compatibili con driver liberi. Addirittura ci sono pc totalmente liberi a partire dal BIOS. Ovviamente non semrpe è possibile o magari un sistema libero non rispecchia le necessità computazionali / economiche di un utente ma dove possibile perché non tentare.

Un sistema libero non è una questione di pura ideologia ma anche e soprattutto di supporto, stabilità, portabilità ed integrazione.

OpenBSD, ad esempio è un sistema operativo BSD che ha deciso di adottare una politica molto rigida nei confronti dell’inclusione di blob. Principalmente questa scelta è guidata dalla volontà di Theo e degli altri sviluppatori di mantenere un sistema assolutamente sicuro e stabile. La perfetta integrazione e stabilità di tutte le componenti di OpenBSD lo hanno reso un sistema incredibilmente solido e che può vantare un minimo rilevamento di vulnerabilità.

 

gNewSense è una distribuzione GNU/Linux derivata da Ubuntu e creata ripulendo il kernel Linux da tutti i blob binari oltre che rendendo disponibile all’utente solo software e driver liberi. gNewSense è il sistema utilizzato anche da Stallman ed ha un forte orientamento ideologico oltre che pratico.

 

Debian è una delle distribuzioni GNU/Linux più importanti ed affermate. Da sempre occupata nel cercare il supporto totale al software libero, nei giorni scorsi ha diffuso il comunicato che dalla prossima release 6.0 verrà rilasciata con un kernel completametne libero (link). Ovviamente continueranno ad essere accessibili anche il software ed i driver proprietari ma il loro supporto da parte della community sarà limitato. La comunità Debian cerca di fornire un sistema sicuro ma soprattutto stabile ed affidabile con una vastissima comunità di sviluppatori che testa a lungo ed eventualmente corregge il software distribuito per migliorarne l’integrazione con il sistema. Purtroppo, per il software distribuito in forma binaria la comunità non può verificarne a fondo la piena funzionalità ed eventualmente patcharlo. Pertanto l’obiettivo della comunità è sempre stato quello di cercare di limitare l’utilizzo di software che potesse causare problemi all’utente finale; problemi che non potrebbero essere corretti.

Questi sono tre dei più importanti sistemi che hanno deciso di portare avanti per motivi vari una politica più o meno rigida supportando il software libero, alcuni per ideologia ed altri per motivi pratici e funzionali ma tutti per fornire a voi: utenti finali un futuro computazionale migliore!

Questa voce è stata pubblicata in GNU Linux, informatica, software libero e contrassegnata con , , , , , , , , . Contrassegna il permalink.

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...