This page contains information about a 2.11 BSD image
that have been created for the PiDP-11.
Content
Information
The PiDP-11 is a miniature replica of the PDP-11/70 console,
usually coupled with simh. The disk image documented on this
page is actually usable with any PDP-11 emulation/simulation,
but represents a version of 2.11 BSD with all of the latest
patches applied. This image represent an already patched
and running system, which makes the whole updating problem already
solved for the normal user.
If you have any questions about the information on this page,
the system image discussed here, or about 2.11 BSD in general,
please contact me: Johnny Billquist,
bqt@softjar.se.
Image content/configuration
The image have a generated 2.11 BSD system on it, with the
following configuration:
- PDP-11/70 CPU with FPP (would actually work on any PDP-11 with FPP and
at least 512K of memory)
- 50 Hz line clock
- One DL-11 for console
- One DZ-11 for up to 8 terminal lines
- One UDA-50 for up to 4 MSCP disks
- One TU81 for up to 1 TMSCP tape
- One RL-11 for up to 4 RL02 disks
- One RH70 for up to 4 RP/RM disks
- de interface
- qe interface
- TCP/IP
Of particular note is that both de and qe driver is installed.
On boot, the system figures out if this is a Unibus or a Qbus
system, and sets up the correct interface based on this.
So unless a more specialized system is generated, the image
will boot and run fine on both Unibus and Qbus systems, without
any changes to the image required (however, an initial
configuration is still required - see below).
Getting the image
The image is available via ftp from ftp://ftp.dfupdate.se/pub/pdp11/2.11BSD/pidp/
There are two images available:
- pidp.bsd.dsk.gz
- pidp.bsd.tap.gz
Both images are compressed with gzip.
pidp.bsd.dsk
The .dsk image is a ready to
boot 1G disk image of 2.11 BSD. Nothing more is required to use this
disk image. However, it is not easy to use if you already have
a running system which you want to upgrade to this image.
It is also already setup with a 1G disk. If it is desired to have
any other size of the disk, this image is also not that suitable.
pidp.bsd.tap
The .tap image is an e11 format tape image that is bootable.
There is very little required in order to install from the tape image,
and it will allow you to freely choose how large a file system you want
to have. It is also more suitable for upgrading an existing system
with this new version of the system, without affecting other things
you might already have on your system.
Configuration of simh
The configuration file for simh is nothing very special.
An example, very simple config is shown below:
---8<---
set cpu 11/70
set cpu 4096
set cpu idle
set rq0 rauser=1024
set tq0 write
att -f tq0 e11 pidp.bsd.tap
att rq0 pidp.bsd.dsk
set clk 50
set dz lines=8
att dz 42,speed=*32
set xu ena
set xu type=delua
set xu mac=aa:00:04:00:ea:04
att xu en0
---8<---
Using this configuration, you can then boot either tq0 or rq0,
depending on if you want to boot from the disk or the tape.
Note that here it is assumed you want rq0 to be a 1G disk.
Just change the number after "rauser=" to whatever size you want
the disk to be, in megabytes.
Another note is that this configuration does not actually
enable all the hardware that has been configured into the 2.11 BSD
system. If you want to add a RP06 disks, or other
magtapes, it can be a good exercise to figure this out on
your own. But feel free to ping me for hints if you can't
figure it all out. (And don't worry if it takes a few trials
and errors, it's not immediately obvious to everyone.)
Finally, in that example config, the ethernet of the host machine
is called en0. You should put in whatever is appropriate for
your system.
Installing from tape
Next follows an exampe session on how to install to disk, in case
you start from the tape image (user input in bold):
---8<---
sim> boot tq
70Boot from tms(0,0,0) at 0174500
:
(See the installation instructions for 2.11 BSD for the steps
after this)
---8<---
Booting the system
The first time the system is booted, it will enter single
user mode, since the system have not been configured.
If the system have been configured, it will automatically
do an fsck, and then go into multiuser mode. If you desire
to actually go into single user mode, you can either
abort the starting up by hitting ^C at the appropriate time,
or add -s as an argument to boot after aborting the
automatic boot sequence.
Any change to the configuration done after the system have completed
the booting will only take effect after the next boot.
Configuring 2.11 BSD
After the system have been booted, but while in single user,
(especially after the first time booting), the system should be
configured for your particual environment. This configuration
consists of editing a number of files, listed below.
All files are provided in template form, so you just need
to go into each file and change actual content.
Before editing, you will need to setup a few things in
the single user environment:
- Mount the /usr file system: mount /usr
- Set terminal to VT100: TERM=vt100; export TERM (or if
you invoke (t)csh: setenv TERM vt100)
- Set your console speed: stty 9600
- Edit with /usr/ucb/vi <filename> or
/usr/new/jove <filename> (if Emacs is more
familiar to you).
The files you always should edit initially are:
- /etc/rc.conf - Change the following things:
- rc_configured - Set to YES
- rwhod - As desired
- named - As desired (probably NO)
- sendmail - As desired (probably YES)
- ntpd - As desired
- ntp - As desired
- timed - As desired (probably no)
- hostname - As desired
- address - As desired
- netmask - As desired
- gateway - As desired
- interface - As desired (probably leave commented out)
- /etc/localtime - This should either be copied from, or made a soft
link to the appropriate file in /usr/share/zoneinfo
In addition to this, other files that you might want to edit are:
- /etc/hosts - Add your own hostname and IP address information
- /etc/ttys - Enable serial lines you want to be able to log in on
- /etc/resolv.conf - Add any local nameservers you might want
- /etc/hosts.allow - Change if any specific service should be
accessible by anyone
- /etc/hosts.deny - Change if any specific service should be blocked
by someone
- /etc/ntp.conf - Change if you want a specific ntp server to be used
- /etc/rc.local - Add any local services you want to start at boot
- /etc/inetd.conf - Comment/uncomment/add services you want enabled/disabled
Finally, there are a couple of more things you should do at first boot:
- Change the password of the root user
- Change the password of the user user, or delete this user
- Add any other users you would want on the system
Operating the system once booted
Once the system have completed booting, the console is
logged out, and you will need to log in. There are two
accounts existing on the system image, and these are
root and user.
You can create addition accounts, and change passwords on
accounts as much as you want. There is no need to preserve
the initial accounts.
Updating your running system with this image
Updating an existing system with this disk image can be fairly
straight forward, assuming you are happy with the basic content
and configuration of the image.
If you restore the root file system from a new tape image,
remember to preserve content under /etc. Everything else
should be fine to just replace. If you have built your own
kernel, you want to preserve /unix and /netnix as well, and
possibly rebuild these after an update.
The rest of the distribution tape are the tar files of sources,
which should be fine to just unpack on a running system, and
then reboot.
If you want to update, and just do that via a restore of the tar
files, then remember to rebuild the system after the restore.
Generating your own system based on this image
In case you want a different configuration of your system,
the existing binaries in the distrubution will not be
sufficient for you. You will instead need to generate your
own system.
This is a more complex task, but rest assured that all
the sources and libraries for the patched versions of all
components of 2.11 BSD have been included in the distribution.
For generating your own system, it is recommended that you
read the appropriate 2.11 BSD document on the topic.
Additional information and suggestions
Hopefully you now have your 2.11 BSD system up and running.
You may then ask yourself, where do I go from here, what can
I do with this, or how does xxx work?