Interdata Unix V6 ----------------- THE ENCLOSED SOFTWARE IS PROVIDED UNDER LICENSE. DO NOT USE THIS SOFTWARE UNTIL YOU HAVE READ THE LICENSE AGREEMENT. BY USING THE SOFTWARE (OR AUTHORIZING ANY OTHER PERSON TO DO SO), YOU AGREE TO ACCEPT AND ABIDE BY ALL THE TERMS OF THIS LICENSE AGREEMENT. Background ---------- In 1976-77, Richard Miller and his colleagues at the University of Wollongong, Australia, ported Unix V6 to the Interdata 7/32. This was a notable achievement in computer history, representing - the first port of UNIX from its native PDP-11 environment - a port from a 16b computer to a 32b computer - a port from a little-endian computer to a big-endian computer Richard Miller has documented the project in his excellent paper, "The First Unix Port" (Proceedings of the 1998 Usenix Technical Conference), and he continues to maintain an interest in the code. Indeed, the recreation of Unix V6 on the Interdata simulator would not have been possible without Richard's knowledge, help, and above all patience. Contents Of The Kit ------------------- iu6_dp0.dsk 10MB disk image containing Unix V6 iu6_readme.txt this file AncientUnix.pdf license covering Unix V5,V6,V7 uboot binary image of the system bootstrap tp512cvt.c program to convert tp-format image dumps to simulated tapes Running Unix V6 --------------- 1. Configure the Interdata simulator to match the default Unix kernel, and attach the disk image to dp0: sim> set ttp ena ; console is PAS, not TTY sim> set pas dev=12 ; make room for console PAS sim> d lfc tps 100 ; 50Hz clock sim> att -e dp0 iu6_dp0.dsk You can put all of these files in a command file, or into the Interdata initialization file i32.ini. 2. Boot the disk, and select the default Unix kernel: sim> boot dp0 ?unix 3. After the memory size printout, log in as root: Memory size = 181.50 K login: root You have mail. 4. Unix is on the air! You can start by reading the welcoming mail message, "sent" by Richard Miller 25 years ago. # mail Recreating The Disk Image ------------------------- The disk image can be recreated from Richard Miller's Internet kit, using the following steps: 1. Download root.gz and src.tp.gz from an Internet Unix archive (for example, http://www.tribug.org/pub/tuhs/Other/Interdata/). 2. Unpack root.gz and rename the extracted file iu6_dp0.dsk; unpack src.tp.gz and rename the extracted file src.in. 3. Compile utility program tp512cvt.c and use it to convert src.in to simulator format: C:\temp> gcc tp512cvt.c -o tp512cvt C:\temp> tp512cvt src.in Processing file: src.in The resulting file is called src.tap. 4. Start the Interdata simulator. Configure the simulator to match the default unix kernel. Attach the disk image to dp0, uboot to pt0, and src.tap to mt0: C:\temp> i32 sim> set ttp ena sim> set pas dev=12 sim> d lfc tps 100 sim> att -e dp0 iu6_dp0.dsk sim> att -e pt0 uboot sim> att -e mt0 src.tap 5. Enter the following short program, which reads in uboot and starts it running. Note that the first 32 bytes of the tape are skipped: sim> d pt rpos 32 sim> id 10000/10 10000: lis r1,3 10002: lhi r0,99 10006: xr r2,r2 10008: lhi r3,1000 1000C: ocr r1,r0 1000E: rbr r1,r2 10010: b 80 6. Run this program, starting at location 10000. This will bootstrap the disk and bring up the Unix boot prompt. Select the default Unix kernel and login as root: ?unix Memory size = 181.50 K login: root You have mail. 7. Run script /usr/rm/fixup. This extends the root file system to the full size of the disk (it was shortened to make the backup smaller) and writes the disk bootstrap. When the script completes, sync the file system and reboot: # /usr/rm/fixup == Moving LSU bootstrap == Expanding filesystem size Not a.out format: /dev/dr0 1004 4000 1004 8000 == Fixing up freelist /dev/dr0: *** Please Reboot Immediately *** # sync # sync # ^E Simulation stopped, PC: 2EB5C (EPSR R1,R0) sim> boot dp0 ?unix Memory size = 181.50 K login: root You have mail. 8. Verify that the fixup script worked by running icheck. There should be more than 4000 free blocks: # /etc/icheck /dev/dr0 /dev/dr0: spcl 44 files 259 large 99 direc 22 indir 101 used 3540 free 4302 9. Create a file system on the fixed platter and mount it as /usr/source: # chdir /usr # /etc/mkfs /dev/df0 rm/proto /dev/null: bad format # /etc/mount /dev/df0 /usr/source 10. Run script /usr/rm/extract to restore the /usr/doc and /usr/source directories. Before running the script, you must manually create directory /usr/source/m6, which is not present in the script: # mkdir source/m6 # rm/extract doc: File exists source: File exists End # 11. Edit /etc/rc to mount /usr/source automatically at startup: # cat /etc/rc rm -f /tmp/* /usr/lpd/lock al /etc/mtab /etc/update # ed /etc/rc 52 2l al /etc/mtab i /etc/mount /dev/df0 /usr/source . w 84 q # cat /etc/rc rm -f /tmp/* /usr/lpd/lock /etc/mount /dev/df0 /usr/source al /etc/mtab /etc/update 12. Sync the file system and exit the simulator: # sync # sync ^E sim> exit The disk image is now ready for use.