[rescue] VMS for VAXstation
francini at mac.com
Fri Aug 9 21:54:23 CDT 2013
Let's see if I can be of some help here.
VMS systems have a concept called a logical name. Logical names are used to do
things like file and directory redirection; logical names also serve (in
general) the equivalent of the UNIX PATH environment variable, but in a far
more general way.
The system disk has two parallel directory hierarchies for files -- one that
is specific to the particular machine, and one that is "common".
This makes more sense when you realize that VMS systems can cluster together
readily, sharing a single boot disk.
Logical names are the glue that makes all this work.
If you do a SHOW LOGICAL command (no asterisk required), you'll see all the
logical names defined, first for your own process, then for your "job" (a
collection of your processes), then for your group (if any), then for the
system. System logical names are broken down into two categories -- regular
Back to the system directories. You'll note that the logical names for things
like SYS$MANAGER, SYS$SYSTEM, and SYS$LIBRARY are defined in terms of other
logical names. In particular, SYS$MANAGER is defined by SYS$SYSROOT:[SYSMGR]
and SYS$COMMON:[SYSMGR]. SYS$SYSROOT will likely be defined in terms of
SYS$SYSDEVICE:[SYS0.], while SYS$COMMON will be defined in terms of
In a clustered environment, if the second cluster node sharing that system
disk had a Cluster ID of 1, then on that system, SYS$SYSROOT would be defined
as SYS$SYSDEVICE:[SYS1.], while SYS$COMMON would still be defined as
When the system looks to execute a file, script, etc., it will look in the
system-specific area before the common one.
Unlike UNIX, and more like DOS/Windows, the VMS file specification has a
specific, rigidly defined format:
Subdirectories nesting limits I believe are based on the total length of a
file spec, which is somewhere around 1024 or some such (but don't quote me on
that). You can gain more subdirectory depth by using rooted logical names
(such as the ones used to define SYS$SYSROOT and SYS$COMMON above).
DCL - DIGITAL Command Language
The basic thing to remember about DCL is that it is a complete language in and
of itself. All commands, in general, have real English words (nouns and verbs)
-- RUN, BACKUP, SET, TYPE, DEFINE, etc.
Remember that DOS was largely based on Digital's command languages as they
were in the mid- to late-70s -- in particular from VAX predecessors like the
PDP-8, DECsystem-10, and PDP-11.
DCL has a concept of "symbols", which are independent of logical names, and
can work, to some extent, like environment variables AND like aliases.
You can define symbols to run frequently-accessed programs, or to redefine
regular commands to always have certain options, or to run command files.
Your definitions need to be added to your LOGIN.COM file, which lives in your
Examples of definitions that you can put in LOGIN.COM:
a) redefinitions of commands to include options:
$ DIR*ECTORY :== DIR/SIZE=ALL/DATE/PROT
$ TYPE :== TYPE/PAGE
b) Personal logical names:
$ DEFINE MYBIN SYS$LOGIN:[FRANCINI.BIN]
c) Definitions of commands that run scripts
$ DOSTUFF :== @MYBIN:DOSTUFF ! (the .COM can be left off, as it's
$ RUNMINE :== $MYBIN:MYPROG ! (this will run MYPROG.EXE in my BIN
This is just scratching the surface. I hope it helps!
John Francini (VMS user from 1981 to 2000)
On 9 Aug 2013, at 20:54, Cory Smelosky <b4 at gewt.net> wrote:
> On 9 Aug 2013, at 20:37, Steve Sandau <ssandau at gwi.net> wrote:
>> Thanks for all the information guys. I now have OpenVMS running on a
>> VAXStation 3100. Cool. I set up a 350M system drive and configured DECNET
> VMS and Linux to copy files. That allowed me to add DECwindows and TCP/IP,
> I have another drive for user files. It's been interesting finding some
> DOS-like commands and some plain English commands, too.
>> I'm still struggling with the overall logic of the file structure though.
> was thinking it was like DOS in that there's a device and directories below
> it, and that's how you get to things. But I can't sort out things like how
> SYS$ROOT[SYSMGR] and SYS$COMMON:[SYSMGR] relate. In short, the file system
> confuses me. Does this have to do with aliases or something like that?
>> I also can't figure out when to just invoke a file, "run" a file, or use
> to run a file. Clues?
> RUN for a .exe, @ for a .COM (DCL script)
>> I think I'm missing some basic information that I have not been able to
> glean from the manuals. Does anyone have pointers to basic info that might
> answer these questions, or am I just being really obtuse and the answers
> right in front of me?
>> Thanks for any help here. This is fun so far.
>> rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
> rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
More information about the rescue