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.