home *** CD-ROM | disk | FTP | other *** search
- This directory doesn't contain a full distribution of UNIX, but it has a
- bunch of stuff that Dennis Ritchie extracted from some old DECtapes at
- the labs. Here are his notes.
-
- s1-bits I haven't cracked this yet.
-
- s2-bits Is not source, but a dump of (parts of) /bin, /etc,
- /usr/lib, and bits of a few other directories.
- Caution! The tape uses absolute pathnames,
- and is dangerous to extract unless you want to install
- old PDP-11 binaries. (tap format).
-
- s1-bits tape
- ------------
-
- s1-bits is possibly output from a dump program like 1st Edition rkd(1),
- where the disk image was written `as is'. rkd(1) used to require nine
- DECtapes, so s1-bits may be one of the middle ones. Although there is
- substantial C and asm code on the tape (use strings(1) to see it), I
- can't find filenames ending in .c or .s. This seems to imply that the
- directory entries for the files are elsewhere, making it impossible to
- recover the contents. However, it is possible to manually extract files,
- such as the oldcp.c source file.
-
- After a bit of manual eyeballing, I've extracted what I can from this
- file, and placed the bits into s1-fragments.tar.gz
-
- s2-bits tape
- ------------
- The s2-bits tape is definitely recoverable, and both Dennis Ritchie and
- Warren Toomey have done so. Dennis used a plug-in for Plan 9 to read the
- tape. Warren used his Apout emulator and the real 1st Edition tap(1)
- program to decode the archive.
-
- The following list gives details of all the files in the s2-bits tap-format
- archive. The first columns are a direct copy of a listing done with the
- emulated 1st Edition tap(1) from the s2-bits tape.
-
- The last column gives the file's modified timestamp (in decimal)
- as recorded in the archive: I captured the smdate(2) argument in Apout
- as tap(1) tried to extract the archive. This is in 1/60th second units.
-
- The list is sorted by the TAP DATE column.
-
- MODE UID SIZE TAPA DATE NAME TAP DATE
- ===============================================================
- -rwrw 0 16448 538 Jan 1 00:33 /core 121912
- -rwrw 10 54 529 Jan 1 00:52 /usr/x 188944
- -rwrw 10 84 474 Jan 1 00:58 /usr/jack/x.f 209544
- -rwrw 0 312 490 Jan 1 00:58 /usr/jack/x.o 210381
- xrwrw 0 7514 475 Jan 1 00:58 /usr/jack/a.out 210836
- -r-r- 1 1664 533 Jan 1 01:31 /tmp/etma 328795
- -rwrw 1 670 530 Jan 1 01:33 /usr/ken/maki.s 336810
- -rwr- 0 142 532 Jan 1 01:33 /tmp/utmp 337991
- -rwrw 0 512 259 Jan 1 01:33 /etc/std0 338378
- xrwrw 0 698 229 Jan 1 01:35 /bin/maki 344095
- -rwrw 0 26 537 Jan 1 01:35 /tmp/ttmp 344821
- -rwrw 0 16448 260 Jan 1 01:36 /usr/sys/core 347684
- -rwr- 1 1928 298 Jan 1 01:36 /usr/sys/maki.s 348923
- xrwrw 0 2192 293 Jan 1 01:37 /usr/sys/a.out 349375
- xrwr- 3 1912 135 Jan 4 17:05 /bin/form 19243860
- urwr- 0 3940 142 Jan 5 19:26 /bin/mail 24936840
- xrwr- 1 2662 241 Jan 6 18:01 /etc/glob 29812654
- xrwr- 1 186 240 Jan 6 18:01 /etc/msh 29812724
- urwr- 0 784 50 Jan 17 17:46 /bin/mv 86785042
- xrwr- 3 134 114 Jan 17 17:53 /bin/cat 86808907
- xrwr- 3 82 25 Jan 17 17:53 /bin/chmod 86808926
- xrwr- 3 420 93 Jan 17 17:53 /bin/cmp 86808947
- xrwr- 3 160 48 Jan 17 17:53 /bin/cp 86808966
- xrwr- 3 464 79 Jan 17 17:53 /bin/du 86809052
- xrwr- 3 104 49 Jan 17 17:53 /bin/ln 86809162
- xrwr- 3 2010 42 Jan 17 17:53 /bin/ls 86809182
- xrwr- 3 154 126 Jan 17 17:53 /bin/mesg 86809205
- xrwr- 3 70 121 Jan 17 17:53 /bin/rew 86809297
- xrwr- 3 93 52 Jan 17 17:53 /bin/rm 86809316
- xrwr- 3 1026 54 Jan 17 17:53 /bin/stat 86809356
- xrwr- 3 80 125 Jan 17 17:53 /bin/tty 86809419
- xrwr- 3 524 57 Jan 17 17:53 /bin/write 86809532
- xrwr- 3 560 77 Jan 17 17:54 /bin/who 86813788
- xrwr- 3 644 139 Jan 17 17:54 /bin/wc 86813793
- xrwr- 3 750 164 Jan 17 17:54 /bin/skip 86813802
- xrwr- 3 1166 115 Jan 17 17:54 /bin/pr 86813803
- xrwr- 3 300 141 Jan 17 17:54 /bin/od 86813807
- xrwr- 3 1844 159 Jan 17 17:56 /bin/if 86819396
- xrwr- 3 1154 156 Jan 17 17:56 /bin/goto 86819398
- xrwr- 3 276 163 Jan 17 17:56 /bin/exit 86819403
- xrwr- 3 1054 153 Jan 17 17:56 /bin/echo 86819406
- xrwr- 3 244 60 Jan 17 17:56 /bin/dsw 86819407
- xrwr- 3 5922 80 Jan 17 17:56 /bin/bas 86819408
- xrwr- 3 16 152 Jan 17 17:56 /bin/: 86819410
- xrwr- 1 954 32 Jan 19 17:20 /bin/sh 97059255
- xrwr- 3 2310 103 Jan 26 17:20 /bin/ar 133346922
- xrwr- 3 1048 166 Jan 31 18:14 /bin/stty 159458885
- xrwrw 6 2860 169 Mar 7 12:23 /bin/cal 339637168
- -rwr- 3 2082 233 Mar 28 16:42 /etc/suftab 449432781
- urwr- 0 1290 28 Mar 29 15:19 /bin/login 454317684
- xrwr- 3 4066 95 Mar 29 16:42 /bin/db 454616955
- xrwrw 3 76 94 Apr 6 19:42 /bin/chball 496735250
- xrwrw 3 446 232 Apr 7 16:40 /etc/getty 501264829
- xrwr- 3 6846 176 Apr 14 20:50 /bin/dc 538454712
- urwr- 0 794 26 Apr 20 23:45 /bin/date 570186721
- urwr- 0 746 190 May 3 22:54 /bin/su 637395674
- xrwr- 3 3998 127 May 10 15:23 /bin/ed 672059949
- xrwr- 3 330 213 May 27 00:21 /bin/find 756940137
- xrwr- 3 480 59 May 27 00:21 /bin/strip 756940428
- urwr- 1 872 211 May 27 00:26 /bin/ds 756957948
- xrwr- 10 2730 192 May 27 23:37 /bin/fc 761966733
- xrwrw 3 17092 346 Jun 6 21:26 /usr/lib/c1 813333853
- -rwrw 0 3498 339 Jun 9 17:10 /usr/lib/bilib.a 827964344
- -rwrw 0 6626 326 Jun 20 10:47 /usr/lib/libb.a 883611316
- xrwr- 3 7582 214 Jun 30 17:45 /bin/as 936955268
- xrwrw 3 5778 247 Jun 30 17:47 /etc/as2 936962166
- xrwr- 3 238 118 Jun 30 18:37 /bin/un 937143109
- -rwrw 0 12158 302 Jun 30 18:40 /usr/lib/liba.a 937154143
- xrwr- 3 2942 108 Jun 30 19:26 /bin/ld 937319472
- xrwr- 3 518 75 Jun 30 20:09 /bin/nm 937472871
- xrwr- 3 1446 208 Jun 30 20:15 /bin/size 937496145
- -rwrw 28 304 448 Jun 30 20:31 /usr/lib/fr0.o 937553564
- -rwrw 28 12222 449 Jun 30 20:37 /usr/lib/filib.a 937573356
- -rwrw 28 9158 419 Jun 30 20:46 /usr/lib/libf.a 937606048
- -rwrw 0 108 473 Jun 30 21:11 /usr/lib/crt0.o 937696858
- -rwrw 0 5242 437 Jun 30 21:20 /usr/lib/libc.a 937728015
- xrwrw 3 19948 380 Jun 30 21:21 /usr/lib/c0 937734428
- xrwrw 3 4672 198 Jun 30 21:53 /bin/cc 937848855
- xrwr- 28 3462 491 Jul 1 16:35 /usr/fort/fc1 941888104
- xrwr- 28 3238 498 Jul 1 16:35 /usr/fort/fc2 941888184
- xrwr- 28 6840 505 Jul 1 16:35 /usr/fort/fc3 941888472
- xrwr- 28 4918 519 Jul 1 16:35 /usr/fort/fc4 941888613
- xrwrw 3 214 175 Jul 15 01:21 /bin/sum 1011175062
- xrwr- 4 7154 61 Jul 21 12:42 /bin/roff 1044729738
- urwr- 0 282 53 Sep 28 21:37 /bin/rmdir 1404349922
- urwr- 0 232 31 Nov 6 21:42 /bin/mkdir 1606544287
- urwr- 1 192 92 Nov 22 19:35 /bin/df 1689030995
- urwr- 1 1084 122 Nov 22 19:35 /bin/check 1689030997
- xrwr- 3 718 46 Nov 22 22:51 /bin/chown 1689737545
- xrwr- 3 604 150 Nov 22 22:51 /bin/sort 1689737557
- urwr- 1 790 119 Nov 26 14:24 /bin/tm 1708647263
- urwr- 0 3678 34 Dec 31 04:08 /bin/tap 1887871165
-
- -rw-- 1 221 239 Feb 6 14:35 /etc/passwd 2081934621
- -rwr- 1 70 238 Feb 6 14:38 /etc/uids 2081948231
- xrwr- 1 424 231 Feb 6 14:50 /etc/init 2081988977
-
- Note that the tap timestamp of 2081988977 for /etc/init is approximately
- 13 months. Therefore, the February for the last 3 files is the one in
- the year after all the other archive files.
-
- The biggest problem here is to pin down the epoch for the files. In the
- early version of UNIX, timestamps were in 1/60th second units. A 32-bit
- counter using these units overflows in 2.5 years, so the epoch had to
- be changed periodically, and I believe 1970, 1971, 1972 and 1973 were
- all epochs at one stage or another.
-
- Given that the C compiler passes, and the library, are dated in June
- of the epoch year, and that Dennis has said ``1972-73 were the truly
- formative years in the development of the C language'', it's therefore
- unlikely that the epoch for the s2 tape is 1971: it is more likely to
- be 1972. The tape also contains several 1st Edition a.out binaries,
- which also makes it unlikely to be 1973.
-
- Therefore, Warren's decoding of the s2-bits file, in s2-bits.tar.gz,
- uses 1972 as the epoch. However, Dennis decoding in s2.tar.gz uses 1973.
-
- Finally, the date(1) a.out on the tape uses 1971 as its archive. How annoying!
- After a bit of discussion, Dennis and Warren have agreed that 1972 is the
- most probable epoch for s2-bits.
-