LJK/CDROM Reference Manual


Previous Contents Index

2.2.5 Primary Hierarchy

There is a requirement for one primary Hierarchy that must exist on every ISO-9660 Volume. The primary Hierarchy allows only the following for D-Characters: 3

The primary Hierarchy allows only the following for A-Characters: 4

While a given operating system may or may not be able to interpret the characters used to name Files and Directories in various Hierarchies on an ISO-9660 Volume, all operating systems should be able to interpret the characters used to name Files and Directories in that primary Hierarchy.

2.2.6 Levels of Interchange

There is another dimension of ISO-9660 compatibility across operating systems, as shown in Table 2-2, ISO-9660 Levels of Interchange:

Table 2-2 ISO-9660 Levels of Interchange
Level Restrictions
Level 1 Files can contain only one File Section. File Names can contain no more than 8 characters. File Name Extensions can contain no more than 3 characters. Directory Identifiers can contain no more than 8 characters.
Level 2 Files can contain only one File Section.
Level 3 No restrictions.
For most ISO-9660 Hierarchies those levels of interchange are a matter of understanding between those creating a Volume and those reading that Volume. There is an exception in the case of Microsoft Joliet Hierarchies, where the interchange level is actually encoded into the Escape Sequences.

2.2.7 Beyond ISO-9660

The ISO-9660 standard provides multiple mechanisms for extensions, and luckily three that are of interest to diverse operating systems do not conflict with each other.

2.2.7.1 Posix Rock Ridge Extensions

The Rock Ridge extensions provide storage for data elements needed for Unix-like environments. On any given Hierarchy, LJK/CDROM can support the following standard:

or alternatively it can support the combination of a following two standards:

2.2.7.2 VMS-specific RMS File Attributes

The ISO-9660 standard itself supports RMS file attributes for sequential files, but for relative and indexed files VMS-specific RMS attributes must be added to the information for a File. Since this information is associated with a File, it is independent of Hierarchies.

2.2.7.3 Microsoft Joliet Hierarchies

Unlike the Unix and VMS extensions described above, the Microsoft Joliet extensions actually force a violation of the ISO-9660 standard. In fairness, ISO-9660 did not provide a central feature that Microsoft needed to support Windows NT---two-byte characters. The Microsoft Joliet extensions require use of a separate Hierarchy.

Note

3 The term D-Characters is used for the list of characters specified for the primary Hierarchy, analogous to the term D1-Characters for lists of characters defined for other Hierarchies.

4 The term A-Characters is used for the list of characters specified for the primary Hierarchy, analogous to the term A1-Characters for lists of characters defined for other Hierarchies.

2.3 The Nature of ISO-9660 Volume Sets

Each ISO-9660 Volume has a particular Volume Sequence Number from 1 to 65535 indicating its position in its Volume Set. Even a single Volume written in isolation has a Volume Sequence Number of 1, and could be used as the basis for writing additional members of the same Volume Set.

Unlike for traditional VMS ODS-n volume sets, with ISO-9660 Volume Sets you can add Volumes without writing onto existing Volumes. This is particularly suited to read-only media like CDROM and DVD.

2.3.1 The ISO-9660 Volume Group

Each time Volumes are added to a Volume Set, the Volumes (possibly only one) being added form a new Volume Group. Each Volume in the new Volume Group contains directory information for all the Hierarchies in all the prior Volume Groups in the Volume Set, as well as all the Volumes in the new Volume Group being written.

Looking at this from the VMS perspective, it means that, in order to have full access to the Volume Set, the first Volume you mount must be a member of the latest Volume Group for the Volume Set. 5 Once that mount has been done, VMS has information about all files in the Volume Set and can engage in volume switching to get the right disc for retrieving any file.

Note

5 If the first Volume you mount is a member of some earlier Volume Group, the Volume Set will appear as it did just after that Volume Group was written, and volume switching would have no occasion to attempt to access Volumes in subsequent Volume Groups.


Chapter 3
Defining Character Sets

This chapter describes how to define Character Sets within LJK/CDROM.

As described in Section 2.2.4,Character Sets, ISO-9660 restricts the Character Sets that can be used for metadata within a Hierarchy. There are two levels of such restrictions:

The DEFINE CHARACTER_SET command within LJK/CDROM associates a user-chosen name with the attributes of a Character Set:

3.1 Predefined Character Sets

LJK/CDROM predefines several Character Sets (and thereby reserves those names for Character Sets) to reduce the need for custom definitions of Character Sets. The predefined Character Sets are as follows:

Table 3-1 Predefined Character Sets
LJK/CDROM Name Escape Sequences D/D1-Characters Other Restrictions
LJK$ISO9660 none A-Z, digits and underscore none
LJK$MICROSOFT_L1 %/@ Microsoft characters 8.3 names, files cannot span Volumes
LJK$MICROSOFT_L2 %/C Microsoft characters files cannot span Volumes
LJK$MICROSOFT_L3 %/E Microsoft characters none
LJK$VMS (B A-Z, digits, underscore, dollar sign and dash none
LJK$VMS_EXTENDED -A all ODS-5 characters (i.e., not * or ?) none
To define simple Character Sets you can use the same Escape Sequences as one of the Character Sets predefined by LJK/CDROM. For more complex Character Sets, however, you will need a copy of the ISO-2022 standard, since LJK/CDROM does not enforce all the restrictions of all the Escape Sequences allowed by ISO-2022. Using the DEFINE CHARACTER_SET command is what specifies to LJK/CDROM the fact that particular A1-Characters and D1-Characters are legal under a particular set of Escape Sequences.

It is important to remember that the name of a Character Set is just an internal reference used during one invocation of LJK/CDROM.


Chapter 4
Creating Hierarchies

This chapter describes how to create Hierarchies in an ISO-9660 Volume by using LJK/CDROM.

The combination of Volume Identifier and Escape Sequences for each Hierarchy on a Volume must be unique, and during actual use of a Volume that combination will suffice for identification.

However, within LJK/CDROM a user-specified Hierarchy name is used to describe a Hierarchy, providing an implicit link to a particular Character Set definition.

The CREATE HIERARCHY command within LJK/CDROM associates with a user-chosen name the attributes desired for the Hierarchy. The full range of possible attributes is described in LJK/CDROM, under the command CREATE HIERARCHY, but the most important ones are as follows:

Note

+ The Escape Sequences for this value must match those for any prior Volume Groups of a Volume Set. That is the mechanism whereby LJK/CDROM associates a Hierarchy name with an existing Hierarchy on an existing Volume Set.

++ This value can only be specified for the initial Volume Group of a Volume Set.

4.1 Hierarchy Names and Volume Sets

There is no ISO-9660 requirement that the Volume Identifier for one Hierarchy on a Volume differ from the Volume Identifier for other Hierarchies on that Volume so long as the Escape Sequences within the Character Set provides a distinction.

Likewise there is no ISO-9660 requirement that the Volume Identifier for a Hierarchy on one Volume differ from the Volume Identifier for the same Hierarchy on a different Volume in the same Volume Set. But the use of Volume Identifiers in the VMS MOUNT command makes it preferable to use different Volume Identifiers for successive Volumes, particularly when mounting multiple Volumes from the same Volume Set at the same time. Therefore, LJK/CDROM defaults to Volume Identifiers that include the Volume Sequence Number within the first 12 characters of the Volume Identifier (since VMS Mount deals mainly with the first 12 characters).

The Hierarchy name provides a single user-friendly name within LJK/CDROM for describing a Hierarchy.

Hierarchies can be added to, but not removed from successive Volume Groups of a Volume Set. If there are no new Files provided for a Hierarchy when extending a Volume Set, metadata for the Hierarchy will still be present on the new Volumes, pointing to files on previous Volumes, ready for access via volume switching.

4.2 Predefined Hierarchies

If no Hierarchies have been defined at the time the command ADD or the command WRITE1 is issued, LJK/CDROM automatically defines the following four Hierarchies and proceeds using those Hierarchies.

Table 4-1 Predefined Hierarchies
LJK/CDROM Hierarchy Character Set Used
LJK$OPEN LJK$ISO9660
LJK$MICROSOFT LJK$MICROSOFT_L3
LJK$ODS2 LJK$VMS
LJK$ODS5 LJK$VMS_EXTENDED
If Hierarchies already have been defined at the time that the command ADD or the command WRITE is issued but none of those Hierarchies use a Character Set corresponding to the Character Set LJK$ISO9660, just the LJK$OPEN Hierarchy above will be automatically defined.

Note

1 This will always be true if the command WRITE is issued directly from DCL rather than from subsystem mode.


Chapter 5
Formatting a Volume

This chapter tells how to use LJK/CDROM to create an ISO-9660 Volume.

As discussed in Section 1.2, Formatting a CDROM Volume, the simplest method of formatting a Volume with LJK/CDROM is to use one of the commands:


LJK/CDROM WRITE ddcu: source-filespec-1,source-filespec-2,... 
or


LJK/CDROM WRITE target-filespec source-filespec-1,source-filespec-2,... 

Note

The LJK/CDROM WRITE command takes the target file specification before the source file specifications because the source file specifications are optional.
But for more precise control you should just issue the DCL command

to enter subsystem mode and from there use the following commands (typically in the order shown):

  1. DEFINE CHARACTER_SET
    With this command you can define your own sets of legal characters for the Hierarchies you will create, if the predefined Character Sets described in Table 3-1, Predefined Character Sets, do not meet your needs.
  2. SET DEFAULT
    This command is an adjunct to the CREATE HIERARCHY command, intended to avoid repetitive typing and limitations on command line length. You can issue one or more SET DEFAULT command prior to each CREATE HIERARCHY command, providing default values for the CREATE HIERARCHY command.
  3. CREATE HIERARCHY
    With this command you define a Hierarchy, using the qualifiers you provide as well as those you have used before with the SET DEFAULT command.
  4. ADD
    This command specifies one or more input files for inclusion on the Volume being formatted.
  5. WRITE
    This command causes the actual formatting of one or more Volumes, possibly including additional input files specified as you did with the ADD command.


Previous Next Contents Index