Linux takes 4.76 days to boot on an ancient Intel 4004 CPU — CPU precedes the OS by 20 years

Programmer and hardware enthusiast Dmitry Grinberg has shared a video in which he boots and runs commands on an Intel 4004-powered PC running Linux. The video demonstrates the excruciating time to do anything or execute the most straightforward commands. Booting took 4.76 days, for example, and a simple directory listing didn’t hit the screen until 16 hours after inputting the ‘ls’ command.

Grinberg booted the machine using the Linux prompt. Thankfully, via the magic of video editing, much of the waiting around between commands gets very fast-forward. An unedited version of the video, running at 120x real-time, exists but takes over one hour and 40 minutes for completists.

The video begins by pointing out that the world’s first commercial microprocessor, the Intel 4004 (c.1971), predates the first release of Linux by a fulsome 20 years. This yawning chasm in time, plus the chip’s slowness and lack of modern features, means that Linux never supported it. Therefore, Grinberg needed a little digital wrangling to achieve his feat.

Linux/4004 - YouTubeLinux/4004 - YouTube

Watch On

For full details of the project and setup, Grinberg wrote a detailed blog post about ‘Slowly booting full Linux on the Intel 4004 for fun, art, and absolutely no profit.’ In essence, to bridge the hardware/software divide, the enthusiast emulated the more capable MIPS R3000 processor, which boasts the required C compiler support.

Even with these emulation shenanigans, a lot of other background work had to be done, and a large portion of the groundwork for this slow-computing achievement was spent on speed optimizations. Grinberg managed to get the Linux kernel size down to about 2.5MB by removing unnecessary feature support. Thus, he whittled down boot times from around 8.4 days at the start of the optimization process to a wind-in-your-hair 4.76 days.

Moving our attention back to the embedded video, we see it progress from its introductory message to a ‘loading the kernel’ and then a ‘booting the OS’ stage. Eventually, we see the message “Welcome to uMIPS: Feel free to look around slowly” and a blinking prompt on the screen. According to the programmer, we only reached this point nearly five days after power-on.

 

Intel 4004 running Linux

 

(Image credit: Dmitry Grinberg)

To begin working in the Linux demo, Grinberg typed in the directory listing command. The system took about 16 hours to list the five or six files in the directory. A similar time was required to type in and execute a command to display the Linux kernel version (Linux uMIPS 4.4...).

A glutton for punishment, Grinberg went on to execute commands to display the CPU version—reported to be an R3000 v.2 due to the emulation process going on, as mentioned above. To create some ‘fancy graphics,’ the hacker ran an ASCII Mandelbrot generator. Thankfully, he didn’t add any argument to turn ‘RTX On.’

The video finishes with the system being quizzed regarding its uptime. This command took about 14 hours to execute and output its results to the screen – meaning the system’s reported 22:47:02 uptime was questionable.

Grinberg admits his Linux/4004 project is mainly artistic, but it also demonstrates Linux’s flexibility. He designed the custom 4004 circuit board, with its flashing VFDs and built-in display, for mounting and showcasing on a wall.

If you want to take on this project yourself, the programmer has graciously shared schematics, a priced and linked parts list, a disk image for your SD card, and more. Grinberg is also considering offering the whole thing as a kit or pre-built. If you are interested, drop him a line via the email address on his blog post. However, he warns that a pre-built system might not be cheap, especially if you are looking for a system that includes all the 1970s components.

Previous Post Next post
article