

An Interactive-Speed Linux Computer Made of Only 3 8-Pin Chips (dmitry.gr) 35
Software engineer and longtime Slashdot reader, Dmitry Grinberg (dmitrygr), shares a recent project they've been working on: "an interactive-speed Linux on a tiny board you can easily build with only 3 8-pin chips": There was a time when one could order a kit and assemble a computer at home. It would do just about what a contemporary store-bought computer could do. That time is long gone. Modern computers are made of hundreds of huge complex chips with no public datasheets and many hundreds of watts of power supplied to them over complex power delivery topologies. It does not help that modern operating systems require gigabytes of RAM, terabytes of storage, and always-on internet connectivity to properly spy on you. But what if one tried to fit a modern computer into a kit that could be easily assembled at home? What if the kit only had three chips, each with only 8 pins? Can it be done? Yes. The system runs a custom MIPS emulator written in ARMv6 assembly and includes a custom bootloader that supports firmware updates via FAT16-formatted SD cards. Clever pin-sharing hacks allow all components (RAM, SD, serial I/O) to work despite the 6 usable I/O pins. Overclocked to up to 150MHz, the board boots into a full Linux shell in about a minute and performs at ~1.65MHz MIPS-equivalent speed.
It's not fast, writes Dmitry, but it's fully functional -- you can edit files, compile code, and even install Debian packages. A kit may be made available if a partner is found.
It's not fast, writes Dmitry, but it's fully functional -- you can edit files, compile code, and even install Debian packages. A kit may be made available if a partner is found.
Oblig. (Score:5, Funny)
imagine a beowulf breadboard of these...
Re: (Score:2)
Re: (Score:2)
But can a Gentoo install upgrade itself in finite time?
Re: (Score:2)
Just like any other Gentoo install, it can be upgraded over a weekend.
However, in this case, it's referring to a weekend on Pluto...
Re: (Score:2)
Unless you emerge the compiler suite and the desktop environment, stretching the weekend into a Venusian one...
Re: (Score:2)
Why emulate MIPS? Why not just native ARM or MIPS? (Score:2)
I'm curious: Why emulate MIPS? Why not just run ARM on ARM or MIPS on MIPS natively?
Re: (Score:1)
Re:Why emulate MIPS? Why not just native ARM or MI (Score:5, Informative)
Linux requires an MMU, and this ARM chip does not have one.
Re: (Score:2)
I read the article and noticed he had written a MIPS emulator in ARM assembly but I didn't realize that ARM still makes chips that don't have MMUs.
Re: (Score:2)
Most microcontrollers don't have an MMU
Re: (Score:1)
A) Linux does not require an MMU
B) Emulating a MIPS processor, does not magically add an MMU
Re: Why emulate MIPS? Why not just native ARM or M (Score:5, Informative)
Re: Why emulate MIPS? Why not just native ARM or (Score:5, Informative)
Re: (Score:1)
Cool, did not see ARM assembly since a very long time!
Re: (Score:2)
MIPS is not a dead architecture, at least not indirectly. RISC-V is very much a MIPS that had many flaws ironed out. They are very similar and was developed by the same people (+ new ones for RISC-V). Which brings me to... why does Dmitry have personal issues with RISC-V?
Re:Why emulate MIPS? Why not just native ARM or MI (Score:4, Insightful)
Well in terms of why MIPS (rather than ARM, ix86, 68000, etc), he'd already written a MIPS emulator.
But in terms of "Why emulate to begin with", the problem is that the microcontroller this is implemented on (the STM32G031) has virtually no RAM (officially only 8K although I think he says 16K is the actual amount. Either way it's puny.) So the microcontroller cannot run a Linux kernel on its bare hardware, it's simply too small. What can be done though is to write a CPU emulator that reads and writes to an external RAM module outside of the microcontroller.
A similar project (maybe the same guy? Unsure) that came out recently ran Linux on an Intel 4004 using much the same trick. The 4004 is way too crude for Linux to be ported to it directly, but it's entirely possible to write a CPU emulator in it that accesses memory outside of the 4004's usual memory range using a paging system or something similar. Unlike that though, this project seems to result in something usable, that boots (relatively) quickly and can run useful programs.
Nice project!
Re: Why emulate MIPS? Why not just native ARM or M (Score:5, Informative)
Re: (Score:2)
I don't have anything sensible to add technically, but damn it's impressive!
I also love the idea of using a small emulator to cream Linux onto smaller chips than would normally be expected.
Re: (Score:2)
Well, now I know you're here, let me just say I found what you did (with the 4004 as well as the project under discussion) completely awesome! A fun read and concept, thank you for sharing it!
Re: (Score:2)
Why do you have personal issues with RISC-V?
Whar wifi? (Score:2)
https://github.com/ESP32DE/Boo... [github.com]
Re: Whar wifi? (Score:5, Informative)
Re: (Score:3)
Great project, one of the rare recent posts that are interesting to read.
Re: (Score:3)
Yeah thanks for this.
Great work, really inspirational.
I wish we spent more time talking about this kind of stuff around here. It's what the site is supposed to be for.
Re: (Score:2)
"Hundreds of chips"? (Score:1)
I can run Linux on a Raspberry Pi. It's got one main chip and maybe a dozen smaller ones.
Even a modern laptop probably doesn't have hundreds of chips. A processor, I/O bridge, memory, and a handful of add-ons. I'd be surprised if it hit 100.
Re: "Hundreds of chips"? (Score:2)
Re: "Hundreds of chips"? (Score:2)
A minute? (Score:2)
If this impoverished --- but really cool --- system can boot Linux in about a minute, why isn't my laptop, which is likely three orders of magnitude faster, booting in a few tens of milliseconds?
I've long suspected that much of the normal boot sequence in modern computers is spent in various timeouts.
Re: (Score:2)
I don't know about timeouts, I suspect a lot of it is just delays.
My BIOS has an ultra fast boot mode, but I can't reasonably use it because you can't turn it off without either using a Windows tool (and I am not running Windows) or clearing CMOS, and I have a whole bunch of settings so that would be irritating on top of already being irritated because I had to do something that required I screw with the BIOS. That's never a good sign unless you're doing some performance tweaking. I have it configured to us