ISO 9660: Difference between revisions

Jump to navigation Jump to search
2,417 bytes added ,  14 years ago
Added initial ISO 9660 information. I am continuing to work on this article over the next few days...
[unchecked revision][unchecked revision]
m (adding See Also link + better wikipedia link)
(Added initial ISO 9660 information. I am continuing to work on this article over the next few days...)
Line 1:
{{Stub}}
{{Filesystems}}
'''ISO 9660''' is the standard filesystem for CD-ROMs.
 
{{In Progress}}
 
== Overview and Caveats ==
ISO 9660 is not a complex file system, but has a few quirks that are worth remembering. It seems that some operating systems also create non-compliant CD's, so beware! The main example of this is the character set that is available for file names. Strictly, this consists of A-Z (upper case only!), digits and underscores. Many operating systems also allow lower case letters and other characters. Linux's [[VFS]] displays lower case filenames to the user despite the cd contents actually containing upper case characters.
 
Another quirk of the system is that it has several numbering formats and multi-byte numbers are often represented in "both-endian" format (that is, LSB first followed by MSB first). For this reason, 32 bit LBA's often appear in 8 byte fields.
 
It should be noted that an ISO 9660 sector is 2KiB (2048 bytes) long. The term "extent" is used to describe a sequential series of sectors.
 
== Volume Descriptors ==
When preparing to mount a CD, your first action will be reading the volume descriptors (specifically, you will be looking for the Primary Volume Descriptor).
 
Sectors 0x00-0x0F of the CD are reserved for system use. This means that the Volume Descriptors can be found starting at sector 0x10. The format of the volume descriptors is as follows:
 
{| {{wikitable}}
! Offset
! Length (bytes)
! Field Name
! Meaning
|-
| 0 || 1 || Type || Volume Descriptor type code (see below).
|-
| 1 || 5 || Identifier || Always 'CD001'.
|-
| 6 || 1 || Version || Volume Descriptor Version (0x01).
|-
| 7 || 2041 || Data || Depends on the volume descriptor type.
|}
 
This means that each volume descriptor is therefore one sector (2KiB) long.
 
=== Volume Descriptor Type Codes ===
{| {{wikitable}}
! Value
! Meaning
|-
| 0 || Volume descriptor is a Boot Record
|-
| 1 || Primary Volume Descriptor
|-
| 2 || Supplementary Volume Descriptor
|-
| 3 || Volume Partition Descriptor
|-
| 4-254 || Reserved
|-
| 255 || Volume Descriptor Set Terminator
|}
 
When starting out with a basic CD, we are going to be interested in the Primary Volume Descriptor, which points us to the root directory and path tables, which both allow us to find any file on the CD. Using the path table is ideal for minimal implementations which do not wish to search the directory heirarchy node by node. This is slower (string comparisons across the entire filesystem) but easier to implement.
 
== See Also ==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu