[TUHS] 1972 UNIX V2 "Beta" Resurrected
Angelo Papenhoff
aap at papnet.eu
Tue Feb 18 19:52:41 AEST 2025
This is very exciting news!
I have to say i'm a bit surprised my emulator of all things can run it.
It's not terribly flexible and doesn't have a lot of features. So the
next step would be to restore the assembly source? :)
cheers,
aap
On 18/02/25, Yufeng Gao via TUHS wrote:
> Hi everyone,
>
> First-time poster here. Near the end of last year, I did some forensic analysis on the DMR tapes (https://www.tuhs.org/Archive/Applications/Dennis_Tapes) and had some fun playing around with them. Warren forwarded a few of my emails to this list at the end of last year and the beginning of this year, but it was never my intention for him to be my messenger, so I'm posting here myself now.
>
> Here's an update on my work with the s1/s2 tapes - I've managed to get a working system out of them. The s1 tape is a UNIX INIT DECtape containing the kernel, while s2 includes most of the distribution files.
>
> The s1 kernel is, to date, the earliest machine-readable UNIX kernel, sitting between V1 and V2. It differs from the unix-jun72 kernel in the following ways:
>
> - It supports both V1 and V2 a.outs out of the box, whereas the unmodified unix-jun72 kernel supports only V1.
> - The core size has been increased to 16 KiB (8K words), while the unmodified unix-jun72 kernel has an 8 KiB (4K word) user core.
>
> On the other hand, its syscall table matches that of V1 and the unix-jun72 kernel, lacking all V2 syscalls. Since it aligns with V1 in terms of syscalls, has the V2 core size and can run V2 binaries, I consider it a "V2 beta".
>
> login: root
> root
> # ls -la
> total 42
> 41 sdrwrw 7 root 80 Jan 1 00:02:02 .
> 41 sdrwrw 7 root 80 Jan 1 00:02:02 ..
> 43 sdrwrw 2 root 620 Jan 1 00:01:30 bin
> 147 l-rwrw 1 root 16448 Jan 1 00:33:51 core
> 42 sdrwrw 2 root 250 Jan 1 00:01:51 dev
> 49 sdrwrw 2 root 110 Jan 1 00:01:55 etc
> 54 sdrwrw 2 root 50 Jan 1 00:00:52 tmp
> 55 sdrwrw 7 root 80 Jan 1 00:00:52 usr
> # ls -la usr
> total 8
> 55 sdrwrw 7 root 80 Jan 1 00:00:52 .
> 41 sdrwrw 7 root 80 Jan 1 00:02:02 ..
> 56 sdrwrw 2 28 60 Jan 1 00:02:22 fort
> 57 sdrwrw 2 jack 50 Jan 1 00:02:39 jack
> 58 sdrwrw 2 6 30 Jan 1 00:02:36 ken
> 59 sdrwrw 2 root 120 Jan 1 00:00:52 lib
> 60 sdrwrw 2 sys 50 Jan 1 00:02:45 sys
> 142 s-rwrw 1 jack 54 Jan 1 00:52:29 x
> # ed
> a
> main() printf("hello world!\n");
> .
> w hello.c
> 33
> q
> # cc hello.c
> I
> II
> # ls -l a.out
> total 3
> 153 sxrwrw 1 root 1328 Jan 1 00:02:12 a.out
> # a.out
> hello world!
> #
>
> It's somewhat picky about the environment. So far, aap's PDP-11/20 emulator (https://github.com/aap/pdp11) is the only one capable of booting the kernel. SIMH and Ersatz-11 both hang before reaching the login prompt. This makes installation from the s1/s2 tapes difficult, as aap's emulator does not support the TC11. The intended installation process involves booting from s1 and restoring files from s2.
>
> What I did was I extracted the files from the s1 tape and placed them on an empty RF disk, then installed the unix-jun72 kernel. After booting from the RF under SIMH, I extracted the remaining files from s2. Finally, I replaced the unix-jun72 kernel with the s1 kernel using a hex editor, resulting in an RF disk image containing only files from s1/s2. This RF image is bootable under aap's emulator but not SIMH.
>
> The RF disk image can be downloaded from here (https://github.com/TheBrokenPipe/Research-UNIX-V2-Beta):
> Direct link - https://github.com/TheBrokenPipe/Research-UNIX-V2-Beta/raw/refs/heads/main/s1s2unix_rf.img
>
> Interestingly, its init(7) program does not mount the RK to /usr, suggesting that /usr was stored on the RF.
>
> Sincerely,
> Yufeng
More information about the TUHS
mailing list