Run ancient UNIX on modern hardware

18 hours ago (github.com)

Robert Nordier's port of v7 to x86 probably didn't get the attention it deserves.

It's what it sounds like: v7 Unix ported to x86. Unix v7 was portable enough and the PDP-11 architecturally similar enough to x86 that almost all the code works without change. (Many of the changes from v6 to v7 were to make Unix more portable; it was already running on at least 4 different architectures by 1980.)

I wonder if the obscurity is because the x86 v7 source was an archive inside an archive? Seems a minor thing but not having it to browse online is likely to be an off-ramp for most.

https://www.nordier.com/v7x86/v7x86-0.8a-all.tar.xz has releases/v7x86-0.8a.tar.bz2 (you'll want to use a -C prefix it explodes in the current directory). Source is in usr/sys and usr/src like normal for v7 Unix.

And yes, your modern Linux system's GNU tar is reading the ancient v7 tar format just fine. Neat, eh?

You might find the modern "file" command can still recognize the v7 a.out binary format too:

    $ file usr/bin/compress  
    usr/bin/compress: a.out little-endian 32-bit executable not stripped

Unix version 7 remains a sort of lowest common denominator almost half a century later.

xv6 the MIT 'spiritual port' (so to speak) of Version 6 Unix probably deserves to be mentioned there as well, as while it's not actually a historic Bell Labs Unix it will better meet some people's needs. https://pdos.csail.mit.edu/6.828/2012/xv6.html https://pdos.csail.mit.edu/6.828/2025/xv6.html

At work at the time (I was an intern), in 1993, we ran SCO Unix on a 25 MHz 386sx with 8 MB and another 6 MB on an add-in card on the ISA bus. And while the compilation with Motif was a bear (1 hour for a 1 MB executable), the actual app was reasonably snappy.

I can't imagine how FAST that system would feel with modern hardware.

  • > SCO Unix on a 25 MHz 386sx with 8 MB and another 6 MB on an add-in card

    OK, SCO Xenix not SCO Unix, but I deployed production Xenix boxes with 4MB of RAM on 80386DX processors.

    It ran well and supported 4-6 users no problem. As I recall, one customer had 8 users and they needed a RAM upgrade. I think, dimly now as this wasn't my department, it was eye-wateringly expensive. Something in the region of £5,000 to £6,000 (at the time, $10K+).

    We did deploy one box with just 2 MB of RAM, but that didn't work well once a few users on terminals logged in. They had to upgrade the RAM.

    FWIW these were 32-bit 386 machines, but with no CPU cache – the lower-end IBM PS/2 Model 80 variants of the time, with 16 MHz and 20 MHz CPUs. (The top-end 25MHz Model 70 had a small SRAM cache for the CPU. It cost over £10,000 with no screen, keyboard or mouse, and my Acorn Archimedes A310, which cost me £800, absolutely smoked it: it was about 4x as fast.)

    That's when I knew Arm would eventually eat x86: in 1989. It's finally happening now.

    But I was running PC DOS and DOS software in a window on my ARM desktop in 1989, in pure software emulation, and it was sluggish but usable. CPU was equivalent to a 2-2.5 MHz 8086, but disk performance was better than a screaming fast SCSI disk, so it balanced out.

  • I tried EMWM with Motif based tools (from Vim to Emacs, EMWM, XFile, Ximaging, Classic-Colors (and even tried to write a simple UI for Mplayer) under a 10-15 year old n270 based netbook.

    https://fastestcode.org/emwm.html

    It ran really fast. Also, if Dillo ran snappy under a 486 (today so-so except for a slight delay because of TLS, but bearable once the page it's rendered), Dillo today runs at light speeds. This on my n270 netbook under OpenBSD. With NetBSD, it would run slightly faster.

I can't pick up the caper (due to the customary backlog of insane projects), but IMHO someone™ should port RetroBSD¹ to more microcontrollers. There's even a C compiler² running on device!

There's a UNIX shape void in the embedded world. Todays microcontrollers routinely come with several megabytes of RAM.

1: https://github.com/RetroBSD/retrobsd

2: https://github.com/RetroBSD/retrobsd/tree/master/src/cmd/sma...

Is 'ancient UNIX' a term of art, or should I be offended?