Skip to content

ISO9660

opencode-agent[bot] edited this page May 10, 2026 · 1 revision

ISO9660

The ISO-9660 standard for CD-ROM filesystems, implemented in JNode's org.jnode.fs.iso9660 plugin.

Overview

ISO-9660 is an international standard filesystem for CD-ROM media. JNode provides read/write support through its ISO-9660 filesystem plugin.

Key Components

File Purpose
fs/src/fs/org/jnode/fs/iso9660/ISO9660FileSystem.java Main filesystem implementation
fs/src/fs/org/jnode/fs/iso9660/ISO9660FileSystemType.java Filesystem type factory
fs/src/fs/org/jnode/fs/iso9660/ISO9660Volume.java Volume descriptor parsing
fs/src/fs/org/jnode/fs/iso9660/ISO9660Directory.java Directory entry handling
fs/src/fs/org/jnode/fs/iso9660/ISO9660File.java File entry handling
fs/src/fs/org/jnode/fs/iso9660/ISO9660Entry.java Base entry class
fs/src/fs/org/jnode/fs/iso9660/EntryRecord.java Directory record parsing
fs/src/fs/org/jnode/fs/iso9660/Descriptor.java Volume descriptor base class
fs/src/fs/org/jnode/fs/iso9660/PrimaryVolumeDescriptor.java Primary volume descriptor
fs/src/fs/org/jnode/fs/iso9660/SupplementaryVolumeDescriptor.java Supplementary volume descriptor
fs/src/fs/org/jnode/fs/iso9660/VolumeDescriptor.java Volume descriptor wrapper
fs/src/fs/org/jnode/fs/iso9660/ISO9660DTime.java Date/time structure
fs/src/fs/org/jnode/fs/iso9660/ISO9660Constants.java Constants (volume types, separators)

ISO-9660 Structure

Volume Descriptors

The ISO-9660 filesystem begins with a sequence of volume descriptors:

  • Boot Record (type 0) — Bootable system information
  • Primary Volume Descriptor (type 1) — Main volume metadata
  • Supplementary Volume Descriptor (type 2) — Joliet extension support
  • Partition Descriptor (type 3) — Volume partition information
  • Volume Descriptor Set Terminator (type 255) — End of descriptor sequence

Directory Structure

ISO-9660 uses a root directory entry at sector 16 (for standard media). Directory entries contain:

  • Length of Directory Record (LENGTH)
  • Extended Attribute Record Length (EATR)
  • Location of Extent (LBA)
  • Data Length of Extent (size)
  • Recording date/time
  • File flags (directory, hidden, etc.)
  • Filename (8.3 format: NAME.EXT;VERSION)

JNode Implementation

JNode's ISO-9660 implementation:

  • Supports ISO-9660 Level 1 (8.3 filenames, ASCII only)
  • Supports ISO-9660 Level 2 (up to 31 character filenames)
  • Parses both primary and supplementary volume descriptors
  • Implements directory iteration via ISO9660Directory
  • Provides file access via ISO9660File

Related Pages

Clone this wiki locally