Installing 1 BSD on SIMH
From Computer History Wiki
Jump to navigationJump to search
This is my guide to installing 1 BSD on SIMH.
(The installation of this system requires a preinstalled UNIX system, the version it was written to be installed onto of Unix Sixth Edition; see Installing Unix Sixth Edition for an explanation of how to get that set up)
my ini file:
set CPU 11/70 set CPU 4M set CPU idle set CLK 60hz set PCLK disabled set PTR enabled attach PTR ptr.ptap set PTP enabled attach PTP ptp.ptap set TTI 7p set TTO 7p set TDC disabled set CR disabled set LPT enabled attach LPT lpt.txt set DLI disabled set DLO disabled set DCI disabled set DCO disabled set DZ disabled set VH disabled set DH disabled set RC disabled set RF disabled set RK disabled set RL disabled set HK disabled set RX disabled set RY disabled set RP enabled set RP0 rp04 attach RP0 rp04-1.dsk set RP1 disabled set RP2 disabled set RP3 disabled set RP4 disabled set RP5 disabled set RP6 disabled set RP7 disabled set RR disabled set RS disabled set RQ disabled set RQB disabled set RQC disabled set RQD disabled set TC enabled attach TC0 tu56.dta set TC1 disabled set TC2 disabled set TC3 disabled set TC4 disabled set TC5 disabled set TC6 disabled set TC7 disabled set TM enabled attach TM0 tu10.tap set TM1 disabled set TM2 disabled set TM3 disabled set TM4 disabled set TM5 disabled set TM6 disabled set TM7 disabled set TS disabled set TQ disabled set TU disabled set TA disabled set VT disabled set XQ disabled set XQB disabled set XU disabled set XUB disabled set KG disabled set DMC disabled set DUP disabled set DPV disabled set KDP disabled set KE disabled set CH disabled set NG disabled set DAZ disabled set TV disabled set MB disabled This is a very pruned configuration with an excessively large storage unit but that is the setup I installed my v6 UNIX system as) You'll need a tape image, from the files found on the TUHS archive. I have a pre-made tape [1]. I made that tape by using SIMH simtools program rawtap to package the tarball from TUHS into a magtape, then used tar in Unix Seventh Edition to extract the tree into a v7 UNIX guest, then used v7 tp to create a magtape of that tree that is what I have uploaded. You'll also need the DECTape I created which is here [2]. That tape contains ar-new.c which is the ar.c file from 2.79BSD source from TUHS, but I had to add the functions for xtol and mktemps into it so it doesn't look for them when compiling on v6 unix, the sources for those functions are also added to it from the 2.79BSD source tree, it compiles cleanly on v6 with no additional requirements and has changes over v6 ar that allows you to extract the cont.a files on the 1BSD tape. As far as I can tell the changes were in a patchset released to UCB from Bell Labs that I have no copy of so I used a future version that includes the changes. With that all done now boot off the rp04(or any Unix system you already have installed) with a 'boot rp0' from inside SIMH.I chose to create /usr/ucb for my directory to extract the tape to you could extract wherever mkdir /usr/ucb chdir /usr/ucb mkdir ar chdir ar tp x (now is worth noting if you are using your own v6 UNIX install you might get an error here: Tape open error END if that is the case you must have /dev/tapx existing for tp to work(you can ln /dev/tap0 /dev/tapx) then that should work and now you should have ar-new.c in /usr/ucb/ar directory) then run cc -O -s ar-new.c now a.out is a working ar file that can extract cont.a from 1BSD, I chose to call it ar.bsd in /usr/bin you can place it where and whatever you wish to call it with that done now we can extract the 1BSD tapechdir /usr/ucb tp xm setup (instructions say tp xm ./setup but that doesn't work with my tape but tp xm setup does) ./setup tp xm and with that done you now have the 1BSD tree extracted fully into your v6 UNIX then you can go ahead and copy the files into your directories as you wish, I choose to use /usr/bin and /usr/lib but you can do /bin and /lib or wherever else you may wish for example of how to use the new ar and get the files go to say the /usr/ucb/bin directory # chdir /usr/ucb/bin # ls READ_ME cont.a then run ar.bsd x cont.a when that completes you can run rm cont.a # rm cont.a cont.a: 110664 mode type y then you should now have # ls Print crazy last pix squash READ_ME cxref linerm pq ssp ashell dates list print strip biorhythm double lnall procp syswatch block expand lntree pss teco box eyacc lock public ticktock cat3a file ls pxref toc chownall fix makeTtyn repeat transcribe clock fixit man reset tset colcrt fold manwhere rmtree ttytype collpr froc mkstr rout uhav colrm funny mvall sess version continue gres nm sethome watch cpall head number sh wc cptree iul pascals size where cr3 l pcc soelim whoison those are the precompiled binaries of 1BSD, there is also a pascal compiler, libraries, trek game, man page, source files each directory has a READ_ME which I recommend you read through and you can choose what you want to add to your system and where you wish to add them. When you are done all this you will have a 1BSD system on top of a V6 Unix system just like Bill Joy was planning when he shipped out 1BSD tapes back in 1977. there is no clean installation and the boot up will still be v6 UNIX but the added tools are a nice improvement of v6 UNIX, the text editor ex is also the clear predecessor of vi which is a nice quality of life step of over ed in my opinion. Now we can boot 1BSDset CPU 11/70 set CPU 4M set CPU idle set CLK 60hz set PCLK disabled set PTR enabled attach PTR ptr.ptap set PTP enabled attach PTP ptp.ptap set TTI 7p set TTO 7p set TDC disabled set CR disabled set LPT enabled attach LPT lpt.txt set DLI disabled set DLO disabled set DCI disabled set DCO disabled set DZ disabled set VH disabled set DH disabled set RC disabled set RF disabled set RK disabled set RL disabled set HK disabled set RX disabled set RY disabled set RP enabled set RP0 rp04 attach RP0 rp04-1.dsk set RP1 disabled set RP2 disabled set RP3 disabled set RP4 disabled set RP5 disabled set RP6 disabled set RP7 disabled set RR disabled set RS disabled set RQ disabled set RQB disabled set RQC disabled set RQD disabled set TC enabled set TC1 disabled set TC2 disabled set TC3 disabled set TC4 disabled set TC5 disabled set TC6 disabled set TC7 disabled set TM enabled set TM1 disabled set TM2 disabled set TM3 disabled set TM4 disabled set TM5 disabled set TM6 disabled set TM7 disabled set TS disabled set TQ disabled set TU disabled set TA disabled set VT disabled set XQ disabled set XQB disabled set XU disabled set XUB disabled set KG disabled set DMC disabled set DUP disabled set DPV disabled set KDP disabled set KE disabled set CH disabled set NG disabled set DAZ disabled set TV disabled set MB disabled then run boot rp0 and now you can have 1BSD which as far as I can tell had not been documented before this, enjoy.