All'interno del computer, sopravvive uno degli ultimi bastioni della famiglia dei software proprietari: il BIOS (Basic Input/Output System). Il primo BIOS per PC venne sviluppato negli anni '80 del secolo scorso per l'originale PC IBM.
Tecnicamente il Basic Input-Output System o BIOS è il primo codice che viene eseguito da un personal Computer dopo l'accensione, ed ha tre funzioni principali:
- eseguire una serie di test diagnostici per controllare lo stato di funzionamento dell'hardware e segnalare eventuali guasti rilevati tramite un codice sonoro (beep code);
- localizzare il sistema operativo e caricarlo nella RAM;
- fornire una interfaccia software per l'accesso alle periferiche e all'hardware del PC.
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 EEPROM, sulla quale si può scrivere. L'aggiornamento o la sostituzione del BIOS diventano operazioni perfettamente fattibili. Tuttavia non è consigliabile aggiornare il BIOS di un PC senza un motivo ben preciso, perché l'operazione di aggiornamento, se non va a buon fine, può rendere il PC inutilizzabile. Lo si trova preinstallato sul computer e normalmente non se ne installerà mai un altro ma, occasionalmente, il produttore 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.
Oggi grazie alla nascita dei FREE BIOS sarà finalmente possibile scegliere di installare un BIOS diverso da quello che ci viene preinstallato dalle case produttrici di schede madri. In seguito vedremo i vantaggi che l'utente può avere con l'installazione di un FREE BIOS e quali sono le schede madri su cui è già possibile installare un FREE BIOS. In contrapposizione ai FREE BIOS dobbiamo parlare della Trusted Computing, fenomeno che induce i produttori di schede madri (ma anche i produttori di sistemi operativi etc.) a introdurre sia nell'hardware che nel software (BIOS) delle restrizioni, che non consentono all'utente la libera gestione di tali componenti. Le grandi case produttrici giustificano lo sviluppo della Trusted Computing non solo per limitare lo sviluppo del software libero ma anche in relazione ai problemi di sicurezza.
Chi non ha sentito parlare del virus "Cernobyll", che attaccava il BIOS del sistema rendendo la scheda madre (la base di tutto il computer) praticamente inutilizzabile! Da allora tutti i produttori di BIOS si sono prodigati per rendere il BIOS inattaccabile, e qualcosa è stato fatto: a seconda della scheda installata sul PC, esistono alcuni metodi per evitare che un virus possa sovrascrivere il BIOS rendendo il PC inutilizzabile. Quelli più immediati sono due:
1) Abilitare nel Setup del PC l'opzione "Virus Enabled";
2) Bloccare, sempre nel setup del PC, la possibilità di aggiornare il BIOS.
Queste operazioni possono essere fatte da chiunque ma, se non si è sicuri, è meglio consultare il fornitore del PC od un esperto per evitare di modificare altre opzioni del BIOS che potrebbero causare il blocco del PC. E' importante assicurarsi che almeno una delle due opzioni sia attivata. Nel caso in cui si renda necessario l'aggiornamento del BIOS sarà sempre possibile disabilitare i blocchi nel setup temporaneamente, aggiornare il BIOS e riattivare immediatamente i blocchi.
Questa tesina è organizzata secondo lo schema definito qui di seguito:
- Introduzione 1: come sono fatti i BIOS, il loro funzionamento, i FREE BIOS e la Trusted Computing, i problemi dei BIOS legati alla sicurezza;
- Capitolo 2: nascita dei FREE BIOS, sviluppo e caratteristiche avanzate di LinuxBIOS, le prospettive e le principali case produttrici di schede madri che hanno appoggiato tale progetto;
- Capitolo 3: la nascita dei nuovi BIOS in contrapposizione ai FREE BIOS, la Trusted Computing, l'introduzione di elementi di Trusted Computing all'interno dei nuovi BIOS, delle novità da parte delle principali case produttrici di BIOS, delle nuove politiche di sicurezza adottate per i nuovi BIOS di Windows Vista;
- Capitolo 4: l'hardware del BIOS, i differenti dispotivi di memorizzazione, i chip utilizzati, le sigle utilizzate per conoscere le caratteristiche del BIOS.
Il BIOS è salvato nella ROM. Potrebbe anche essere una parte del circuito; il Software Libero non può interagire con esso perchè gli utenti non possono installare molti BIOS. Ma questo è cambiato; ora il BIOS è salvato in una memoria riscrivibile e gli utenti possono installare nuovi programmi a livello BIOS. Questo significa che è a tutti gli effetti Software Libero. Infatti, un programma BIOS FREE già esiste per i PC. Tuttavia, deve essere adattato ai dettagli di ogni modello di computer, e i produttori molte volte rifiutano di dare le necessarie informazioni per creare altri supporti per altri computer.
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.
Il capitolo è organizzato secondo lo schema seguente:
- Paragrafo 2.1: l'evoluzione dei BIOS, nascita dei FREE BIOS;
- Paragrafo 2.2: la fase di boot e i vantaggi di LinuxBIOS;
- Paragrafo 2.3: le difficoltà incontrate dai sviluppatori di FREE BIOS e le prospettive di LinuxBIOS;
- Paragrafo 2.4: i produttori di BIOS che collaborano allo sviluppo e alla diffusione di LinuxBIOS, un elenco delle principali case produttrici di schede madri che supportano LinuxBIOS;
- Paragrafo 2.5: i vantaggi dei FREE BIOS.
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.
Un grosso ostacolo che ha sempre frenato l'espansione di tale innovazione è che a differenza dei sistemi operativi, il LinuxBIOS può facilmente ridurre l'hardware funzionante presente in una macchina, a semplici schede inutilizzabili se nel codice in esecuzione è presente qualche bug. A tale proposito Google, che da sempre è impegnato nello sviluppo di sistemi tecnologici e rivoluzionari, ha deciso di aiutare i programmatori che si dedicano alla realizzazione del "BIOS FREE", sponsorizzando parte del progetto.
Grazie a questa sponsorizzazione, gli sviluppatori hanno potuto migliorare in modo significativo il processo utilizzato per garantire la qualità del progetto. Per ridurre al minimo i rischi, è stato creato un ambiente di testing completamente automatizzato e distribuito. Ogni singola modifica alle immagini del BIOS viene preparata per tutte le mainboard, e viene successivamente testata in hardware reali localizzati in tutto il mondo.
Questo metodo permetterà a chiunque desideri scaricare un'immagine del Linux BIOS, di sapere con certezza se questo ha funzionato o meno su una scheda madre di riferimento, con caratteristiche identiche a quella su cui si intende installare il BIOS libero.
Un computer è un apparato molto complesso, ed il suo sistema operativo è uno strumento elaborato che nasconde le complessità hardware per fornire un ambiente semplice e standardizzato all'utente finale. All'accensione del sistema, comunque, il software di sistema deve lavorare in un ambiente limitato, e deve caricare il kernel usando questo ambiente dalle scarse funzionalità. La fase di boot riguarda tre diverse piattaforme: l'antiquato PC e i più recenti calcolatori basati su Alpha e Sparc. Il PC occuperà la maggior parte dello spazio in questo articolo perché è ancora la piattaforma più diffusa, ed anche perché è quella più difficile da avviare. Purtroppo in questo articolo non troverete alcun codice d'esempio, perché il linguaggio Assembly è diverso su ciascuna piattaforma ed è di difficile comprensione per la maggior parte degli utenti. I progressi di LinuxBIOS sono ormai confermati, infatti i tempi di avvio di una macchina senza disco fisso, nella quale la shell, il server grafico, il window manager ed il terminale sono caricati direttamente dal BIOS modificato (2 MB) in soli 6 secondi circa. Le possibilità di installare e utilizzare un FREE BIOS sono, al momento, alquanto aleatorie. Di fatto, solo pochi computer sono supportati. Senza la cooperazione dei fabbricanti, lo sviluppo dei FREE BIOS 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 dai 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. 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 "opensource" (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.
Un elenco delle schede madri supportate da LinuxBIOSv1
Vendor | Mainboard | CPU | Socket | Status | Tutorial |
---|---|---|---|---|---|
Desktops / Workstations | |||||
ASUS | A8N-E | AMD Athlon™ 64 / 64 FX / 64 X2 | Socket 939 | OK25 | — |
ASUS | P2B | Intel® Pentium® II/III, Celeron® | Slot 1 | WIP4 (UH) | — |
Bitworks | IMS | Intel® Pentium® II/III, Celeron® | Slot 1 | WIP4 | — |
GIGABYTE | GA-M57SLI-S4 | AMD Athlon™ 64 / 64 FX / 64 X2, Sempron™ | Socket AM2 | OK18 | Tutorial |
Sun | Ultra 40 | AMD Opteron™ | Socket 940 | OK | — |
Tyan | Tsunami ATX (S1846) | Intel® Pentium® II/III, Celeron® | Slot 1 | WIP26 (UH) | — |
Tyan | Tiger K8W (S2875) | AMD Opteron™ | Socket 940 | OK (YH) | — |
Tyan | Thunder K8W (S2885) | AMD Opteron™ | Socket 940 | OK (YH) | — |
Tyan | Thunder K8WE (S2895) | AMD Opteron™ | Socket 940 | OK (YH) | — |
Servers | |||||
agámi | Aruma/AIS6000 | AMD Opteron™ | Socket 940 | OK (SR) | — |
AMD | Serengeti Cheetah | AMD Opteron™ | Socket F | OK (YH) | — |
Arima | HDAMA | AMD Opteron™ | Socket 940 | OK | — |
Dell | S1850 | ? | ? | WIP2 | — |
IBM | eServer 325 | AMD Opteron™ | Socket 940 | OK | — |
IBM | eServer 326 | AMD Opteron™ | Socket 940 | OK | — |
Intel | Jarrell (SE7520JR2) | Intel® Xeon® | ? | ? | — |
IWILL | DK8-HTX | AMD Opteron™ | Socket 940 | OK | Tutorial |
IWILL | DK8S2 | AMD Opteron™ | Socket 940 | ? | — |
IWILL | DK8X | AMD Opteron™ | Socket 940 | ? | — |
MSI | K9SD Master-S2R (MS-9185) | AMD Opteron™ | Socket F | OK12 | — |
MSI | K9SD Master Series (MS-9282) | AMD Opteron™ | Socket F | OK15 | — |
Newisys | 2100 Server (SUN Fire v20z) | AMD Opteron™ | Socket F | OK7 | — |
NVIDIA | l1_2pvv | ? | ? | WIP14 | — |
Supermicro | H8DMR | AMD Opteron™ | Socket F | WIP14 | — |
Supermicro | X6DAi-G | Intel® Xeon® | Socket 604 | ? | — |
Supermicro | X6DHE-G | Intel® Xeon® | Socket 604 | ? | — |
Supermicro | X6DHE-G2 | Intel® Xeon® | Socket 604 | ? | — |
Supermicro | X6DHR-iG | Intel® Xeon® | Socket 604 | ? | — |
Supermicro | X6DHR-iG2 | Intel® Xeon® | Socket 604 | ? | — |
Tyan | Tiger i7501R (S2735) | Intel® Xeon® | Socket 604 | OK (YH) | — |
Tyan | Tomcat K8S (S2850) | AMD Opteron™ | Socket 940 | OK (YH) | — |
Tyan | Thunder K8S (S2880) | AMD Opteron™ | Socket 940 | OK (YH) | — |
Tyan | Thunder K8SR (S2881) | AMD Opteron™ | Socket 940 | OK18 (YH) | Tutorial |
Tyan | Thunder K8S Pro (S2882) | AMD Opteron™ | Socket 940 | OK18,20 (YH) | Tutorial |
Tyan | Thunder K8SRE (S2891) | AMD Opteron™ | Socket 940 | OK (YH) | — |
Tyan | Thunder K8SE (S2892) | AMD Opteron™ | Socket 940 | OK (YH) | Tutorial |
Tyan | Thunder n3600R (S2912) | AMD Opteron™ | Socket F | WIP14 | — |
Tyan | Thunder K8QS (S4880) | AMD Opteron™ | Socket 940 | OK (YH) | — |
Tyan | Thunder K8QS Pro (S4882) | AMD Opteron™ | Socket 940 | OK (YH) | — |
Laptops | |||||
OLPC | btest | AMD Geode™ GX 500@1.0W | — | OK | — |
OLPC | rev_a | AMD Geode™ GX 500@1.0W | — | OK | — |
Embedded / SBC / PC/104 | |||||
AMD | Rumba | ? | ? | ? | — |
DIGITAL-LOGIC | smartModule855 | ? | ? | WIP13 | — |
DIGITAL-LOGIC | MSM586SEG | AMD Élan™SC520 | — | OK | — |
DIGITAL-LOGIC | MSM800SEV | AMD Geode™ LX 800@0.9W | — | OK22 | — |
EagleLion | 5BCM | ? | — | ? | — |
Embedded Planet | EP405PC | AMCC PPC405GP(r) | ? | OK (GW) | — |
IEI | NOVA-4899R | AMD Geode™ GX1 300MHz | — | WIP17 | — |
Lippert | Cool Frontrunner | AMD Geode™ GX 500@1.0W | — | WIP2 | — |
Technologic Systems | TS-5300 | AMD Élan™SC520 | — | OK (SR) | — |
Total Impact | briQ | PowerPC 750 (G3) / 7400 (G4) | ? | ? | — |
Mini-ITX | |||||
VIA | EPIA | VIA C3™, VIA EDEN™ | — | WIP24 | — |
VIA | EPIA-M | VIA C3™, VIA EDEN™ | Socket 370 | ... | — |
VIA | EPIA-MII | VIA C3™, VIA EDEN™ | Socket 370 | OK8 | — |
VIA | EPIA-ML | VIA C3™, VIA EDEN™ | Socket 370 | OK10 | — |
Set-top-boxes / Thin clients | |||||
Artec Group | DBE61 | AMD Geode™ LX 700 | — | OK | — |
ASI | MB-5BMLP (IGEL WinNET III) | AMD Geode™ GX1 | — | WIP23 (UH) | Tutorial |
Linutop | Linutop | ? | — | OK19 | — |
TeleVideo | TC7020 | ? | — | OK16 | — |
Devel/Eval Boards | |||||
AMD | Norwich | AMD Geode™ LX | — | OK21 | — |
Broadcom | Blast | ? | ? | OK (YH) | — |
Intel | XE7501devkit | ? | ? | ? | — |
Motorola | Sandpoint X3 | MPC74xx | ? | OK6 (GW) | — |
Miscellaneous | |||||
Emulation | QEMU x86 | ? | — | OK | Tutorial |
Non tutte le schede madri sono supportate da LinuxBIOSv1 e LinuxBIOSv2, basta controllare il campo LBv2. Per contribuire al lavoro e per contatti mailing list.
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. 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.
3. I Nuovi BIOS & La Trusted Computing
L'espressione inglese Trusted Computing (TC) (letteralmente informatica fidata o calcolo fidato) si riferisce ad una tecnologia nascente, derivata da specifiche del Trusted Computing Group (TCG) < che ha ereditato quelle del Trusted Computing Platform Alliance (TCPA) > con l'obiettivo dichiarato di produrre computer più sicuri mediante l'uso di opportuni hardware e software.Il termine deriva da trust (in italiano fiducia) ma assume un significato particolare: non significa necessariamente che sia affidabile dal punto di vista dell'utente, ma piuttosto che debba essere considerato fidato secondo i canoni imposti dai produttori. In linea teorica è possibile che i dispositivi che implementeranno tale tecnologia potranno, oltre che proteggere il software da manomissioni, imporre restrizioni su applicazioni ritenute non affidabili, in quanto non approvate dai produttori.
I sostenitori del TC sono le più grandi aziende dell'industria informatica mondiale, come AMD, hp, IBM, Intel, Microsoft e Sun e lo presentano come la soluzione per ottenere computer più sicuri, affidabili e meno attaccabili da virus e programmi nocivi. L'esercito USA è interessato a tale tecnologia e richiede che tutti i suoi computer ne siano dotati.
Di seguito vediamo perchè è necessario un BIOS particolare per costruire una piattaforma Trusted Computing completa. Questo BIOS deve mettere a disposizione le funzionalità necessarie per la procedura di avviamento sicuro ("Secure Boot") e le funzionalità necessarie per la gestione del TPM (abilitazione/disabilitazione, gestione delle chiavi primarie etc.). Per motivi analoghi, i sistemi multi-boot devono avere un Boot Loader in grado di collaborare con il TPM ed il BIOS.
Ecco i nuovi tipi di BIOS e di Boot Loader che sono stati creati per soddisfare queste esigenze ed alcuni altri che, per vari motivi, ci sembrano interessanti.
Il capitolo è organizzato secondo lo schema seguente:
- Paragrafo 3.1: le novità in materia di BIOS in casa AMI;
- Paragrafo 3.2: la contesa del mercato tra AMI e Phoenix BIOS, lo sviluppo del nuovo Trusted Core;
- Paragrafo 3.3: le nuove tecnologie di BIOS da parte di EFI (Extensible Firmware Interface);
- Paragrafo 3.4: i nuovi Trusted GRUB e LILO with TCPA (ossia le modifiche ai boot loader resi compatibili con le piattaforme di Trusted Computing);
- Paragrafo 3.5: i vantaggi di un FREE BIOS e la nascita di un altro progetto quale OpenBIOS;
- Paragrafo 3.6: le novità di Windows Vista e le restrinzioni del software (in particolare per i nuovi BIOS);
- Paragrafo 3.7: le conclusioni e un breve riassunto su tutto il capitolo (commenti sulle difficoltà di sviluppo del software libero).
L'implementazione delle specifiche TCG che AMI ha realizzato è quasi da manuale. Si attiene strettamente alle specifiche senza tralasciare nessun elemento importante. In questo, come vedremo, rappresenta più l'eccezione che la regola.
Essendo in produzione da circa 3 anni, questo tipo di BIOS è già ampiamente diffuso sul mercato, anche se non tutte le sue applicazioni prevedono lo sfruttamento di queste sue caratteristiche. Per avere una piattaforma Trusted Computing, lo ricordiamo, non basta avere un BIOS TC-compliant.
AMI BIOS 8 è descritto a questa URL. Phoenix è l'altro grande produttore di BIOS per PC. Da quando Phoenix ha acquisito la Award, sono rimasti solo AMI e Phoenix a contendersi questo mercato. Naturalmente, anche Phoenix ha sviluppato la propria versione di BIOS compatibile con le specifiche Trusted Computing. Questa versione si chiama "TrustedCore" ed è già in produzione da un paio d'anni. Per certi aspetti, la implementazione delle specifiche TCG che Phoenix ha fatto è molto meno standard e molto meno rassicurante di quella di AMI.
TrustedCore, infatti, dispone di un proprio sistema crittografico interno, in grado di svolgere gran parte delle funzioni di un TPM. Questo sistema è in grado di creare i PCR necessari per le funzioni di Secure Boot e di verificare l'integrità dello stesso firmware usato dal BIOS. Si tratta quindi di una implementazione parallela a quella del TCG. Questo vuol dire che coloro che acquistano dei PC dotati di BIOS Phoenix TrustedCore rischiano di trovarsi tra le mani una macchina parzialmente contaminata da tecnologie Trusted Computing senza nemmeno saperlo. L'assenza di TPM e di altri elementi riconoscibili rende queste macchine indistinguibili da normali macchine TC-free.
Per il resto, l'implementazione di Phoenix è simile a quella di AMI. Questo BIOS può essere usato per pilotare una piattaforma Trusted Computing "tradizionale" dotata di TPM. L'implementazione di Phoenix è descritta a questa URL.
3.3 EFI (Extensible Firmware Interface)
La principale innovazione di EFI è rappresentata dal fatto che i driver necessari per pilotare una gran parte dell'hardware possono essere gestiti direttamente dal firmware e potrebbero quindi essere indipendenti dal sistema operativo utilizzato. Questo potrebbe permettere ai produttori di schede e di chip di creare i loro driver indipendenti dal sistema operativo e, di conseguenza, chi crea i sistemi operativi non dovrebbe più preoccuparsi di creare i driver.
Questo potrebbe voler dire che i sistemi operativi "alternativi", come Linux e BSD, potrebbero finalmente avere accesso a tutto l'hardware esistente nello stesso modo e con la stessa efficienza dei sistemi operativi "mainstream" come Windows. In altri termini, EFI potrebbe segnare la fine della vita da Cenerentola a cui sono stati costretti Linux e BSD fino ad ora.Com'era prevedibile, EFI viene sostanzialmente ignorato da Microsoft e da quasi tutti i produttori di hardware che sono legati ad essa. Ad esempio, Microsoft ha recentemente annunciato che il supporto per EFI (più esattamente per UEFI 2.0) sarà disponibile solo per le versioni server a 64 bit di Windows Vista.
Pur essendo disponibili versioni di EFI a 32 bit sulle motherboard Intel, nessun produttore di hardware si è preoccupato di creare i relativi driver OS-indipendent, invocando come giustificazione l'assenza di una versione di Windows a 32 bit in grado di sfruttarli (come se esistesse solo Windows). I normali utenti dovranno quindi continuare a fare i conti con il vecchio BIOS ed i soliti problemi di driver. Questo vuol anche dire che esistono dei problemi per usare Windows sui MacIntosh con architettura Intel, problemi che devono essere risolti da BootCamp. L'utente finale dipende quindi dalla volontà di Apple e dalla presenza di BootCamp per l'uso di Windows sui MacIntosh.
Per quanto ci riguarda, EFI ci interessa solo in quanto è in grado di pilotare una piattaforma Trusted Computing. All'interno delle sue aree di memoria è possibile conservare tutto il firmware necessario per questo scopo. Questo, infatti, è il modo in cui funzionano i MacIntosh attualmente in produzione.
ELILO, la versione EFI-enabled di LILO, è disponibile a questa URL.
EFI è, in un certo senso, l'erede di Open Firmware, il sistema usato dai "vecchi" Apple MacIntosh su architettura PowerPC. Il consorzio che si occupa del suo sviluppo è reperibile a questa URL.
3.4 Trusted GRUB e LILO with TCPA support
Questi boot loader collaborano con il BIOS e con il sistema operativo per mantenere la "chain of trust" che permette di garantire la affidabilità dell'intero sistema.
Trusted GRUB è reperibile a questa URL. La versione TC-compliant di LILO è parte del progetto Enforcer, reperibile a questa URL. Leggendo queste righe dovrebbe essere diventata evidente la necessità di liberare l'hardware dalla dipendenza da uno specifico BIOS e/o firmware. Solo usando un BIOS "opensource", infatti, è possibile avere il pieno controllo dell'intero sistema e tutte le garanzie necessarie sul suo funzionamento. A questo scopo sono stati avviati due importanti progetti per la creazione di BIOS "liberi".
Il primo progetto è promosso dalla Free Software Fundation e si chiama LinuxBIOS. Il sito ufficiale del team di sviluppo è a questa URL.
LinuxBIOS è un piccolo BIOS a 32 bit che svolge solo le funzioni indispensabili. Si tratta quindi di un BIOS molto veloce e molto versatile. Attualmente viene usato da una dozzina di costruttori, tra cui Cray, LinuxLab e ClusterLab, per la realizzazione di cluster per l'elaborazione parallela.
OpenBIOS è un progetto meno maturo ma non meno interessante. Gli obiettivi che si pongono i suoi sviluppatori sono una totale "openness" ed una totale indipendenza dalla piattaforma hardware e software. Il sito del progetto si trova a questa URL. L'introduzione del nuovo Sistema Operativo di Microsoft, "Windows Vista", ha portato sul mercato uno dei primi Sistemi Operativi contenti elementi di Trusted Computing. Particolare risalto ha avuto la notizia che tale S.O. restringe l'utilizzo di alcune tipologie di hardware. Tali restrizioni si ottengono imponendo l'utilizzo di "driver firmati"dalla Microsoft, senza i quali non è possibile utilizzare tale hardware. Come noto i "device driver" comunicano con i BIOS dell'hardware (o più semplicemente con il "firmware" di tale hardware).
Microsoft vorrebbe applicare gli stessi criteri di "chiusura" anche hai BIOS ("firmware"), in quanto in presenza di un FREE BIOS sarebbe possibile sviluppare un "device driver" in proprio e quindi fuori dalle politiche di sicurezza imposte dalla TC (Trusted Computing). Windows Vista è stato rilasciato senza rispettare le normali politiche di sviluppo della Microsoft. Inoltre sono stati rilasciati driver non testati per ridurre i tempi e i costi di produzione. In particolare per le versioni di Vista a 64 bit i driver non hanno subito il processo di approvazione di Microsoft. L'avvento del Trusted Computing comporta anche la sostituzione dei vecchi BIOS con altri in grado di supportare queste funzionalità. Questo cambiamento poteva essere l'occasione per un passo avanti nel settore dei BIOS, verso una maggiore indipendenza dal produttore, ma non è stato così.
Progetti di grande importanza, come EFI e LinuxBIOS, giacciono inutilizzati a causa dell'antico vendor lock-in che lega i produttori di hardware al principale produttore di sistemi operativi. Nessuno sembra avere interesse a rompere questo legame e cercare fortuna per conto proprio sul mercato con prodotti adatti al mondo Linux e BSD.
A questa amarezza di fondo si somma quella dovuta alla scarsa trasparenza che domina questo mercato.
La presenza di funzionalità molto simili a quelle specifiche del Trusted Computing sui BIOS prodotti da Phoenix non è dichiarata in modo sufficiente al momento della vendita del prodotto. Io stesso sono stato testimone dell'acquisto di un PC dotato di BIOS Phoenix TrustedCore da parte di una persona assolutamente contraria a queste tecnologie.
Almeno in questo caso, l'acquirente ha fatto veramente tutto il possibile per evitare l'acquisto di un sistema "trusted" ma non è ugualmente riuscito ad evitarlo. Questo dovrebbe far riflettere sulla reale natura di questi sistemi, sulla loro pericolosità e sulla "coda di paglia" delle aziende coinvolte. Il BIOS a volte viene anche chiamato firmware, dal momento che è una parte integrante dell'hardware, pur essendo composto da istruzioni software. Prima del 1990 il BIOS veniva memorizzato su una o più ROM, chiaramente non riprogrammabili. Man mano che la complessità è aumentata, di pari passo con la necessità di aggiornamenti, si è diffusa la memorizzazione del firmware BIOS prima su EPROM, poi su EEPROM o flash memory così da permettere un rapido aggiornamento anche da parte dell'utente finale. In questo capitolo vediamo quali sono le caratteristiche dei principali dispositivi di memorizzazione del BIOS. Il chip che contiene il BIOS é solitamente un integrato del tipo DIL (con due file di pedini da 28 a 32) ed é facilmente riconoscibile. Sulla faccia superiore si trova una etichetta incollata, contenente indicazioni sulla release e sul produttore. Le etichette, peró, possono essere diverse e, a volte, possono anche non essere presenti. Diamo qui qualche esempio.
|
|
Qui sopra un chip con un tipo di etichetta AMI. Si nota sul bordo sinistro del chip la tacca di polarizzazione ed una tacca rotonda che identifica il pin 1. |
Qui sopra il BIOS AMI: si nota un'altro tipo di etichetta con la scritta AMIBIOS ed il numero di serie; accanto una etichetta del costruttore della scheda che indica la versione del BIOS (NA0620). |
|
|
Qui sopra il BIOS: si nota l' etichetta AMI; accanto la vistosa indicazione del fatto che é stato sottoposto ad un Burn-In di 24 ore. |
L'etichetta, a volte anche olografica, indica il produttore del BIOS: ad esempio l'etichetta AMIBIOS indica che si tratta di un prodotto scritto da American Megatrends Inc., mentre AWARD é l'indicazione dell'altro grande produttore di BIOS. AVVERTENZA: a volte questa etichetta puó non essere presente .
Il marchio del produttore, peró, non é il tipo di chip. Per identificare il tipo del chip occorre rimuovere le eventuali etichette. Per chi non avesse ancora ben chiara la differenza tra produttore del BIOS e produttore del chip, si puó fare un paragone con un libro: La Divina Commedia (versione del BIOS) é un libro (BIOS) scritta da Dante (il produttore del BIOS) e puó essere stampato su carta in diversi formati (tipi di chip), prodotta da diversi editori (costruttori dei chip). Il tipo di chip é stampato sul chip stesso. Se c'é una etichetta, occorre levarla; sotto apparirà la scritta del produttore del chip. Due esempi:
|
|
|
Qui sopra una 29C010A di Atmel. Si nota sulla destra la tacca di polarizzazione, un triangolino ed una tacca rotonda che identificano il pin 1. |
I BIOS sono comunemente depositati su memorie programmabili. Informazioni piú dettagliate sui vari tipi di memorie programmabili. In particolare si impiegano:
-
EPROM: usate sulle schede piú anziane; attualmente non sono piú in uso per la necessitá di scrivere informazioni (ad es. ESCD) nell'area di memoria del BIOS durante la sua esecuzione.
-
PROM: come sopra.
-
EEPROM: è una memoria ROM, ma a differenza di una semplice ROM è cancellabile e riscrivibile, mediante opportune tensioni e correnti applicate ai MOSFET (i componenti base di una ROM) che la compongono.
-
FLASH: è una memoria permanente riscrivibile (EEPROM) organizzata a blocchi, ovvero un circuito semiconduttore sul quale è possibile immagazzinare dati in forma binaria mantenendoli anche in assenza di alimentazione.
Negli esempi delle immagini qui sopra, sul chip si leggono alcune sigle, alcune delle quali le elenchiamo qui di seguito:
Winbond |
Costruttore |
W29EE011-15 |
W = Windbond |
743Q ecc. |
riferimenti della costruzione (data e/o stabilimento) |
ATMEL |
costruttore |
AT29C010A |
AT = Atmel |
12PC |
12 = tempo di accesso (120ns) |
9735 |
riferimenti della costruzione (data e/o stabilimento) |
Il produttore del chip non é importante in questa fase, in quanto i maggiori costruttori (Intel, Atmel, Winbond, SST, ecc.) producono diversi modelli che, a paritá di sigla principale, sono esattamente equivalenti. Sono anche poco significativi gli altri numeri o lettere che completano la siglatura; solitamente sono identificativi del modello del package e/o riferimenti al lotto di produzione (data, localitá di produzione, ecc.). A noi, per poter duplicare il chip, interessa esclusivamente la sigla principale. La tabella seguente riporta le sigle principali di alcuni chip comunemente usati per i BIOS delle schede madri:
Sigla principale |
MB |
Famiglia |
27C256 |
0,256 |
EPROM |
27C512 |
0,512 |
EPROM |
28F001BXT-28F1000PL/PC/PPC |
1 |
Flash |
29EE010-29EE011 |
1 |
EEPROM |
29EE020 |
2 |
EEPROM |
29C020-39SF020-28F2000 |
2 |
Flash |
29C040-49F04-49LF04-49VF040 |
4 |
Flash |
Come si vede, ogni costruttore utilizza sigle differenti, ma si nota come:
-
i chip da 1M terminano solitamente per 1-10-11;
-
i chip da 2M terminano con 2 o 20;
-
i chip da 4M con 4 o 40.
Questo, almeno in linea di massima, permette di riconoscerli a prima vista. Non sempre i vari chip sono intercambiabili su tutte le schede, sia per la tensione di lavoro che per quella di programmazione, sia per le caratteristiche di scrittura.
|
ATTENZIONE :
|
Verificate queste possibilitá consultando il manuale della scheda o l'Assistenza del Costruttore (della scheda madre, non del chip o del BIOS). Si sta verificando la tendenza di alcuni costruttori ad utilizzare chip per il BIOS non in contenitori DIL, ma in altri formati.
L'immagine qui di seguito, rappresenta i due modelli piú comuni di package
per chip BIOS, ovvero il classico DIL a 32 piedini ed il piccolo PLCC. |
|
Questo tipo di chip é destinato a diventare comune per un semplice motivo: la superficie occupata é molto minore di quella di un DIL e , nelle sempre piú piccole ed affollate schede madri, il recupero di un certo spazio puó essere fondamentale. In positivo, peró, c'é da dire che, per ora, la maggior parte dei costruttori che impiega questo package lo installa in uno zoccolo da cui, con una certa cautela, é estraibile e reinseribile.
|
Attenzione, peró, perché alcuni costruttori di prodotti economici,
proprio per questioni di costo, non utilizzano zoccolo per i chip del
BIOS, ma lo saldano direttamente sul circuito stampato. |
- Paragrafo 4.1: il chip che contiene il BIOS, la differenza tra il costruttore del chip (hardware) ed il produttore del BIOS (Software);
- Paragrafo 4.2: le varie tipologie di chip, le sostanziali differenze che intercorrono tra i diversi tipi di chip e l'interpretazione delle etichette che vengono poste sulle memorie che contengono il BIOS;
- Paragrafo 4.3: altri tipi di chip, problemi legati alla produzione dei chip.
[1] Enciclopedia aperta gestita da editori volontari. Ha come aspirazioni fondamentali contenuto libero ed articoli oggettivi. -> it.wikipedia.org/wiki/BIOS
[2] La Free Software Foundation (FSF) da sempre impegnata nella difesa e nella promozione dello sviluppo di software libero, in una delle sue ultime battaglie ha lanciato un appello a tutti i produttori di hardware e ai vendor di PC affinché eliminino quelle restrizioni che oggi, specie in ambito desktop, ostacolano la diffusione del software open source. -> www.fsf.org/campaigns/free-bios.html
[3] Sito di informazione Informatica con sviluppo di argomenti diversi ogni giorno andando nei particolari con semplicità e chiarezza. -> www.comefunziona.net
[4] Punto Informatico è una testata giornalistica on-line indipendente e gratuita in lingua italiana, specializzata in tecnologia, Internet e comunicazione, con rubriche e forum di discussione. Il quotidiano è stato fondato nel 1995 da Andrea De Andreis e distribuito inizialmente attraverso il sistema BBS. La prima apparizione sul web è del 7 febbraio 1996. Punto Informatico è stata la prima testata giornalistica specializzata italiana sul Web con cadenza quotidiana. Una particolarità della filosofia della testata è la pubblicazione di tutti i contenuti del sito (articoli, messaggi, approfondimenti, editoriali...) sotto la licenza di utilizzo Creative Commons, che prevede la possiblità di redistribuire, copiare e trasmettere i documenti coi soli obblighi di non modificarli e non riutilizzarli per scopi commerciali. I forum presenti sul sito per qualche anno sono stati organizzati secondo una gerarchia simile a quella di Usenet, con la possibilità per gli utenti di aprire collegialmente forum tematici di proprio interesse. Dopo varie critiche per la grande libertà concessa ai commentatori, liberi di scrivere senza previa registrazione, da dicembre 2006 i forum sono stati dotati di un sistema di moderazione, e da giugno 2007 è stato introdotto l'obbligo di registrazione. Tuttavia, in linea con la filosofia della testata e il desiderio di mantenere un ambiente di libera discussione, è stato creato un apposito sito nel quale i cosiddetti troll, potessero continuare a scrivere.-> punto-informatico.it
[5] Il PLUTO Project è un gruppo di persone che si propone di promuovere software libero rispondente alle linee guida del progetto GNU. Questo viene espresso chiaramente nel Manifesto del gruppo e nel Contratto Sociale. -> www.pluto.it/files/journal/pj0505/freebios.html
[6] Articolo rilevato e tradotto dal sito del noto Peter Gutmann, un ricercatore neozelandese che ha compiuto un studio personale sui costi di Vista nella gestione e protezione dei contenuti. -> www.cs.auckland.ac.nz/~pgut001/pubs/vista_cost.html
[7] Sito interamente dedicato ai FREE BIOS e al loro sviluppo, all'interno vi sono contenute tutte le informazioni necessarie per poter contribuire al progresso del progetto. Vi è possibile trovare una dettagliata documentazione sulle schede madri di ultima generazione su cui è possibile l'installazione di LinuxBIOS, i manuali di configurazione di LinuxBIOS, il codice, le tecniche di installazione e tutto ciò che riguarda i nuovi progetti di FREE BIOS. -> www.linuxbios.org/index.php/Welcome_to_LinuxBIOS
[8] Articolo preso dall'area sicurezza e protezione pc del sito della SYE azienda di servizi con esperienza pluriennale nel campo dell'informatica.
-> www.sye.it
[9] Articolo di Linux Security HOWTO questo documento è una visione d'insieme dei problemi di sicurezza che un amministratore di sistemi Linux si trova ad affrontare. Tratta una politica di sicurezza generale e una serie di esempi specifici di come mettere meglio al sicuro da intrusi un sistema Linux. Sono anche inclusi collegamenti a materiale e programmi inerenti. -> siena.linux.it/documenti/security