Going old school: Linux running on an 8-bit processor

Going old school: Linux running on an 8-bit processor

Who needs 64-bit processors when you can have an incredibly slow 8-bit one!

Being told that Linux requires a 32-bit processor, 1MB of memory, and a MMU (Memory Management Unit) as an absolute minimum wasn't good enough for Dmitry Grinberg. When he saw threads on microcontroller boards asking whether Linux could run on an 8-bit microprocessor, the responses were full of ridicule, and outright dismissed the possibility.

In an attempt to prove the naysayers wrong, Dmitry went on to create an 8-bit computer using an ATmega1284p processor, a 16MB 30-pin SIMM, and a 1GB SD card for storage, all connected on a prototyping breadboard.

To emulate a 32-bit processor and the MMU, Dmitry had to write an ARM emulator. He decided against porting existing emulator due to the way AVR compiles to machine code, stating the issue of bit shifting integers by 20 causing zero values, among other potential problems. Working around these pitfalls would require careful modification of exiting code, a tedious and error-prone excersise.

A serial connection between the 8-bit computer and a modern 32-bit PC allows Dmitry to type commands and see the mini PC in action. The PC does not require this connection to function, and it can be modified to use its own LCD and keyboard.

For reference, the processor at the heart of this design runs at a grand total of 20MHz, has a two stage pipeline, and costs around $6. Also interesting to note is that Dmitry overclocked the processor to 24MHz. Factoring in the large overhead of the emulator, it was estimated that the effective clock rate is 6.5KHz (yep, kilohertz!)

Surprisingly the completed project actually works! Granted, it's a little slow, but it can boot Ubuntu, which proves that you can actually run Linux on less than minimum spec. To quote Dmitry, "It takes about 2 hours to boot to bash prompt ("init=/bin/bash" kernel command line). Then 4 more hours to boot up the entire Ubuntu ("exec init" and then login). Starting X takes a lot longer."

What's really neat about the project is that it's possible to build your own. The pin-outs, hardware spec and source code are all provided on Dmitry's webpage. If you're not willing to do it yourself, you can see it in the video below (it's in 3x speed).

A handmade, overclocked, functional computer running Linux - what's there not to like?

See more about:  avr  |  8bit  |  retro  |  linux  |  dmitry  |  grinberg  |  atmega1284p  |  ubuntu
 
 

Readers of this article also read...

JJ Abrams will eat the world after making Portal, Half Life movies 

JJ Abrams will eat the world after making Portal, Half Life movies

 
Unboxed: Thermaltake Chaser A41 

Unboxed: Thermaltake Chaser A41

 
Unboxed: Thermaltake Soprano  

Unboxed: Thermaltake Soprano

 
Build Your Own Steam Box 

Build Your Own Steam Box

 
Welcome to the new PC & Tech Authority, now with added Atomic! 

Welcome to the new PC & Tech Authority, now with added Atomic!

 

Latest Comments

Latest Competitions

Win a PC copy of DEFIANCE plus a Hellbug figurine and messenger bag! 

Win a PC copy of DEFIANCE plus a Hellbug figurine and messenger bag!

Win a Defiance prize pack and join the fight now!
 

Latest Poll

Which broadband network do you think is the best choice for Australia?



or View results
The Coalition's.
  19%
 
Labor's.
  63%
 
Screw this I'm going back to smoke signals and string on a can.
  19%
TOTAL VOTES: 1634

Vote now
Ads by Google

From our Partners

PC & Tech Authority Downloads