Logical Names: Part 4

There is one additional set of qualifiers on the ASSIGN command which we will encounter when constructing examples. These parameters affect the mode of the logical name created/redefined by the $CRELNM system service used by the implementation of the ASSIGN command.

The relevant qualifiers are /EXECUTIVE_MODE, /SUPERVISOR_MODE, and /USER_MODE. The /EXECUTIVE_MODE qualifier requires the privilege to get to executive mode (CMEXEC) or the higher privilege required to enter kernel mode (CMKRNL). When first examining this aspect of OpenVMS, many users question why it is necessary to implement this mechanism at all. The answer is system integrity.

On some level, virtually all images executing on an OpenVMS system use logical names. The integrity problem comes when a program executing at a higher privilege level needs access to certain facilities, which are pointed to by a logical name. If a privileged program were to use a logical name defineable by a user for critical purposes (GET EXAMPLE), it would be possible to spoof operations, compromising system integerity as surely as entering kernel mode itself. For this reason, programs are able to restrict their logical name translations to names which were defined in executive mode, which can only be defined by a user or image running with the CMEXEC privilege enabled.

/SUPERVISOR_MODE is the default mode for logical names created with the ASSIGN command. SUPERVISOR_MODE logical names in the JOB and PROCESS logical name tables persist for the duration of the process or job respectively (or until they are deleted using the DEASSIGN command). Of course, it is possible to create/delete logical names directly using OpenVMS system services or run-time library routines. However, these system services and run-time library routines require the use of a programming language, and most users, managers, (and for that matter programmers) will use the DCL commands the majority of the time.

The /USER_MODE qualifier presents an option which is not well understood by many users. USER_MODE logical names are automatically deleted when an image exits. (Confirm exact mechanism from internals book). Thus, there are no cleanup operations required. No matter how many USER_MODE logical names are created prior to the execution of an image, they will all be deleted from the logical name table when the image exits.(Question: can you add user mode logicals to the JOB table?).

Of course, there are other qualifiers on the ASSIGN command, and other facets of the logiclal name facilities including cluster-wide logical names, group-wide logical name tables, private logical name tables, name table quotas, rooted logical names, search lists, to name a few. Each facet of the logical name table facilities has its uses, and we will cover other facets in future columns.

For now, we have accumulated enough qualifiers and keywords to construct useful examples of how logical names can be used effectively, ranging from individual developement environments to global system management.

URLs for referencing this entry

Picture of Robert Gezelter, CDP
RSS Feed Icon RSS Feed Icon
Follow us on Twitter
Bringing Details into Focus, Focused Innovation, Focused Solutions
Robert Gezelter Software Consultant Logo
+1 (718) 463 1079