Files-11

It supports record-oriented I/O, remote network access, and file versioning.

Under RSTS/E, each user account was represented by two numbers, a [project,programmer] pair, and had one associated directory.

While this was suitable for PDP-11 systems, which possessed limited permanent storage capacity, VAX systems with much larger hard drives required a more flexible method of file storage: hierarchical directory layout in particular, the most notable improvement in ODS-2.

"Files-11" is the general term for five separate file systems, known as on-disk structure (ODS) levels 1 through 5.

Although seldom referred to by their ODS level designations, ODS-3 and ODS-4 are the Files-11 support for the CD-ROM ISO 9660 and High Sierra Format file systems, respectively.

It was originally intended for file serving to Microsoft Windows or other non-VMS systems as part of the "NT Affinity" project, but is also used on user disks and Internet servers.

The file system is therefore organised in a directed acyclic graph (DAG) structure.

Disks can also be automatically replicated into shadow sets for data security or faster read performance.

A fully specified filename consists of a nodename, a username and password, a device name, directory, filename, file type, and a version number, in the format: For example, [DIR1.DIR2.DIR3]FILE.EXT refers to the latest version of FILE.EXT, on the current default disk, in directory [DIR1.DIR2.DIR3].

Most parts of the filename can be omitted, in which case they are taken from the current default file specification.

In particular, files which are directly updated, such as databases, do not create new versions unless explicitly programmed.

ODS-2 is limited to eight levels of subdirectories, and only uppercase, alphanumeric names (plus the underscore, dash, and dollar sign) up to 39.39 characters (39 for the filename and another 39 for the extension).

There is also a fifth permission bit, "Control", which is used to determine access to change file metadata such as protection.

For example, the ACL entry would allow the user HTTP$SERVER to read and execute the file.

A logical name is a system variable which may reference a disk, directory or file, or contain other program-specific information.

[1] Logical names do not have a close equivalent in POSIX operating systems.

They resemble Unix environment variables, except they are expanded by the file system, instead of the command shell or application program.

For example, physical device names follow a pattern like DF0: for the first floppy disk, CDROM2: for the 3rd CD-ROM drive, etc.

Record Management Services is the structured I/O layer of the VMS operating system.

A text file, for example, is a list of records (lines) separated by a newline character.

However, if the ACL is too long, or the file contains too many extents, there will not be enough space in the primary header to store them.

The file header begins with 4 offsets (IDOFFSET, MPOFFSET, ACOFFSET and ROFFSET).

W_FID (containing three values: FID_NUM, FID_SEQ and FID_RVN, corresponding to the file, sequence, and relative volume number) contains the ID of this file; EXT_FID (again composed of three values) holds the location of the next extension header, if any.

VMS defines four privilege levels: user, supervisor, exec, and kernel.

Each type of access - read, write, execute and delete - is encoded as a 2-bit integer.

A typical Files-11 directory hierarchy: all files are rooted in the Master File Directory; File2 is in two directories
Figure 1 : Sample OpenVMS cluster disk configuration
Format of file protection display; permissions not granted are not displayed