Slowly booting full Linux on the intel 4004 for fun, art, and absolutely no profit - Linux/4004 Dmitry.GR
(dmitry.gr)
from lemmyreader@lemmy.ml to linux@lemmy.ml on 20 Sep 2024 18:04
https://lemmy.ml/post/20516863
from lemmyreader@lemmy.ml to linux@lemmy.ml on 20 Sep 2024 18:04
https://lemmy.ml/post/20516863
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.
threaded - newest
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:
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 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.