| Zeile 6: | Zeile 6: | ||
== BothEndian == | == BothEndian == | ||
Viele Multibytewerte werden bei iso9660 also BothEndian gespeichert. D.h erst kommt der Wert in LittleEndian dann in BigEndian. Multibytewerte werden in diesem Artikel wie folgt bezeichnet: | Viele Multibytewerte werden bei iso9660 also BothEndian gespeichert. D.h erst kommt der Wert in LittleEndian dann in BigEndian. Multibytewerte werden in diesem Artikel wie folgt bezeichnet: | ||
| − | + | * Little Endian (LE) | |
| − | + | * Big Endian (BE) | |
| − | + | * Both Endian (XE) | |
Zu beachten ist natürlich dass z.B ein 4byte großer BothEndian-Wert nur ein Word ist. | Zu beachten ist natürlich dass z.B ein 4byte großer BothEndian-Wert nur ein Word ist. | ||
== Allgemeiner Aufbau == | == Allgemeiner Aufbau == | ||
| − | Die ersten 16 Sektoren sind | + | Die ersten 16 Sektoren sind systemspezifisch, danach folgen in einigen Sektoren die sogenannten Volume-Deskriptoren. Ein Sektor hat normalerweise eine Größer von 2048 Bytes, kann aber auch eine Andere Größe haben. |
Nach den Volume-Deskriptoren liegen Pathtables und Datensektoren (Sektoren die Datei oder Verzeichnis-Informationen enthalten). | Nach den Volume-Deskriptoren liegen Pathtables und Datensektoren (Sektoren die Datei oder Verzeichnis-Informationen enthalten). | ||
== Volume-Deskriptoren == | == Volume-Deskriptoren == | ||
Es gibt 2 wichtige Typen an Volume Deskriptoren: | Es gibt 2 wichtige Typen an Volume Deskriptoren: | ||
| − | + | * Primäre Volume-Deskriptoren: Enthalten wichtige Informationen über das Dateisystem | |
| − | + | * Terminierender Volume-Deskriptor: Zeigt das Ende der Volume-Deskriptoren an. | |
| + | Ein Volume-Deskriptor füllt dabei einen ganzen Sektor. | ||
Volume-Deskriptoren füllen immer einen ganzen Sektor aus und fangen mit dem Typ und der Signatur an: | Volume-Deskriptoren füllen immer einen ganzen Sektor aus und fangen mit dem Typ und der Signatur an: | ||
| Zeile 102: | Zeile 103: | ||
=== Terminierender Volume-Deskriptor === | === Terminierender Volume-Deskriptor === | ||
| + | {| border="1" | ||
| + | ! Offset || Größe || Beschreibung | ||
| + | |- | ||
| + | | 0x00 || 1 || Typ | ||
| + | |- | ||
| + | | 0x01 || 6 || Signature | ||
| + | |} | ||
| + | Dieser Volume-Deskriptor enthält keine Informationen. Er ist nur zum Anzeigen des Ende der Volume-Deskriptoren da. | ||
== Verzeichniseintrag == | == Verzeichniseintrag == | ||
| + | Ein Verzeichniseintrag enthält Metainformationen zu den Dateien bzw. Verzeichnissen auf der CD. Der Root-Verzeichniseintrag befindet sich im primären Volume-Deskriptor. Jedes Verzeichnis (somit auch das Rootverzeichnis) enthält eine Liste an Verzeichniseinträgen im Datenbereich. | ||
| + | |||
| + | {| border="1" | ||
| + | ! Offset || Größe || Beschreibung | ||
| + | |- | ||
| + | | 0x00 || 1 || Größe des gesamten Verzeichniseintrags | ||
| + | |- | ||
| + | | 0x01 || 1 || Anzahl an Sektoren im erweiterten Attributeintrag | ||
| + | |- | ||
| + | | 0x02 || 8 || Erster Sektor des Datenbereichs (XE) | ||
| + | |- | ||
| + | | 0x0A || 8 || Größe des Datenbereichs (XE) | ||
| + | |- | ||
| + | | 0x13 || 1 || Erstellungsjahr (seit 1900) | ||
| + | |- | ||
| + | | 0x14 || 1 || Erstellingsmonat (1=Januar, 2=Februar,...) | ||
| + | |- | ||
| + | | 0x15 || 1 || Erstellungstag (Tag des Monats) | ||
| + | |- | ||
| + | | 0x16 || 1 || Erstellungsstunde | ||
| + | |- | ||
| + | | 0x17 || 1 || Erstellungsminute | ||
| + | |- | ||
| + | | 0x18 || 1 || Erstellungssekunde | ||
| + | |- | ||
| + | | 0x19 || 1 || GMT Verschiebung (in 15min-Intervallen) | ||
| + | |- | ||
| + | | 0x1A || 1 || Flags | ||
| + | |- | ||
| + | | 0x1B || 1 || Einheitengröße für Interleaved-Dateien | ||
| + | |- | ||
| + | | 0x1C || 1 || Abstand zwischen Blöcken von Interleaved-Dateien | ||
| + | |- | ||
| + | | 0x1D || 4 || Volume-Sequenz-Nummer (XE) | ||
| + | |- | ||
| + | | 0x22 || 1 || Länge des Identifizierers | ||
| + | |- | ||
| + | | 0x23 || X || Identifizierer | ||
| + | |- | ||
| + | | 0x23+X || (1) || Padding-Byte. Füllt so, dass die System Use Area mit einem geraden Offset anfängt. | ||
| + | |- | ||
| + | | 0x23+X+Y || Rest || Für Erweiterungen (System Use Area) | ||
| + | |} | ||
== Rockridge == | == Rockridge == | ||
| + | Rockridge ist eine Erweiterung von ISO9660 für POSIX-Systeme. Rockridge erweitert dabei ISO9660 um: | ||
| + | * lange Dateinamen | ||
| + | * Zugriffsrechte | ||
| + | * Gerätedateien | ||
| + | * Symbolische Links | ||
| + | * Timestamps | ||
| + | * weiteres | ||
| + | |||
| + | Rockridge teilt sich die System Use Are (Ab jetzt SUA genannt) in jeden Verzeichniseintrags nach den SUSP-Standard ein. Dabei wird die SUA in Einträge gegliedert, die hintereinander liegen. Jeder Eintrag beginnt mit einem Kopf, mit dem er eindeutig indentifizierbar ist.<br> | ||
| + | |||
| + | === Kopf eines Eintrags === | ||
| + | {| border="1" | ||
| + | ! Offset || Größe || Beschreibung | ||
| + | |- | ||
| + | | 0x00 || 2 || Signatur | ||
| + | |- | ||
| + | | 0x02 || 1 || Größe des Eintrags | ||
| + | |- | ||
| + | | 0x03 || 1 || Version (1) | ||
| + | |} | ||
| + | Die Signatur entspricht der Abkürzung (z.B "PX" entspricht 'P'|('X'<<8)). | ||
| + | |||
| + | == SP-Eintrag == | ||
| + | Der SP-Eintrag sollte nach dem SUSP-Standart eigentlich der erste Eintrag sein. Er zeigt an, dass diese SUA SUSP verwendet. Auf meinen ISOs hab ich bis jetzt nur RR-Einträge am Anfang der SUA gefunden. Wegen diesen Umstimmigkeiten wird hier nicht weiter auf den Inhalt dieser Einträge eingegangen. Sie können außerdem problemlos übersprungen werden. | ||
| + | |||
| + | == ST-Eintrag == | ||
| + | Der ST-Eintrag terminiert die Liste der Einträge in einer SUA. Er sollte immer vorhanden sein, außer wenn nur noch 4 oder weniger Bytes im SUA verbleiben. Dieser Eintrag hat keinen speziellen Inhalt. | ||
| + | |||
| + | === PX-Eintrag === | ||
| + | Der PX-Eintrag enthält Informationen zu den Zugriffsrechten und weitere Daten. | ||
| + | {| border="1" | ||
| + | ! Offset || Größe || Beschreibung | ||
| + | |- | ||
| + | | 0x00 || 2 || Signatur | ||
| + | |- | ||
| + | | 0x02 || 1 || Größe des Eintrags | ||
| + | |- | ||
| + | | 0x03 || 1 || Version (1) | ||
| + | |- | ||
| + | | 0x04 || 8 || Mode (XE) | ||
| + | |- | ||
| + | | 0x0C || 8 || Number of Links (XE) | ||
| + | |- | ||
| + | | 0x14 || 8 || UID (XE) | ||
| + | |- | ||
| + | | 0x1C || 8 || GID (XE) | ||
| + | |- | ||
| + | | 0x24 || 8 || Serielle Nummer (XE) | ||
| + | |} | ||
| + | Diese Felder stimmen mit denen aus struct stat überein. | ||
| + | |||
| + | === PN-Eintrag === | ||
| + | |||
| + | === SL-Eintrag === | ||
| + | |||
| + | === NM-Eintrag === | ||
| + | |||
| + | === TF-Eintrag === | ||
== Links == | == Links == | ||
* [http://www.ecma-international.org/publications/standards/Ecma-119.htm Standard ECMA-119 - Volume and File Structure of CDROM for Information Interchange (2nd edition)] | * [http://www.ecma-international.org/publications/standards/Ecma-119.htm Standard ECMA-119 - Volume and File Structure of CDROM for Information Interchange (2nd edition)] | ||
| + | * [ftp://ftp.ymi.com/pub/rockridge/rrip112.ps RRIP Draft Standard 1.12] | ||
| + | * [ftp://ftp.ymi.com/pub/rockridge/susp112.ps SUSP Draft Standard 1.12] | ||
[[Kategorie:Dateisystem]] | [[Kategorie:Dateisystem]] | ||