giovedì, agosto 28, 2008

Il Boot Loader Universale: "das U-Boot"

In attesa del Freerunner mi sto un po' documentando e preparando all'evento. Sto cercando di capire che tipo di sofware mi troverò davanti che operazioni dovrò imparare a fare per cambiare distribuzione, che distribuzioni potrò installare, etc etc...
Volendo procedere in ordine, sembra che il FR monti come boot loader UBoot... mi sono documentato e ho trovato questo eccellente (perché altamente comprensibile e ben scritto) articoletto "Introduction to Das U-Boot, the universal open source bootloader". Ne riporto una parte, che reputo interessante, tradotta in italiano da me medesimo.

Prima una breve nota alla traduzione... in ambito informatico ci sono delle cose abbastanza intraducibili, o almeno che io ho sempre letto in inglese e delle quali non ricordo traduzione italiana; per esempio: "embedded linux platforms" starebbe per piattaforme con linux incassato/incastrato/conficcato... generalmente ci si riferisce a software "low level" nel senso che si interfaccia direttamente all'hardware. Quindi come rendere tutto ciò con sole tre parole? Proviamoci...
Seconda nota: non ho tradotto pedantemente, per quanto possibile, l'articolo, ma ho un po' smussato... Inoltre alcune cose le ho lasciate in inglese, non ho la mania d'oltralpe di tradurre qualsiasi cosa.

Piattaforme che usano come motore linux stanno apparendo sul mercato a una frequenza stupefacente. Dalle schede da tre pollici "Gumstix" ai PDA e smart-phones, linux è dappertutto. Installare e lanciare (booting) Linux su queste schede che variano ampiamente è abbastanza un lavoro a giornata. Senza un buon boot loader queste macchine sono soltanto dei bei pezzi di silicio che non possono far nulla. È proprio qui che Das U-Boot, un boot loader universale (Free Software), si inserisce.
Un boot loader è un piccolo software che viene eseguito subito dopo l'accensione di un computer. Sul vostro desktop Linux conoscete probabilmente lilo o grub, che è collocato nel master boot record (MBR) del vostro hard drive. Dopo che il BIOS provvede a varie inizializzazioni di sistema, esegue il boot loader collocato nell'MBR. Successivamente il boot loader passa al kernel le informazioni di sistema ed esegue il kernel. Per esempio il boot loader dice al kernel quale partizione del disco rigido montare come root.
In un sistema embedded (dovreste aver capito a cosa ci si riferisce, p.e. pensate al software che è preinstallato sul vostro access point quando vi-ci-si collegate per configurarlo, quello è un tipico esempio di software embedded) il ruolo del boot loader è puù complicato perché questi sistemi non hanno un BIOS per fare la configurazione di sistema iniziale. L'inizializzazione base (low level) dei microprocessori, dei controllers di memoria e di altro hardware specifico varia da scheda a scheda e da CPU a CPU. Queste inizializzazioni devono essere effettuate prima che possa essere eseguito il kernel Linux (un'immagine del kernel).
Al minimo un loader embedded fornisce le seguenti caratteristiche:
• Inizializzazione dell'hardware, specialmente il controller di memoria.
• Fornisce i parametri di boot per il kernel Linux.
• Avvia il kernel Linux.
Inoltre, la maggior parte dei boot loaders fornisce delle features utili che facilitano lo sviluppo:
• Lettura e scrittura di porzioni arbitrarie di memoria
• Caricamento di immagini (non nel senso di jpg o bmp... ;-) ) binarie nella RAM della scheda via una porta seriale o Ethernet
• Copia di immagini dalla RAM alla memoria FLASH

Das U-Boot (un po' di storia)
Das U-Boot è un boot loader rilasciato sotto licenza GPL, è cross-platform ed è condotto dal project leader Wolfgang Denk e maturato da un'attiva comunità di sviluppatori e utenti. U-Boot fornisce un supporto immediato (out-of-the-box) per centinaia di schede e un'ampia varietà di CPU come PowerPC, ARM, XScale, MIPS, Coldfire, NIOS, MIcroblaze e x86. Si può configurare facilmente U-Boot per raggiungere il giusto bilanciamento tra un ricco insieme di caratteristiche e dimensione del binario.
U-Boot ha origine nel progetto 8xxROM, un boot loader per sistemi PowerPC 8xx, di Magnus Damm. Quando il prgetto venne portato in Sourceforge nel 2000, l'attuale project leader Wolfgang Denk lo rinominò in PPCBoot, poiché Sourceforge non ammette che l'iniziale del nome del progetto sia un numero.
L'essere aperto e utile alimentò il fuoco della popolarità di PPCBoot, portando gli sviluppatori a migrare (fare un porting di) PPCBoot a nuove architetture. Dal settembre 2002 PPCBoot supportava quattro diversi processori ARM e il nome PPCBoot iniziava a diventare strano/bizzarro. Nel novembre 2002 il team di PPCBoot ritirò il progetto, ciò portò alla comparsa di "Das U-Boot".
La forza dello sviluppo di progetti Free Software è chiaramente evidente nel successo di U-Boot. Le quattro libertà espresse dalla Free Software Foundation nella Free Sofware Definition alimentano direttamente l'impressionante progresso e l'ampia diffusione.


Se poi siete interessati ad aspetti più tecnici come compilare U-Boot per la vostra scheda e l'utilizzo base di U-Boot, vi rimando all'articolo originale.
d

Nessun commento: