Hackers are masochists. Almost by definition, hackers push hardware and software (and themselves) beyond breaking point to find out, once and for all, whether something is possible or not. In Dmitry Grinberg’s case, he decided to find out the lowest spec possible for a Linux PC.
It is generally believed that Linux requires a 32-bit processor with a modern memory management unit (MMU) and more than 1MB of RAM. These numbers aren’t pulled out of thin air: The computer that Linus Torvalds developed Linux on housed an Intel 80386, the first 32-bit consumer CPU with proper memory management. Grinberg, obviously not a fan of excess bits, has successfully booted Linux with an ATmega1284p, 8-bit RISC microcontroller clocked at 24MHz and equipped with no less than 16KB of SRAM and 128KB of flash storage.
As you can see in the picture, though, Grinberg wasn’t able to overcome the RAM limitation, and so he’s added an old-school (circa 1990) 30-pin 16MB SIMM to the mix. There’s also a 1GB SD card on the back of the circuit board, which holds a copy of Ubuntu 9.04 (Jaunty).
How did Grinberg get Linux to actually boot on an 8-bit RISC microcontroller, though? Well, that’s the beautiful bit: He wrote an ARMv5 emulator. The ARMv5 is a 32-bit processor with an MMU, and so as far as Ubuntu is concerned everything’s fine. Software emulation of an ARM CPU on an 8-bit microcontroller obviously takes its toll, though. All told, Grinberg’s computer has an effective clockspeed of just 6.5KHz. To put that into perspective, a 2GHz CPU is 300,000 times faster (and in practice, with its modern hardware, we’re probably talking of an effective speed that’s millions of times faster).
Just how slow is a 6.5KHz computer? Well, it takes two hours to load a bash command prompt, and a further four hours to load Ubuntu. If you want to open an actual window manager, Grinberg simply says “starting X takes a lot longer.” We’re probably talking about days to perform any kind of complex, graphical task. Ever the optimist, though, Grinberg points out that “once booted, the system is somewhat usable,” and that the command line usually responds “within a minute.” Embedded below is a timelapse video of the world’s slowest Linux PC booting and running a few CLI commands.
On another positive note, Grinberg’s computer is very simple to put together — all you need is a few wires and a soldering iron — and it should be very cheap, too; on the order of $20, or so. With more than just a hint of hacker pride, Grinberg wraps up by saying that “This is definitely not the fastest, but I think it may be the cheapest, slowest, simplest to hand assemble, lowest part count, and lowest-end Linux PC.”
I think, though, for a few dollars more I’ll opt for a Raspberry Pi — it’s about the same size, and it can boot Linux in under a minute.
Read more at Dmitry Grinberg’s site