ISO 9660

From Free net encyclopedia

Template:Optical disc authoring

ISO 9660, a standard published by the International Organization for Standardization (ISO), defines a file system for CD-ROM media. It aims at supporting different computer operating systems such as Microsoft Windows, Mac OS, and systems that follow the Unix specification, so that data may be exchanged.

DVDs may also use the ISO 9660 file system. However, the UDF file system is far more commonly used on DVDs.

Contents

History

A CD-ROM may be mastered with any kind of information on it. Sun Microsystems, for example, uses the Berkeley UNIX UFS file systems on many CD-ROMs. Silicon Graphics' IRIX uses EFS. Mac OS uses HFS. This makes them usable only on this equipment, which is no big deal for a bootable CD-ROM with an operating system on it, but for distributing general information it's a big limitation.

However, because CD-ROMs are especially suited to volume publishing of information, a standard file system useful across many kinds of architecture is very desirable. Before there was a standard on this matter some were using the High Sierra format on CD-ROM, which arranged file information in a dense, sequential layout to minimise nonsequential access.

The High Sierra file system format uses a hierarchical (eight levels of directories deep) tree file system arrangement, similar to UNIX and MS-DOS. High Sierra has a minimal set of file attributes (directory or ordinary file and time of recording) and name attributes (name, extension, and version). The designers realised they could never get people to agree on a unified definition of file attributes, so the minimum common information was encoded, and a place for future optional extensions (system use area) was defined for each file.

High Sierra was soon adapted (with changes) as an international standard (ISO 9660-1988), and the ISO 9660 file system format is now used throughout the industry.

Specifications

CD-ROM Specifications

The smallest entity in the CD format is called a frame, and holds 24 bytes. Data in a CD-ROM are organized in both frames and sectors. A CD-ROM sector contains 98 frames, and holds 2352 bytes.

CD-ROM Mode 1, usually used for computer data, divides the 2352 byte data area defined by the Red Book standards into 12 bytes of synchronisation, 4 bytes of header, 2048 bytes of user data and 288 bytes of error correction and detection codes.

CD-ROM Mode 2, usually used for audio/video data, divides the 2352 byte into 12 bytes of synchronisation, 4 bytes of header and 2336 bytes of user data.

The main advantage of Mode 2 is that it provides an additional 14 per cent of the user data space per sector. The reason is that Mode 2 does not have the additional EDC and ECC error correction data of Mode 1.

ISO 9660 Specifications

A reserved field at the beginning of the disk is present for use in booting CD-ROM on a computer (system area). As a matter of fact, its use was not specified by the ISO 9660 standard, but generally it is used for boot information.

Immediately afterwards, a series of volume descriptors details the contents and kind of information contained on the disk (something like the partition table of MS-DOS).

A volume descriptor describes the characteristics of the file system information present on a given CD-ROM, or volume. It is divided into two parts: the type of volume descriptor, and the characteristics of the descriptor.

The volume descriptor is constructed in this manner so that if a program reading the disk does not understand a particular descriptor, it can just skip over it until it finds one it recognises, thus allowing the use of many different types of information on one CD-ROM. Also, if an error were to render a descriptor unreadable, a subsequent redundant copy of a descriptor could then allow for fault recovery. When checking CD-ROMs with a dump utility we find each descriptor back in a single logical sector on itself, and also a backup of the descriptor a few logical sectors further.

The minimum requirement is that it has a primary descriptor describing the ISO 9660 file system and an ending descriptor (a variable length table that contains information on how many other descriptors are present).

The ISO 9660 primary volume descriptor acts much like the superblock of the UNIX file system, providing details on the ISO 9660 compliant portion of the disk. Contained within the primary volume descriptor is the root directory record describing the location of the contiguous root directory. (As in UNIX, directories appear as files for the operating system special use). Directory entries are successively stored within this region. Evaluation of the ISO 9660 filenames is begun at this location. The root directory is stored as an extent, or sequential series of sectors, that contains each of the directory entries appearing in the root. In addition, since ISO 9660 works by segmenting the CD-ROM into logical blocks, the size of these blocks is found in the primary volume descriptor as well.

A CD-ROM is only compliant to the ISO 9660 file system standard if there is a primary descriptor, and when there is an ending descriptor available (e.g., the volume descriptor constitute a variable length table which contains information on how many other descriptors are present).

The first field in a Volume Descriptor is the Volume Descriptor Type (type), which can have the following values:

  • Number 0: shall mean that the Volume Descriptor is a Boot Record
  • Number 1: shall mean that the Volume Descriptor is a Primary Volume Descriptor
  • Number 2: shall mean that the Volume Descriptor is a Supplementary Volume Descriptor
  • Number 3: shall mean that the Volume Descriptor is a Volume Partition Descriptor
  • Number 255: shall mean that the Volume Descriptor is a Volume Descriptor Set Terminator.

The second field is called the Standard Identifier and is set to CD001 for a CD-ROM compliant to the ISO 9660 standard.

Another interesting field is the Volume Space Size which contains the amount of data available on the CD-ROM.

File attributes are very simple in ISO-9660. The most important file attribute is determining whether the file is a directory or an ordinary file. File attributes for the file described by the directory entry are stored in the directory entry and optionally, in the extended attribute record.

There are two ways to locate a file on an ISO 9660 file system. One way is to successively interpret the directory names and look through each directory file structure to find the file (much the way MS-DOS and UNIX work to find a file). The other way is through the use of a precompiled table of paths, where all the entries are enumerated in the successive contents of a file with the corresponding entries. Some systems do not have a mechanism for wandering through directories, they obtain a match by consulting the table.

While a large linear table seems a bit arcane, it can be of great value, as you can quickly search without wandering across the disk (thus reducing seek time).

Levels and restrictions

There are different levels to this standard.

  • Level 1 : File names are restricted to eight characters with a three-character extension, upper case letters, numbers and underscore; maximum depth of directories is eight.
  • Level 2 : File names may be up to 31 characters.
  • Level 3 : Files allowed to be fragmented (mainly to allow packet writing, or incremental CD recording).

All levels restrict names to upper case letters, digits and underscores ("_"). Some CD authoring applications allow the user to use almost any ASCII character. While this does not strictly conform to the ISO 9660 standard, most operating systems that can read ISO 9660 file systems support the use of most ASCII characters as an extension.

The restrictions on filename length and directory depth have been seen by many as a more serious limitation of the file system. Many CD authoring applications attempt to work around this by truncating filenames automatically, but at the risk of breaking applications that rely on a specific file structure.

ISO 9660:1999

ISO 9660:1999 is the latest update to the ISO 9660 standard. It improves on various restrictions imposed by the old standard, such as extending the maximum path length to 207 characters, removing the eight level maximum directory nesting limit, and removing the special meaning of the dot character in filenames. This has not seen general adoption in operating systems until around 2004, but developers are generally starting to catch onto the standard.

Disc images

ISO 9660 file system images (ISO images) are a common way to electronically transfer the contents of CD-ROMs. They often have the filename extension .iso and are commonly referred to as "ISOs". It should be noted an .iso file may be:

  1. A single ISO 9660 file system image
  2. A multi-track disc image with a table of contents

Extensions

There are common extensions to ISO 9660 to deal with the limitations. Rock Ridge supports the preservation of Unix/Linux permissions and longer ASCII-coded names; Joliet supports names stored in Unicode, thus allowing almost any character to be used, even from non-Latin scripts; El Torito enables CDs to be bootable on PC.

ISO 13490 is basically ISO 9660 with multisession support.

Operating system support

Most operating systems support reading of ISO 9660 formatted discs, and most new versions support the extensions such as Rock Ridge and Joliet. Operating systems that do not support the extensions usually show the basic (non-extended) features of a plain ISO 9660 disc.

Here are some operating systems and their support for ISO 9660 and extensions:

See also

External links

de:ISO 9660 es:ISO 9660 fr:ISO 9660 ko:ISO 9660 it:ISO 9660 he:ISO 9660 nl:ISO 9660 ja:ISO 9660 pl:ISO 9660 pt:ISO 9660