World Library  
Flag as Inappropriate
Email this Article

Iso 9660

Article Id: WHEBN0000015145
Reproduction Date:

Title: Iso 9660  
Author: World Heritage Encyclopedia
Language: English
Subject: Universal Disk Format, CD-ROM, File Allocation Table, File system, List of Ecma standards
Collection:
Publisher: World Heritage Encyclopedia
Publication
Date:
 

Iso 9660

ISO 9660 (also known as optical disc media. It aims at supporting different computer operating systems such as Windows, classic Mac OS, and Unix-like systems, so that data may be exchanged.

History

ISO 9660 traces its roots to the High Sierra Format file system. High Sierra arranged file information in a dense, sequential layout to minimize nonsequential access by using a hierarchical (eight levels of directories deep) tree file system arrangement, similar to UNIX and FAT. To facilitate cross platform compatibility, it defined a minimal set of common file attributes (directory or ordinary file and time of recording) and name attributes (name, extension, and version), and used a separate system use area where future optional extensions for each file may be specified.

High Sierra was adopted in December 1986 (with changes) as an international standard by ISO, where it was eventually accepted as ISO 9660:1988. The ISO 9660 file system format is now used throughout the industry.

Specifications

Relation to CD-ROM modes

Data in a CD-ROM is structured in tracks, with each track being composed of a sequential series of sectors. Each sector can contain up to 2,352 bytes of data, with the amount depending on the type of the sector. Tracks with CD-ROM Mode 1 sectors or CD-ROM XA Mode 2 Form 1 sectors, used for computer data, store 2,048 bytes of actual data per sector, with the rest of the bytes in the sector being used for headers and error correction.

Each data track on a CD-ROM can contain a complete file system in a format such as ISO 9660. A CD-ROM can contain several tracks with different file systems in each, or even audio tracks coexisting with tracks containing data file systems. Since the ISO 9660 file system is used for computer data, it is usually found on tracks with Mode 1 or Mode 2 Form 1 sectors.

Overall structure

The following is the rough overall structure of the ISO 9660 file system:

ISO 9660 File System
System Area (32,768 B) Unused by ISO 9660
Data Area
Volume Descriptor (2,048 B)
Volume Descriptor (2,048 B)
...
Volume Descriptor Set Terminator (2,048 B)
Optional space
Path tables
Root directory
Directories and files

The System Area, the first 32,768 data bytes of the disk (16 sectors of 2,048 bytes each), are unused by ISO 9660 data structure, and therefore available for other uses. For example, a CD-ROM may contain an alternative file system descriptor in this area, as it is often used by hybrid CDs to offer Mac OS-specific content.

All multi-byte values are stored twice, in little-endian and big-endian format, either one-after-another in what the specification calls "both-byte orders", or in duplicated data structures such as the path table. It is therefore theoretically possible to author an ISO-9660 image which delivers different content on different architectures.

Volume descriptors

The data structure follows the skipped block with a series of volume descriptors, detailing the contents and types of information contained on the disk (similar to the BIOS parameter block used by FAT and NTFS formatted disks). A volume descriptor describes the characteristics of the file system information present on a given CD-ROM, or volume.

Since there can be multiple independent volume descriptors, if a particular program does not know certain type of descriptor it can just ignore it. A redundant copy of each volume descriptor can also be included in case the first copy of the descriptor becomes corrupt.

Volume descriptors have the following structure:

Volume Descriptor ← 2,048 bytes →
Parts Type Identifier (always 'CD001') Version (always 0x01) Data (depends on type), can be subdivided into several fields
Sizes 1 byte 5 bytes 1 byte 2,041 bytes

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

  • 0: Boot Record Volume Descriptor.
  • 1: Primary Volume Descriptor.
  • 2: Supplementary Volume Descriptor.
  • 3: Volume Partition Descriptor.
  • 255: Volume Descriptor Set Terminator, used to indicate that the list of volume descriptors has finished.

An ISO 9660 compliant disk contains at least one Primary Volume Descriptor describing the ISO 9660 file system and a Volume Descriptor Set Terminator for indicating the end of the descriptor sequence. Joliet and UDF are examples of file systems that extend ISO 9660 by adding new descriptor types that are used in the series of volume descriptors, which will be ignored by ISO 9660 compliant software.

The primary volume descriptor provides details on the ISO 9660 part of the disk (similar to the superblock of the Unix File System). The primary volume descriptor contains several fields, including a root directory record that indicates in which sector the root directory is located. Other fields contain the description or name of the volume, and information about who created it and with which application. The size of the logical blocks which the file system uses to segment the volume is also stored in a field inside the primary volume descriptor, as well as the amount of space occupied by files in the volume (measured in number of logical blocks).

Directories and files

Overview of the ISO 9660 directory structure

Directory entries are stored following the location of the root directory entry, where evaluation of filenames is begun. Both directories and files are stored as extents, which are sequential series of sectors.

Files and directories are differentiated only by a file attribute that indicates its nature (similar to Unix). The attributes of a file are stored in the directory entry that describes the file, and optionally in the extended attribute record.

To locate a file, the directory names in the file's path can be checked sequentially, going to the location of each directory to obtain the location of the subsequent subdirectory. However, a file can also be located through the path table provided by the file system. This path table stores information about each directory, its parent and its location on disk. Since the path table is stored in a contiguous region, it can be searched much faster than jumping to the particular locations of each directory in the file's path, thus reducing seek time.

The standard has three different levels for files, here paraphrased from section 10:

  • Level 1: File names are limited to eight characters with a three-character extension, using upper case letters, numbers and underscore only. The maximum depth of directories is eight.
  • Level 2: File names are not limited to 11 characters (the 8.3 format) but can be up to the maximum allowed by the 1 byte counter in the directory entry and the filename length byte counter. Typically, this is close to 180 characters, depending on how many extended attributes are present.
  • Level 3: Files are allowed to be non-contiguous (i.e., fragmented), principally to allow packet writing or incremental CD recording.

The standard also specifies the following name restrictions:

  • All levels restrict filenames to upper case letters, digits, underscores ("_"), and a dot.
  • File names shall not include spaces.
  • File names shall not start or end with the dot character.
  • File names shall not have more than one dot.
  • Directory names shall not use dots at all.

Some CD authoring applications allow the user to use almost any character. While, strictly speaking, this does not conform to the ISO 9660 standard, most operating systems which can read ISO 9660 file systems have no problem with out-of-spec names. However, the names could appear wrong to the user.

Path tables

Path tables summarize the directory structure of the relevant directory hierarchy, providing only the directory identifier, the location of the extent in which the directory is recorded, the length of any extended attributes associated with the directory, and the index of its parent directory path table entry.

Limitations

Directory depth limit

The restrictions on filename length (8 characters plus 3 character extension for level 1) and directory depth (8 levels, including the root directory) are a more serious limitation of the ISO 9660 file system. Many CD authoring applications attempt to get around the filename length by truncating filenames automatically, but do so at the risk of breaking applications that rely on a specific file structure.

The Rock Ridge extension works around the 8 directory depth limit by folding paths. In practice however, few drivers and OSes care about the directory depth, so this rule is often ignored.

ISO Level 2 allows longer names, but since the total directory entry uses a single byte it is limited to 255 bytes. This puts upper limit on the filename of just over 200 characters depending on what directory extensions are used.

The 2/4 GiB file size limit

All numbers in ISO 9660 file systems except the single byte value used for the GMT offset are unsigned numbers. As the length of a file's extent on disk is stored in a 32 bit value,[2] it allows for a maximum length of just over 4.2 GB (more precisely, one byte less than 4 GiB). (Note: Some older operating systems may handle such values incorrectly (i.e., signed instead of unsigned), which would make it impossible to access files larger than 2 GB in size. The latter holds true also for operating systems without large file support.)

Based on this, it is often assumed that a file on an ISO 9660 formatted disc cannot be larger than 232-1 in size, as the file's size is stored in an unsigned 32 bit value, for which 232-1 is the maximum.

It is, however, possible to circumvent this limitation by using the multi-extent (fragmentation) feature of ISO 9660 Level 3 to create ISO 9660 filesystems and single files up to 8 TB. With this, files larger than 4 GB can be split up into multiple extents (sequential series of sectors), each not exceeding the 4 GB limit. For example, the free software such as InfraRecorder and mkisofs as well as Roxio Toast are able to create ISO 9660 filesystems that use multi-extent files to store files larger than 4 GB on appropriate media such as recordable DVDs.

Empirical tests with a 4.2 GB fragmented file on a DVD media have shown that Microsoft Windows XP supports this, while Mac OS X (as of 10.4.8) does not handle this case properly. In the case of Mac OS X, the driver appears not to support file fragmentation at all (i.e. it only supports ISO 9660 Level 2 but not Level 3). Linux supports multiple extents.[3] FreeBSD only shows and reads the last extent of a multi-extent file.

Limit on number of directories

Another limitation, less well known, is the number of directories. The ISO image has a structure called "path table". For each directory in the image, the path table provides the identifier of its parent directory. The problem is that the directory identifier is a 16-bit number, limiting its range from 1 to 65,535.[4] This is the only place in the ISO format where a 16-bit number is used, causing such limitations. The content of each directory is written also in a different place, making the path table redundant, and suitable only for fast searching.

Some operating systems (e.g., Windows) use the path table, while others (e.g., Linux) do not. If an ISO image or disk consists of more than 65,535 directories, it will be readable in Linux, while in early Windows versions all files from the additional directories will be visible, but show up as empty (zero length). Current Windows versions appear to handle this correctly.

Some software tools can have problems managing the path table if the directory limit is exceeded. A popular application using ISO format, mkisofs, aborts if there is a path table overflow. Nero Burning ROM (for Windows) and Pinnacle Instant CD/DVD do not check whether the problem occurs, and will produce an invalid ISO file or disk without warning. The tool isovfy cannot easily report this problem.

Extensions and improvements

There are several extensions to ISO 9660 that relax some of its limitations.

For operating systems which do not support any extensions, a name translation file TRANS.TBL must be used. It should be located in every directory, including the root directory. This is now obsolete, since few such operating systems are in use today .

The ISO 13490 standard is an extension to the ISO 9660 format that adds support for multiple sessions on a disc. Since ISO 9660 is by design a read-only, pre-mastered file system, all the data has to be written in one go or "session" to the medium. Once written, there is no provision for altering the stored content. ISO 13490 was created to allow adding more files to a writeable disc such as CD-R in multiple sessions.

The ISO 13346/ECMA-167[5] standard was designed in conjunction to the ISO 13490 standard to address most of the shortcomings of ISO 9660,[6] and a subset of it evolved into the UDF format, which was adopted for DVDs.

JIS X 0606:1998, also known as ISO 9660:1999, is a Japanese Industrial Standard draft created by the Japanese National Body (JTC1 N4222) in order to make some improvements and remove some limitations from the original ISO 9660 standard.[7] This draft was submitted in 1998, but it has not been ratified as an ISO standard yet. Some of its changes includes the removal of some restrictions imposed by the original standard by extending the maximum file name length to 207 characters, removing the eight-level maximum directory nesting limit, and removing the special meaning of the dot character in filenames. Some operating systems allow these relaxations as well when reading optical discs. Several disc authoring tools (such as Nero Burning ROM, mkisofs and ImgBurn) support a so-called "ISO 9660:1999" mode (sometimes called "ISO 9660 v2" or "ISO 9660 Level 4" mode) that removes restrictions following the guidelines in the ISO 9660:1999 draft.

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 (.iso9660 is less common, but also in use) and are commonly referred to as "ISOs".

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.

Operating systems that support ISO 9660 and its extensions include the following:

See also

References

  1. ^ "Volume and File Structure of CDROM for Information Interchange". Ecma International. December 1987. 
  2. ^ ECMA-119 9.1.4
  3. ^ kern/95222: File sections on ISO9660 level 3 CDs ignored
  4. ^ ECMA-119 6.9
  5. ^ ECMA-167 - Volume and File Structure for Write-Once and Rewritable Media using Non-Sequential Recording for Information Interchange
  6. ^ Birth Announcement: ISO/IEC 13346 and ISO/IEC 13490
  7. ^ JIS X 0606:1998 / ISO 9660:1999 Draft Specification
  8. ^ "The Virtual GS: Using ISO disk images in Apple II emulators" (PDF). Juiced.GS Volume 9, Issue 2. May 2004. 
  9. ^ "The OpenVMS Frequently Asked Questions (FAQs)". Hoffman Labs. Retrieved 1 September 2011. 
    • Windows 8/8.1 and Windows 10 Technical Preview allows you to mount the file as a drive. Allows for any software within that .iso file to be easily installed, without using third party software (i.e. 7zip, WinRAR, etc.)

External links

  • ECMA-119 This is the ECMA release of the ISO 9660:1988 standard, available as a free download.
  • Summary of the ISO 9660 Specifications
  • Description of data structures in ISO-9660
  • ISO 9660 Analyzer Tool (iat) at Freecode
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 


Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.