Hackable: Ubuntu boots on 8-bit microcontroller
Source: Dmitry Grinberg Developer Dmitry Grinberg has apparently managed to boot Ubuntu Linux up to the shell on an Atmel 8-bit microcontroller; this has led some to ask if he's a genius or a madman. Since normal Linux distributions expect to find a 32-bit processor and a memory management unit (MMU), Grinberg had to overcome several obstacles. For example, he didn't hesitate to write an ARM emulator (ARMv5TE) for the ATmega1284p, which is slightly overclocked at 24 MHz. The developer said that he chose ARM because he was already familiar with this technology and because Linux runs on ARM processors.
The microcontroller itself only offers 16 KB of RAM and 128 KB of Flash memory, but it was extended for the project using a 1 GB SD card and an old PC memory module (30-pin SIMM). Grinberg used bit banging to program the memory interfaces himself. This allows the SDRAM to be read with a bandwidth of 300 KB per second. Grinberg says that the effective speed of the emulated ARM CPU is 6.5 KHz – consequently, booting the chosen Linux version to the prompt did require a hefty two hours. Booting should be considerably faster with more compact Linux derivatives.
On his web site, Grinberg has released a detailed description of his efforts complete with a video clip. The developer has made the emulator source code available to download and provides tips on how to port the code to other processors. Dmitry Grinberg's description has also attracted readers' comments that are worth reading.