Would you like to make this site your homepage? It's fast and easy...
Yes, Please make this my home page!
================================================================================
Note 37.0 In Search of "NanoVMS" No replies
FURILO::GIORGETTI 469 lines 4-SEP-1985 15:51
--------------------------------------------------------------------------------
+---------------+ +-----------------+
| d i g i t a l | | uNOTE # 037 |
+---------------+ +-----------------+
+----------------------------------------------------+-----------------+
| Title: In Search of "NanoVMS | Date: 19-Jul-85 |
+----------------------------------------------------+-----------------+
| Originator: Edward P. Luwish | Page 1 of 8 |
+----------------------------------------------------+-----------------+
ABSTRACT
This MicroNote describes the results of ongoing research
into the size and composition of a minimal VMS system.
A WORD ABOUT NOTATION
Where command lines, prompts and messages are discussed,
text printed by the computer is indicated by normal
type, text entered by the user is indicated by
[1mboldface[22m type.
Unless explicitly stated otherwise, all user entries are
to be terminated by the "return" character.
WHY "NanoVMS"
MicroVMS as currently packaged and supported by Digital Equipment
Corporation is not always an ideal solution for customers who would like
to use it as a realtime application bed (rather than a multi-user
timesharing system). For this reason, research has been done for over a
year on minimal VMS systems. Also, the number of floppy diskettes
required to bring up the system has been found excessive by some users.
Currently three floppies for standalone backup are followed by thirteen
for the base system. This incurs user inconvenience and a greater
likelihood of failure in the process. The TK50 cartridge tape is not
yet a universal solution to this problem.
HOW WAS "NanoVMS" BUILT?
The problem was approached by building a VMS system, component by
component, on the second winchester of a two-disk MicroVAX. This system
could be tested simply by shutting the system down and booting the
second disk. If unsuccessful, the full system disk would be rebooted,
some files added to the minimal system, and it would be tried again,
guided by the error messages produced in the previous attempt.
361
uNOTE # 037
Page 2 of 8
HOW WAS "NanoVMS BUILT? (continued)
The first cut at a solution was derived from the "Reboot Consistency
Check" offered by sys$system:SHUTDOWN.COM. Notably absent from the list
of files was the disk driver! A number of other missing files were
disclosed, and success was eventually achieved through repeated
attempts. Often the proper functioning of an image depended on the
presence of another (such as a library file). The dependencies are
shown in the attached directory listing.
HOW DOES ONE GENERATE A "NanoVMS" SYSTEM?
1. Make some choices
There are a number of choices which affect how you generate a "NanoVMS"
system. You can create a backup set that can be loaded onto a MicroVAX
processor using standalone backup [Note - floppies only. TK50 bootable
MicroVMS distributions cannot be created without access to a source
kit]. The other choice is to create "NanoVMS" on a winchester and
physically install it in to another MicroVAX. This choice affects the
third and fourth steps in the process, "Creating the distribution" and
"Loading the distribution". Another up-front choice that affects your
work is the list of target CPU's you intend to be able to run "NanoVMS"
on - currently this includes MicroVAX I, MicroVAX II, VAXstation I and
VAXstation II. The work on the latter two has not yet been done -
special graphics font files and server files need to be added to the
list. Read "Copy the files" below for details.
2. Create the directories
If you have a single-winchester system, create [sys1]. If you have a
two-disk system, create [sys0] on the non-system disk instead. In
either case, create the subdirectories [.sysexe], [.syslib], [.sysmgr]
and [.sysmsg] in the [sys0] or [sys1] directories you just created.
If you have chosen the distribution option of physically installing
a bootable winchester, and your non-system disk's data is expendable,
then you will want to initialize it. Study the section "Creating the
Distribution", below, with respect to initialization options. After
initializing the disk, create the previously mentioned directories.
3. Copy the files
Copy all of the files listed on pages 7 and 8 from the corresponding
directories of your MicroVMS V4.1M system. Note that a MicroVAX I CPU
requires the file SYSLOAUV1.EXE and a MicroVAX II CPU requires
SYSLOAUV2.EXE. Make sure to include the correct one (or both) as
required by the target CPU. Also be sure to use the /CONTIGUOUS option
when copying SYSBOOT.EXE.
362
uNOTE # 037
Page 3 of 8
4. Create the distribution
You will first want to decide whether your distribution will include all
of the files (including your own application files) of the final system,
or merely a basic "NanoVMS" skeleton to which additional files are added
from separate disk volumes. If the former, at least list and count all
the additional files you need. Note that VMS utilities occasionally
need runtime library files, and your application files may need
language-related runtime libraries not part of the basic "NanoVMS"
system. Be sure to include some extra files in your count. Remember
that there are nine files that are part of any VMS volume, and that each
directory and subdirectory you create is a file as well.
The nine files that are part of every VMS volume
INDEXF.SYS BITMAP.SYS BADBLK.SYS
000000.DIR CORIMG.SYS VOLSET.SYS
CONTIN.SYS BACKUP.SYS BADLOG.SYS
If you chose to create a backup set, simply issue the appropriate
mount and backup commands, and insert the floppies into the RX50 drive
(n = floppy unit number, x = "NanoVMS" disk unit number, r = root
number):
$ [1mMOUNT/FOREIGN DUAn:[22m
If you wish to merge your own software into the backup set:
$ [1mBACKUP/INITIALIZE/LOG/VERIFY -[22m
$_ [1mDUAx:[SYSr...]*.*;*,[yourdirectory...]*.*;* -[22m
$_ [1mDUAn:MICROVMS./SAVE_SET[22m
If you wish to separate your own software from the backup set:
$ [1mBACKUP/INITIALIZE/LOG/VERIFY -[22m
$_ [1mDUAx:[SYSr...]*.*;* -[22m
$_ [1mDUAn:MICROVMS./SAVE_SET[22m
The backup set created will then install exactly as described in the
Installation chapter of the MicroVMS User's Manual.
With standalone backup, you lose flexibility in initializing your
system disk - it uses all the default values, which may be unsuitable or
wasteful in a bounded system. It is therefore recommended to use the
"walking winchester" as a way to transport bounded systems. You would
not be considering "NanoVMS" unless you have a legitimate need to save
disk space, and standalone backup will often waste space. The index
file on an RD volume is greater than 1000 blocks in allocated size, in
order to accomodate a large number of files on the disk. If you can put
an upper bound on the number of files you expect to have, you can
realize considerable savings in index file size. The two parameters
which most affect disk usage, Cluster Factor and Maximum File Count, are
explained in the next two paragraphs.
363
uNOTE # 037
Page 4 of 8
4. Create the distribution (continued)
The cluster factor is the number of disk blocks allocated every
time a new file is created, or if additional blocks are needed when
editing, etc. If you issue the DCL command
$ [1mDIRECTORY/SIZE=ALLOCATION[22m
you will notice that all the sizes are divisible by 3 (the default
cluster size for "large" disks). If you have many small files, this can
be wasteful. Unless you add the /CLUSTER_SIZE=n option to the
INITIALIZE command, this number will be 3 for disks larger than 50,000
blocks, or 1 for smaller disks. Small cluster sizes will adversely
affect disk performance since files may be stored as many small pieces
scattered widely over the disk surface. On the other hand large cluster
sizes will waste disk space, since only one or two of the three (or
more) allocated blocks may have data in them.
The maximum number of files contained on a disk is determined at
initialization time by the number of empty file headers allocated
contiguously in the index file. The DCL command
$ [1mINITIALIZE/MAXIMUM_FILES=x DUAn: label[22m
initializes a disk with an index file capable of storing x file headers,
no more. The largest value of x is derived from the formula
volume size in blocks
maximum number of files = ---------------------
cluster factor + 1
The default (when the /MAXIMUM_FILES switch is omitted, or when
$ [1mBACKUP/INITIALIZE[22m
is issued) is equal to one-half the number derived by the above formula.
If the default is much larger than the actual largest number of files
you anticipate storing, then you can gain many free blocks by specifying
/MAXIMUM_FILES=x, where x is an upper bound on the number of files you
expect on the disk. In fact, you get exactly (default_maxfiles)-x free
blocks, since each file header occupies a full block. The potential
disadvantage is that the disk will have to be reinitialized (i.e.
erased) if you need to store x+1 or more files.
The following table can be compared with your overall needs, so
that the appropriate initialization command line can be given:
RD51 RD52 RD53
Volume Size 19530 60480 138649 blocks
Cluster Factor 1 3 3 blocks
Maximum Files 4880 7560 17331 files
364
uNOTE # 037
Page 5 of 8
5. Load the distribution
If the distribution is the "walking winchester", then loading it
consists of installing the disk in the MicroVAX enclosure, removing the
existing one if necessary. Instructions for the installation and
removal of hard disk drives can be found in the system's Owner's Manual.
If the distribution is a backup set stored on a number of RX50
floppy diskettes, follow the instructions in the Installation chapter of
the MicroVMS User's Guide.
6. Boot "NanoVMS"
This procedure departs from the normal process, since "NanoVMS" does not
have a paging file or a system-parameter file, nor can it execute the
full system startup command procedure since many of the commands in it
try to invoke image (.EXE) files and libraries that are not on the disk.
A number of error messages (shown below) will be displayed on the
console terminal. These are normal for "NanoVMS". To boot the system,
you must use the conversational boot by typing the commands
>>> [1mB/1 DUAn[22m
2..1..0..
%SYSBOOT-E-Unable to locate file
SYSBOOT> [1mSET STARTUP_P1 "MIN"[22m
SYSBOOT> [1mSET VAXCLUSTER 0[22m
SYSBOOT> [1mCONTINUE[22m
Note
If your system is a MicroVAX I,
you will be prompted for the time
and date before the "MicroVMS
Version 4.1M" text appears.
MicroVMS Version 4.1M 13-MAY-1985 22:29
%SYSINIT-E- lookup failure on paging file, status = 00000000
%DCL-W-ACTIMAGE, error activating image SETP0
-CLI-E-IMGNAME, imagefile DUAn:[SYS0.SYSCOMMON.][SYSEXE]SETP0.EXE;
-RMS-E-DNF, directory not found
-SYSTEM-W-NOSUCHFILE, no such file
%RMS-E-FNF, file not found
%SET-I-NOMSG, Message number 007781B3
SYSTEM job terminated at 8-AUG-1985 09:39:05.01
365
uNOTE # 037
Page 6 of 8
6. Boot "NanoVMS" (continued)
At this point, press carriage return and you will be prompted with
"Username:". Type any non-null alphabetic string, followed by a
carriage return. You will then be prompted twice with "Password:".
Respond both times with a carriage return. The familiar "$" DCL prompt
will then appear. The default directory is SYS$SYSTEM.
7. Further steps...
The only DCL commands available at this point are COPY, BACKUP, RUN,
MOUNT and DISMOUNT, and a very small subset of the SET commands. If you
have access to a second winchester with a full MicroVMS system on it,
you can mount it and copy additional files to your "NanoVMS" disk. You
can also use BACKUP/SELECT to copy selected files from the MicroVMS
distribution floppies. Remember to try the commands first before
walking away, since sometimes additional files (primarily in sys$library
and sys$message) are needed.
A paging file is often needed, particularly for applications which
set up large arrays or data buffers, especially when the system has
limited physical memory. DECnet requires a 1000 block paging file just
to initialize itself. The file can be created by the following
commands:
$ [1mRUN SYSGEN[22m
SYSGEN> [1mCREATE PAGEFILE.SYS /SIZE=1000 /NOCONTIGUOUS[22m
SYSGEN> [1mEXIT[22m
To make it less painful to reboot, and to allow you to save any
system tuning work, create a parameter file with the following commands:
$ [1mRUN SYSGEN[22m
SYSGEN> [1mSET STARTUP_P1 "MIN"[22m
SYSGEN> [1mSET VAXCLUSTER 0[22m
SYSGEN> [1mWRITE CURRENT[22m
SYSGEN> [1mEXIT[22m
The next time you reboot, you need only type ">>> [1mB DUAn[22m".
In order to have a secure system, or to have incoming DECnet
access, or to support login command files or to run turnkey
applications, you will probably want a user authorization file. To
support this, copy the following files from the MicroVMS distribution or
from a MicroVMS system disk: sys$system:AUTHORIZE.EXE,
sys$library:MTHRTL.EXE and sys$library:PLIRTL.EXE and INSTALL
sys$library:SECURESHR.EXE with the /prot/shar/open options. When
running AUTHORIZE for the first time, you will create the authorization
file SYSUAF.DAT. You will have to reboot before you can log in
successfully.
366
uNOTE # 037
Page 7 of 8
DIRECTORIES OF FILES NEEDED FOR "NanoVMS"
Directory DUA1:[SYS0.SYSEXE]
BACKUP.EXE;1 189 ! Required for adding additional files
! to basic "NanoVMS" from backup sets
COPY.EXE;1 58 ! Required for adding additional files
! to basic "NanoVMS" from VMS volumes
DCL.EXE;1 132 ! Required by STARTUP.COM and subsequent
! user command execution
DISMOUNT.EXE;1 8 ! Required to remove auxiliary volumes
DUDRIVER.EXE;1 27 ! Disk controller protocol driver
F11BXQP.EXE;1 107 ! Files-11 server
FPEMUL.EXE;1 20 ! Floating-point emulator
INSTALL.EXE;1 46 ! VMOUNT.EXE must be INSTALLed to be run
JOBCTL.EXE;1 102 ! Required to create LOGINOUT as detached process
LOGINOUT.EXE;2 103 ! Permits logins after STARTUP.COM exits
PUDRIVER.EXE;1 13 ! Disk controller port driver
RMS.EXE;1 211 ! RMS-32 server - required to find and open files
RUNDET.EXE;1 14 ! Required to run JOBCTL as detached process
SCSLOA.EXE;1 8 ! Required when using MSCP system disks
SET.EXE;1 167 ! Required to enable interactive logins
STARTUP.COM;1 17 ! Sets up LOGINOUT and system logical symbols
SYS.EXE;1 344 ! The operating system image (except for
! device and file support, instruction emulation)
SYSBOOT.EXE;1 87 ! The primary bootstrap
SYSGEN.EXE;1 115 ! Required to alter and save system parameters
SYSINIT.EXE;1 87 ! The first image to be run as a process
SYSLOAUV2.EXE;1 15 ! MicroVAX II processor-specific initialization code
TTDRIVER.EXE;1 45 ! The terminal driver
VAXEMUL.EXE;1 23 ! Emulates non-floating-point VAX instructions
VMOUNT.EXE;1 16 ! Required to mount auxiliary volumes
Total of 24 files, 1954 blocks.
Directory DUA1:[SYS0.SYSLIB]
DCLTABLES.EXE;3 248 ! Required by sys$system:DCL.EXE
DISMNTSHR.EXE;1 11 ! Required by sys$system:DISMOUNT.EXE
ENCRYPSHR.EXE;1 18 ! Required by sys$system:BACKUP.EXE
LBRSHR.EXE;1 76 ! Required by sys$system:INSTALL.EXE
LIBRTL.EXE;1 128 ! Required by sys$system:JOBCTL.EXE
LIBRTL2.EXE;1 39 ! Required by sys$system:JOBCTL.EXE
MOUNTSHR.EXE;1 120 ! Required by sys$system:VMOUNT.EXE
SCRSHR.EXE;1 21 ! Required by sys$system:SYSGEN.EXE
SECURESHR.EXE;1 58 ! Required by sys$system:BACKUP.EXE
Total of 9 files, 719 blocks.
367
uNOTE # 037
Page 8 of 8
DIRECTORIES OF FILES NEEDED FOR "NanoVMS" (continued)
Directory DUA1:[SYS0.SYSMGR]
ACCOUNTNG.DAT;1 5 ! This file is created by LOGINOUT.EXE
Total of 1 file, 5 blocks.
Directory DUA1:[SYS0.SYSMSG]
SYSMGTMSG.EXE;1 49 ! Required for intelligible error messages
SYSMSG.EXE;1 268 ! Required for intelligible error messages
Total of 2 files, 317 blocks.
Grand total of 4 directories, 36 files, 2995 blocks.
Not shown:
Index file (see text)
Other files produced by volume initialization
Directory files (average 5 blocks each)
Page file (see text)
Sysgen parameter files (15 blocks each)
NOTE
This MicroNote describes a minimal VAX/VMS system which
is not in any way warranted or supported by Digital
Equipment Corporation - it reports ongoing research by
the author, and represents solely his conclusions and
opinions, not those of Digital Equipment Corporation.
The minimal VAX/VMS system described here can only be
used on MicroVAX computer systems which are licensed to
run MicroVMS. It is composed of files which are normal
components of MicroVMS V4.1M. Earlier or later versions
of MicroVMS may not successfully execute in the
described subset environment.
368