- cross-posted to:
- tecnologia@feddit.cl
- cross-posted to:
- tecnologia@feddit.cl
TL;DR
I booted Debian Linux on a 4-bit intel microprocessor from 1971 - the first microprocessor in the world - the 4004. It is not fast, but it is a real Linux kernel with a Debian rootfs on a real board whose only CPU is a real intel 4004 from the 1970s. The video is sped up at variable rates to demonstrate this without boring you. The clock and calendar in the video are accurate. A constant-rate video is linked below.
Since it’s a wall art project, now get it to run Minecraft and run a redstone computer on it.
Now emulate the 4004 logic design in redstone on the 4004
And then this thing on top of that, again. Over and over.
If it’s the first one when why the fuck is it called the 4004 and not just the 1?!
That’s a really good question and I had to know, the answer is kinda neat:
Intel’s chip-naming scheme at that time used a four-digit number for each component. The first digit indicated the process technology used, the second digit indicated the generic function, and the last two digits specified the sequential number in the development of that component type. Using this convention, the chips would have been known as the 1302, 1105, 1507, and 1202. Faggin felt this would obscure the fact that they formed a coherent set, and decided to name them as the “4000 family”.[24] The four chips were the following: the Intel 4001, a 256-byte 4-bit ROM; the Intel 4002, DRAM with four 20-nibble registers (total size 40 bytes); the Intel 4003, an I/O chip comprising a 10-bit static shift register with serial and parallel outputs; and the Intel 4004 CPU.
Why they jumped to 4000 from 1000 tho, I didn’t see.
If I may venture a guess:
There are four of these chips (1302, 1105, 1507, 1202). Someone, trying to speed-talk, referred to them as the “four thousand-series chips” (instead of the “four, one-thousand-series chips”), and someone misheard or misunderstood that as the “4000-series chips”. After several levels of this telephone game, marketing got involved, and they were just renamed into the 4000 series instead of redoing the marketing documents.
Just a guess.
How is it “full Linux” when Linux has always required an integrated MMU (which is why it’s never supported anything less than a 386)? I mean, yes, you can modify it to run on more primitive chips at the expense of having proper virtual memory support, but if you do that I don’t think it counts as “full Linux” anymore!
If you read the article, it is indeed full Linux because the 4004 is running a MIPS emulator that provides the necessary memory management features. Pretty much all of the “run Linux on some old chip incapable of running Linux” projects achieve it via emulating a more featured architecture that Linux supports, not by somehow compiling Linux to natively run on a 4 bit, MMU-less architecture.
This is the whole idea behind Turing-completeness, isn’t it? Any Turing-complete architecture can simulate any other.
Reminds me of https://xkcd.com/505/
Any time I see an article about someone doing things with Redstone circuits, I think about that comic.
👏
But does it run Doom?
If it is “full Linux” then the answer is clearly yes. Not very fast I suppose.
At first I was not very impressed. Then I read that that 4004 does not have any AND, OR, or XOR instructions. Yikes.