Linux gira su un microcontrollore ATMEL a 8bit

Vi siete mai chiesti quanto "minimal" può essere un hardware su cui gira Ubuntu? Sul blog personale di un programmatore russo, ben noto alla comunità, questa domanda trova finalmente una risposta.

Uno sviluppatore Russo, Dmitry Grinberg, è riuscito ad aver successo in una interessantissima sfida: far girare un sistema operativo Linux su un microcontrollore ad 8-bit.

La distribuzione in questione è Ubuntu, ormai ben nota agli onori della cronaca per essere una tra le più apprezzate e diffuse tra coloro che apprezzano il progetto Open Software che dai tempi in cui Linus Torvalds ebbe la prima idea ha subito evoluzioni, all'epoca, certamente imprevedibili.

Il traguardo appare tanto più interessante quanto la precisione con cui le macchine su cui Ubuntu è ospitato sono a 32-bit e la gestione della memoria, nonché la sua quantità (e tipo!) disponibile è certamente molto maggiore.

La sua familiarità con la tecnologia degli ARM, anche a fronte, evidentemente, delle esperienze lavorative, il fatto che sapesse che Linux è già stato ospitato su processori ARM, gli ha permesso, tra le altre cose, di programmare un emulatore ARM (ARMv5TE) proprio per ATmega1284p, il quale, per l'occasione, ha subito un overclock a 24 MHz

Tra le caratteristiche del micro-controllore, che gli amanti di Arduino riconosceranno, ci sono i 16 KB di memoria RAM ed i 128 KB di memoria Flash, per l'appunto, decisamente meno di quanto normalmente è richiesto ad un pc per poter eseguire anche solo il caricamento del sistema operativo.

Per ovviare alla carenza di memoria, è stata utilizzata una scheda SD da 1 GB grazia all'uso di un supporto 30-pin SIMM.

La programmazione adottata da Grinberg ha permesso alla SDRAM di essere letta ad una velocità di 300KB/s e stando a quanto dichiarato da lui stesso, la velocità effettiva dell'emulatore è di 6.5 kHz. Non è difficile capire come mai il primo boot abbia richiesto la bellezza di 2 (!!) ore.

La tecnica di programmazione usata è quella del “bit-banging”, ovvero una metodologia per la comunicazione seriale che utilizza il software al posto dell'hardware dedicato, “dedicandosi” il compito di “settare” i pin del micro-controllore, e tutti i parametri del caso, come “timing”, livelli, temporizzazioni ecc.

Il bit-baging non è, come potrebbe sembrare a primo impatto, un mero esercizio per smanettoni ma un metodo utile che rappresenta un approccio minimalista ed efficace per evitare di doversi arrendere alla sostituzione dell'hardware in favore di uno più performante.

In virtù di quanto detto, è immediato intuire che cambiare la distribuzione o migliorare le specifiche porterebbe l'intero sistema ad avviarsi molto più velocemente. A tal proposito, per gli amanti dell'ultima e più popolare emule di Ubuntu nata, Mint, la sfida potrebbe essere aperta.

Su suo si to Grinberg fornisce un'accurata descrizione del procedimento e delle singole variabili e fasi di tutta “l'operazione”, corredandolo con un video.

Se vi piace il genere, non potete non dargli un'occhiata e concordare con chi, tra i commenti, ha definito questo risultato “breathtaking”.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend