# ISO 9660

ISO 9660 ist eine Norm der Internationalen Organisation für Normung (ISO), die ein Dateisystem für optische Datenträger (CD-ROM, DVD-ROM, Blu-ray Disc etc.) beschreibt. Das Ziel dieser Norm ist die Unterstützung verschiedener Betriebssysteme wie z. B. Windows, Mac OS und Unix-Systeme, so dass Daten ausgetauscht werden können.
ISO 9660 soll durch das Universal Disk Format abgelöst werden.

## Entstehung und Eigenschaften

Der ISO-9660-Standard wurde 1988 veröffentlicht, auf Grundlage des High-Sierra-Dateisystems zwei Jahre zuvor. Er schreibt vor, dass Dateinamen in der niedrigsten Kompatibilitätsstufe höchstens acht Zeichen und eine dreibuchstabige Dateinamenserweiterung umfassen dürfen und lässt in dieser Kompatibilitätsstufe maximal acht Verzeichnisebenen zu. Multi-Extent-Dateien sind in der niedrigsten Kompatibilitätsstufe nicht gestattet, d. h. eine Datei darf 4 Gibibyte − 1 Sektor nicht überschreiten. Bei einer Sektorgröße von 2 KiB ist eine Dateisystemgröße von 8 TiB möglich. Als Zeichen für die Dateinamen sind in der niedrigsten Kompatibilitätsstufe nur Großbuchstaben, Ziffern und der Unterstrich erlaubt. Alle Verzeichnisse sind alphabetisch geordnet zu erzeugen. In der niedrigsten Kompatibilitätsstufe dürfen Dateien nicht fragmentiert auf dem Datenträger gespeichert sein. Eine CD-ROM, die sich an derart strikte Vorgaben hält, kann auf nahezu jedem Computersystem gelesen werden.
Der ISO-9660-Standard (1. Ausgabe, 1988) ist technisch identisch zum ECMA-Standard ECMA-119 (2. Ausgabe, 1987).

## Erweiterungen
### ISO 9660-Level 2

Der Standard ISO 9660 Level 2 (das ist die nächsthöhere Kompatibilitätsstufe) ist weniger restriktiv und erlaubt Dateinamen bis zu einer Länge von 31 Zeichen.

### ISO 9660-Level 3

Dateien dürfen fragmentiert werden, d. h. als sogenannte Multi-Extent-Dateien abgelegt werden, hauptsächlich, um Dateien ≥ 4 GB sowie Packet-Writing oder inkrementelles CD-Schreiben zu ermöglichen.

### Joliet und Rockridge

Das Joliet-Format ist keine Erweiterung des ISO-9660-Standards, denn das durch die Firma Microsoft geschaffene Joliet ist ein separates Dateisystem, das typischerweise als Hybrid angelegt wird, wogegen die Rockridge-Extensions den Standard um Unix-spezifische Dateieigenschaften erweitern, in dem eine im ISO-9660-Standard vorgesehene Erweiterungsmethode zur Ergänzung von Verzeichniseinträgen verwendet wird. Da Joliet einen separaten Dateibaum auf dem Medium anlegt, kann es zusätzlich zu Rockridge angelegt werden. Anders als bei Rockridge besteht bei Joliet kein Zusammenhang zwischen den Dateinamen im ISO-9660-Baum.

### HFS kombiniert mit ISO 9660

Für ältere Mac-OS-Versionen werden eigentlich keine Erweiterungen benötigt, weil der ISO-9660-Standard mit den Associated Files selbst in der niedrigsten Kompatibilitätsstufe schon eine direkte Abbildung des Apple-Resourceforks enthält. ISO 9660 wurde dennoch oft in Kombination mit einem HFS-System erzeugt. Beide Systeme teilen dabei die Dateidaten, haben aber jeweils eigene Metadaten. Da HFS aber eine Begrenzung auf 2 GB Dateigröße hat, ist HFS in letzter Zeit durch andere Erweiterungen verdrängt worden.

### ISO 9660:1999

Die aktuelle Version des ISO-9660-Standards hebt alle künstlichen (also nicht durch das Format selbst bedingten) Beschränkungen auf.
Dateinamen dürfen in ISO 9660:1999 beliebige Zeichen enthalten, die maximale Länge einer Pfadnamenkomponente wird auf 207 Oktette erhöht und ohne XA-Erweiterungen (XA steht hierbei für eXtended Architecture, einem Standard für CD-ROM-Laufwerke) sind sogar 221 Oktette möglich. Weiterhin wird die Beschränkung auf eine maximale Verzeichnistiefe von 8 Directory-Hierarchiestufen aufgehoben. Zusätzlich wird die besondere Bedeutung des Punktes in Dateinamen aufgehoben.

## Beschränkungen
### Beschränkte Anzahl an Verzeichnissen

Das ISO-Format weist eine Beschränkung hinsichtlich der Anzahl der möglichen Verzeichnisse auf. Jede ISO-Verzeichnisstruktur basiert auf einer Pfadtabelle, der sogenannten „path table“. Diese tabelliert zu jedem Ordner eine Identifikationsnummer. Diese Nummer bezieht sich jeweils auf das dem Ordner übergeordnete Stammverzeichnis. Sie weist also jedem Ordner die Identifikationsnummer des übergeordneten Ordners zu. Bei dieser Identifikationsnummer handelt es sich um eine 16-Bit-Nummer, demnach ist die Anzahl der Werte auf 65536 begrenzt. Hierdurch kann die Anzahl der möglichen Verzeichnisse je nach Struktur (Art der Schachtelung) begrenzt werden. Die in der Praxis mögliche Gesamtanzahl von Verzeichnissen lässt sich nicht angeben, da nur die Anzahl der übergeordneten Stammverzeichnisse auf 65536 begrenzt ist. Da die meisten Betriebssysteme die Pfadtabelle nicht auswerten, bietet das Programm mkisofs seit Juli 2007 die Option -no-limit-pathtables, um auch bei Überschreiten der Grenze ein Dateisystem erzeugen zu können.
Einige Betriebssysteme – wie etwa Windows – greifen auf diese Pfadtabelle zurück, andere – wie etwa Linux – verwenden die Tabelle nicht. Unter Windows kann es daher zu Problemen kommen, wenn eine CD mehr als 65.536 Verzeichnisse enthält. Während dieselbe CD in Linux lesbar ist, werden unter Windows zwar alle Dateien auf der CD angezeigt, jedoch als leer („zero length“) wiedergegeben. Somit scheint zunächst eine fehlerfreie CD entstanden zu sein, die sich erst bei Prüfung einzelner Dateien als fehlerhaft erweist.
Viele CD-Schreibprogramme wie Nero Burning ROM und Pinnacle Instant CD/DVD weisen auf diese Problematik nicht hin. Somit kommt es durch den Brennvorgang zu einer scheinbar fehlerfreien CD, die tatsächlich (unter Windows) jedoch nicht brauchbar ist.

## ISO-Abbild

ISO-9660-Dateisystem-Abbilder (ISO-Abbilder) sind eine verbreitete Methode, um den Inhalt von CD-ROMs elektronisch zu verteilen. Sie haben meist die Dateierweiterung .iso.