this post was submitted on 23 Sep 2024
96 points (99.0% liked)

Linux

5402 readers
334 users here now

A community for everything relating to the linux operating system

Also check out [email protected]

Original icon base courtesy of [email protected] and The GIMP

founded 1 year ago
MODERATORS
top 8 comments
sorted by: hot top controversial new old
[–] [email protected] 43 points 2 months ago* (last edited 2 months ago)

If you're skeptical that this feat is possible with a raw 4004, you're right: The 4004 itself is far too limited to run Linux directly. Instead, Grinberg created a solution that is equally impressive: an emulator that runs on the 4004 and emulates a MIPS R3000 processor—the architecture used in the DECstation 2100 workstation that Linux was originally ported to. This emulator, along with minimal hardware emulation, allows a stripped-down Debian Linux to boot to a command prompt.

that is 2^8 levels of insane! and of course its Debian.

edit: 4bit data 12bit addressing make it an 8bit processor ; -)

I will slowly corrode on this hill.

[–] gravitas_deficiency 20 points 2 months ago (2 children)

I want to see the neofetch output lol

[–] [email protected] 34 points 2 months ago (1 children)

Better go with fastfetch, it might save you a couple days' runtime.

[–] [email protected] 4 points 2 months ago (1 children)

There is one in rust, not feature comparable but instant

[–] [email protected] 2 points 2 months ago

Fastfetch is more feature-complete than neofetch and is quite fast. Not sure what numbers you'd be looking at on hardware that old though.

[–] [email protected] 15 points 2 months ago

Here you go:

                   -`
                  .o+`                 user@intel4004
                 `ooo/                 ----------------
                `+oooo:                OS: Arch Linux BCD oriented
               `+oooooo:               Host: Intel 4004 @ 740 KHz
               -+oooooo+:              Kernel: 0.0.1-custom
             `/:-:++oooo+:             Uptime: 3 hours, 12 mins
            `/++++/+++++++:            Packages: 3 (pacman)
           `/++++++++++++++:           Shell: sh 0.5
          `/+++ooooooooooooo/`         CPU: Intel 4004 (4-bit) @ 740 KHz
         ./ooosssso++osssssso+`        Memory: 0.64 KB / 8 KB
        .oossssso-````/ossssss+`       Storage: None (Using Paper Tape)
       -osssssso.      :ssssssso.      GPU: None (Terminal Only)
      :osssssss/        osssso+++.     Display: None (TTY Only)
     /ossssssss/        +ssssooo/-     Network: None (Hand-delivered punch cards)
   `/ossssso+/:-        -:/+osssso+`
  `+sso+:-`                 `.-/+oso:
 `++:.                           `-/+/
 .`                                 `/
[–] pftbest 9 points 2 months ago* (last edited 2 months ago)

Why mips and not RiscV? I would assume it's easier to emulate in software and has good support in linux

EDIT: found it

Some architectures had arbitrarily-shifted operands all the time (ARM), some have shitty addressing modes necessitating that they would be slow (RISCV), some would need more than 4KB to even decode instructions (x86), and some were just too complex to emulate in so little space (PPC).

Could it be the pc relative addressing often used on risc-v would be slow to run on 4004?

[–] [email protected] 6 points 2 months ago