Sinistra <- Il progetto Utopia - Indice Generale - Copertina - Lettere aperte ai pirati dei media -> Destra

Agorà


FreeBIOS

di Tito Rizzo

L'articolo...

Richard Stallman ha lanciato una nuova crociata, per estirpare dai computer l'ultimo residuo di software non libero (il BIOS proprietario) e sostituirlo con una versione libera.
Un ringraziamento particolare a Gabriele Zucchetta, per aver fornito lo spunto per la stesura di questo articolo.



Il presidente della Free Software Foundation (http://www.fsf.org/) Richard Stallman, nel suo discorso al FOSDEM 2005, ha lanciato una campagna per la diffusione dei BIOS liberi. Questa iniziativa prosegue la battaglia iniziata nel 1984 con l'avvio del progetto GNU, il cui intento era e continua ad essere quello di garantire la libertà nell'utilizzo del computer.

Non è certamente il caso di riproporre qui l'ennesima esposizione della storia e della filosofia della FSF e del progetto GNU[1], basti ricordare che l'obiettivo di GNU può dirsi sostanzialmente raggiunto: la comparsa del kernel Linux e la sua combinazione con il software GNU ha reso disponibile un sistema operativo completamente libero.

All'interno del computer, sopravvive però ancora uno degli ultimi bastioni del software proprietario: il BIOS (Basic Input/Output System). È un chip (un dispositivo di memoria non volatile) installato sulla scheda madre che include le istruzioni necessarie alla CPU per l'avvio del sistema.

Il BIOS per PC venne sviluppato negli anni '80 del secolo scorso per l'originale PC IBM. Inizialmente era masterizzato nella ROM: impossibile quindi sostituirlo, pena la sostituzione di parte dell'hardware. La questione etica del software libero non poteva realmente applicarsi a tali dispositivi, assimilabili a componenti hardware.

I BIOS attuali sono invece conservati nella memoria non volatile, sulla quale si può scrivere. L'aggiornamento o la sostituzione del BIOS diventano operazioni perfettamente fattibili. Per dirla con le parole di Stallman (la versione originale può essere reperita presso http://www.fsf.org/news/freebios.html):

"Il BIOS, oggi, è proprio sul limite. Lo si trova preinstallato sul computer e normalmente non se ne installerà mai un altro. Fin qua, si potrebbe ancora accettare che lo si tratti come hardware. Ma, occasionalmente, il fabbricante suggerisce di installare un altro BIOS, disponibile solo sotto forma di eseguibile. Ciò, chiaramente, significa installare un programma non libero, il che è nocivo come installare Microsoft Windows, Adobe Photoshop o la piattaforma Java di Sun. Nel momento in cui la pratica non etica di installare un altro BIOS come file eseguibile si diffondesse, la stessa versione fornita all'interno del computer solleverebbe un problema etico."

La soluzione al problema consiste nell'adozione di un BIOS libero, il cui sviluppo, allo stato attuale, si identifica essenzialmente con il progetto "LinuxBIOS".

LinuxBIOS

I BIOS commerciali continuano a essere scritti totalmente in assembly, operano quasi esclusivamente in modalità 16 bit e forniscono ben pochi servizi oltre agli interrupt già forniti dai BIOS degli anni '80.

Per cambiare questa situazione, nell'inverno del 1999, presso l'Advanced Computing Laboratory del Los Alamos National Laboratory, venne avviato il progetto LinuxBIOS, per reagire alla frustrazione causata dai problemi derivanti dall'uso dei BIOS proprietari in grandi sistemi di cluster.

LinuxBIOS sostituisce il normale codice del BIOS con il kernel Linux. Il vantaggio immediatamente avvertibile dovrebbe essere una sequenza di avvio molto più rapida.

Rispetto a un BIOS tradizionale, Linux compie poi un lavoro decisamente migliore nell'individuazione dell'hardware e il suo ingombro di memoria non è poi molto maggiore.

Oltre a questo, LinuxBIOS veicola una buona quantità di informazioni diagnostiche tramite la porta seriale, consentendo il controllo del processo di avvio anche tramite terminale seriale (se questo aspetto non risultasse chiaro, potrebbe essere utile il Remote Serial Console HOWTO).

La risoluzione dei malfunzionamenti hardware o la riconfigurazione del sistema risultano molto più semplici rispetto al metodo più diffuso basato su schermo e tastiera.

LinuxBIOS, come si è visto, è stato principalmente sviluppato per i sistemi di cluster, perché perfeziona notevolmente i compiti di gestione e configurazione remota rispetto a un BIOS standard. Presso il Los Alamos National Laboratory viene impiegato su due sistemi di cluster molto grandi: "Pink" e "Lightning". Ci sono poi anche alcune compagnie che realizzano sistemi commerciali basati su di esso.

LinuxBIOS supporta un buon assortimento di schede madri. La prima cosa da fare è ovviamente verificare che il proprio hardware sia supportato. Il requisito principale è che il chip del BIOS possa essere rimosso dalla scheda madre e sostituito con un dispositivo Disk-on-chip (DoC).

I DoC sono dispositivi di memoria suscettibili di essere "formattati" e quindi identificati come disco rigido, in grado di contenere un sistema Linux funzionale. È, in effetti, possibile costruire una macchina diskless totalmente indipendente.

Le prospettive

Le possibilità di installare e utilizzare un BIOS libero sono, al momento, alquanto aleatorie. Di fatto, solo pochi computer sono supportati. Senza la cooperazione dei fabbricanti, lo sviluppo di BIOS liberi si prospetta estremamente difficoltoso.

Alcuni moderni sistemi operativi, come *BSD e Windows 2000/XP, si affidano ad alcuni servizi forniti dai BIOS proprietari e non possono essere direttamente supportati da LinuxBIOS. La combinazione di LinuxBIOS con altro software, come l'emulatore di PC Bochs e Etherboot, ha permesso finora di avviare Windows 2000 e OpenBSD (a questo proposito si veda il progetto SEBOS; per i dettagli tecnici si può consultare questo articolo).

Bisogna ancora considerare che, diversamente dal cluster computing, i desktop tendono a dipendere pesantemente dalle interfacce utente grafiche. È perciò importante che l'hardware VGA sia correttamente inizializzato già nelle prime fasi del processo di boot. Molti produttori di schede grafiche sono riluttanti a fornire il codice necessario all'inizializzazione del loro hardware.

Diventa allora obbligatorio ricorrere a un layer di compatibilità tra il BIOS VGA e LinuxBIOS. Allo scopo, è stato utilizzato con successo FreeVGA, un emulatore x86 basato su x86emu, in combinazione con alcuni modelli di schede grafiche.

Che fare?

Dal lato dei produttori, AMD pare stia collaborando piuttosto bene. IBM ha invece rifiutato di fornire le specifiche necessarie a far funzionare LinuxBIOS sui laptop che la stessa IBM ha donato alla FSF negli anni scorsi.

Decisamente poco collaborativa si è dimostrata Intel, che ha anche avviato il progetto Tiano per lo sviluppo di un sedicente BIOS "open source" (su Punto Informatico si può leggere Intel vuole un BIOS open source), che Stallman giudica molto negativamente.

Dal momento che la richiesta di cooperazione indirizzata alle case produttrici non ha risolto il problema, FSF chiede l'aiuto della comunità.

Tale aiuto si può concretizzare in vari modi: si può acquistare una CPU AMD o una delle schede madri che supportano i BIOS liberi (LinuxBIOS), elencate su questa pagina e non acquistare prodotti Intel.

Si potrebbe inoltre fare pressione sui produttori meno collaborativi, come Intel, inviando loro un messaggio di protesta.

Se qualcuno fosse poi in grado di capire qualcosa sulle modalità di installazione e di funzionamento di modelli recenti di BIOS, specialmente quelli per laptop, potrebbe fornire un contributo non trascurabile.

Qualunque azione si intenda porre in atto per supportare questa campagna, FSF invita a darne senz'altro notizia all'indirizzo bios(at)gnu.org.

Conclusioni

Eliminare i BIOS proprietari dalle schede madri è un obiettivo di non secondaria importanza.

L'introduzione di un BIOS opensource consentirebbe di portare avanti un buon numero di nuovi progetti nello spazio BIOS. Si potrebbero, per esempio, facilmente aggiungere il supporto per la crittografia di basso livello per autenticazione forte in fase di pre-boot, il supporto per console remota sicura, la gestione sicura della configurazione.

La mancanza di un BIOS opensource di impiego generale ha indubbiamente costituito un freno all'innovazione, in un'area importante del personal computer.

Bibliografia

Tra l'enorme mole di documentazione disponibile sull'argomento, potrei suggerire un paio di articoli dello stesso Stallman:



L'autore

Tito Rizzo trova nell'utilizzo di GNU/Linux (ma anche di NetBSD) e del Software Libero un sacco di ottime occasioni per capire, non solo l'informatica, ma più in generale il mondo.


Sinistra <- Il progetto Utopia - Indice Generale - Copertina - Lettere aperte ai pirati dei media -> Destra