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/…
Interestingly, its init(7) program does not mount the RK to /usr, suggesting that /usr was
stored on the RF.
Sincerely,
Yufeng