Notes on generating the fuzzball system

"Laugh it up, fuzzball." - Han Solo to Chewbacca, "The Empire Strikes Back"

The entire contents of the fuzzball source distribution normally resides on
four DSDD floppies or eight SSDD RX02-compatible floppies. The following
procedures assume four DSDD floppies, which are RT-11 volumes called FUZZ1,
FUZZ2, FUZZ3 and BOS. If you can read this you have mastered the RT-11 disk
formats and operating system. You will need RT-11 Version 5.0 or later to
generate the fuzzball system. Although it is possible to generate everything
with only the barest hardware configuration (a couple of RX02 floppy disks),
this is very painful. All of the command scripts included in the source
distribution will work peacefully using a 10M-byte disk and could probably
work with some care using a disk of half that capacity.

You may wish to copy the HELP.SAV and HELP.TXT files from FUZZ3 before
beginning the system-generation process. The fuzzball help information
operates just like the RT-11 help information and uses the same file formats.

The files contained on the FUZZ1 and FUZZ2 volumes include all the source
files necessary to produce the configuration-independent modules of the
system. These include numerous ready-to-run programs, some of which can be run
under both RT-11 and the fuzzball operating systems, as well as skeletons and
libraries to construct the configuration-dependent modules for your particular
fuzzball system. Part of the procedure for a complete regeneration of the
fuzzball system is to assemble and link these files to make a new copy of the
FUZZ3 volume. Unless you change something on the FUZZ1 or FUZZ2 volumes, these
steps will not be necessary. Following these steps FUZZ1 and FUZZ2 are no
longer necessary and can be archived.

Normally, you will construct your own configuration-dependent modules and
store them on a private disk, here called the MYFUZZ volume. The source
includes a copy of our own DCnet volume, called BOS, which may provide hints
to guide you through this process. You will first copy selected files from
FUZZ3, including macro libraries, object libraries and the supervisor module
SUP.MAC, plus possibly a few others if you are using special features
requiring conditional assemblies of other source modules. You then need to
build two source files, one defining the particular hardware and software
environment for your machine and the other defining the network structure,
including Internet addresses, gateways and so forth. Information for doing
that is in the help files on FUZZ3. See also the DAT*.MAC and DCN*.MAC files
on BOS for hints.

The configuration-dependent files are used to construct the load module for
your system, here called MYFUZZ.SAV, which can be run from RT-11 like any
other program. However, when this program comes up it takes over the entire
system, so that you must reboot RT-11 if you need to return to that system.
You may also need to construct a root file for the domain system, as well as
miscellaneous message files, greeting files and password files. Information
for doing that is in the help files on FUZZ3.

Having accomplished this magic, the final step is to copy selected files from
FUZZ3 and MYFUZZ to the target disk for your system. Usually this consists of
all the *.SAV, *.DAT and *.TXT files from FUZZ3, together with the MYFUZZ.SAV
and the message files, etc., you have created on MYFUZZ. At this point all
volumes used to produce your fuzzball system are no longer necessary and can
be archived.

The easiest way to build a fuzzball system from scratch is to start with a
10M-byte platter for DK: and copy the FUZZ1 and FUZZ2 diskettes in image mode
to a pair of logical disks FUZZ1.DSK and FUZZ2.DSK using commands like the
following:

[make logical device assignments]
ASSIGN DK: INP: !input device
ASSIGN DK: OUT: !output device
ASSIGN DK: ARC: !archive device
[mount FUZZ1 on floppy drive DY:]
COPY/DEVICE/NOQUERY DY: ARC:FUZZ1.DSK/FILE
[mount FUZZ2 on floppy drive DY:]
COPY/DEVICE/NOQUERY DY: ARC:FUZZ2.DSK/FILE
COPY DY:SYSGEN.COM DK:

The last command copies the master system-generation command file SYSGEN.COM
to DK:. You can now mumble @SYSGEN and go read a book. The procedure, which
takes the better part of an hour, will result in a new logical disk FUZZ3.DSK
containing all the goodies. If for some reason you happen to have the complete
source distribution on DK: and want to produce the logical disks FUZZ1.DSK and
FUZZ2.DSK on a logical device ARC: in the first place, the command file
SYSDUP.COM on FUZZ3.DSK will do that. If you need to re-create the logical
disk assignments, use the following commands:

[make logical disk assignments]
MOUNT LD1: ARC:FUZZ1 !distribution sources 1
MOUNT LD2: ARC:FUZZ2 !distribution sources 2
MOUNT LD3: ARC:FUZZ3 !new distribution binaries
MOUNT LD4: ARC:MYFUZZ !updated configuration sources/libraries/binaries

Assuming you have created logical disk MYFUZZ.DSK and assigned it logical unit
ARC:, you can now use commands like the following to copy selected files from
logical units LD1:, LD2: and LD3: using commands like:

[copy configuration files]
MOUNT LD4: ARC:MYFUZZ
ASSIGN LD4: DK:
ASSIGN LD4: OUT:
ASSIGN LD1: INP:
COPY/PREDELETE INP:(INP,USE,DSKDY,DSKDL).MAC DK:
ASSIGN LD2: INP:
COPY/PREDELETE INP:SUP.MAC DK:
ASSIGN LD3: INP:
COPY/PREDELETE INP:(DCN,MOS,CFG)LIB.SML DK:
COPY/PREDELETE INP:(DSR,TCP)LIB.OBJ DK:

You will probably want to use a command file to construct your own
configuration-dependent modules. See the examples in the BOS volume for hints.

Notes on the source distribution

The HOSTS.DAT file includes only those hosts and domain-name servers for our
DCnet environment and was constructed on a 256K machine using the RT-11
command sequence:

INIT/NOQUERY VM:
HOSTS
VM:HOSTS[2]=DCN/S:2	!"2" is the size (blocks) of the output file
^C
COPY VM:HOSTS.DAT DK:

You may wish to construct your own environment using the file DCN.TXT as a
model. Start from the ubiquitous master file of hosts HOSTS.TXT available via
FTP from the Network Information Center at SRI International and select those
hosts you want in your local data base. Move these to a private file like
DCN.TXT, converting to fully-qualified names and deleting the duplicates in
the process. Then run the above command sequence to produce your own
HOSTS.DAT. If you wish, you can create a data base from HOSTS.TXT containing
all the .ARPA domain hosts plus your own hosts using the DCN1.TXT file as a
guide and the RT-11 command sequence:

INIT/NOQUERY VM:
HOSTS
VM:HOSTS[256]=HOSTS/A,DCN1/S:256.
^C
COPY VM:HOSTS.DAT DK:

A LOGIN.DAT file will need to be created to enable users to log into the
system. The SYSMGR.SAV program is used to make and modify this file.
An optional LOGIN.MSG greeting file can be created with an ordinary text
editor.

A LOG.TXT file will need to be created for the system log along with an
UNSENT.MSG file for mail. The CRMAIL.SAV program is used to make both files.

See the HELP files, which can be accessed by the HELP.SAV program in both
RT-11 and fuzzware, for further information.

** Important Note ***

This fuzzware is distributed only with permission from the Defense Advanced
Research Projects Agency (DARPA) under the condition that it not be
redistributed outside of the receiving organization without prior DARPA
approval. It is provided on an as-is basis only. Users should be cautioned
that only very minimal help is available and that support and maintenance is
not a contractual responsibility of the distributor.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          