IMMD Hauptseite Zurück Nach oben Weiter Hilfe Rie - 14. Jan. 1997

AKBP-II 1997: Gruppe 2


Audio-CD-Filesystem

Ulrich Becker, Roland Wagner

Aufgabe

Aufgabe war die Implementierung eines ladbaren Filesystem-Moduls für Audio-CDs unter SunOS-5.5.1. Die einzelnen Audio-Tracks der CD sind dabei direkt als Files zugreifbar, so dass es z.B. möglich ist, Stücke von der CD ohne vorheriges Kopieren mit dem play-Kommando abzuspielen.

Probleme

Das Format für Audio-Tracks sieht zwar eine Unterteilung in logische Blöcke vor, eine genaue Positionierung auf eine absolute Position innerhalb Audio-Tracks ist jedoch nicht möglich: Bei zwei Zugriffen auf den gleichen logischen Block kann die absolute Position der gelesenen Daten um mehrere hundert Bytes variieren. Bei kontinuierlichem Lesen werden die relativen Blockgrenzen zwar in der Regel genau eingehalten. Wenn das kontinuierliche Lesen jedoch unterbrochen werden muss, so kann beim Wiederaufsetzen eine Lücke oder eine Überschneidung der gelesenen Daten entstehen, die als Knackser hörbar ist. Ein Wiederaufsetzen kann z.B. nötig werden, wenn verschiedene Prozesse auf die gleiche CD zugreifen oder wenn das CD-Laufwerk die Daten schneller liefert, als diese verarbeitet werden können. Das Filesystem muss gewährleisten, dass Überschneidungen oder Lücken erkannt und korrigiert werden.

Beschreibung des Moduls

Das Mounten einer Audio-CD erfolgt mit dem Unix-Kommando mount:

mount -F akbpfs [-o c=x,s=y] device mount-point

Als device wird das raw-device für das CD-ROM-Laufwerk angegeben. Mit der Option c kann die Zahl der logischen Bloecke angegeben werden, die im Kern gepuffert werden sollen. Als Default werden 64 Bloecke gepuffert.

Implementierung

Um fehlerfreies sequentielles Lesen auch dann zu ermöglichen, wenn zwischendurch neu aufgesetzt werden muss, wurde folgende Lösung gewählt:

Bei jedem Zugriff auf die CD werden gleich mehrere Blöcke gelesen, wobei sequentielle Zugriffe sich jeweils um einen Block überlappen. Auf diese Weise ist es möglich, durch einen Vergleich des überlappenden Blocks den Positionierungsfehler zu ermitteln und so zu korrigieren.

Erweiterungen

Anwendung des Filesystems

Features

Über die Basisanforderungen hinaus bietet das implementierte Filesystem folgende Möglichkeiten:

Mögliche Erweiterungen


Unser Server | Brief an Webmaster | Navigationshinweise | Suche