IMMD Hauptseite Zurück Nach oben Weiter Hilfe BS - 13. März 1998

AKBP-II 1998: Gruppe 5


Audio-CD-Filesystem

Lars Hemmann, Andras Fabian

 

Aufgabe

Aufgabe war die Implementierung eines ladbaren Filesystem-Moduls fuer Audio-CDs unter SunOS-5.6. Die einzelnen Audio-Tracks der CD sind dabei direkt als Files zugreifbar, so dass es z.B. moeglich ist, Stuecke von der CD ohne vorheriges Kopieren mit dem play-Kommando abzuspielen.  Das Format der Files sollte dabei AU sein.

Probleme

Das parallele Abspielen und Lesen von Tracks ist nicht ohne Unterbrechungen im Abspielen moeglich.  Das Problem ist hier die lange Seekzeit des CD-ROM Laufwerks.  Dies konnte auch durch die Verwendung von einem Cache nicht geloest werden. Ausserdem muessen verschiedene gleichzeitige Zugriffe serialisiert werden (gleiche V-Node und verschieden Modi des CD-ROM Laufwerks)..

Beschreibung des Moduls

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

mount -F acdfs [-o p=ugoa,b=y] device mount-point

Als device wird das raw-device fuer das CD-ROM-Laufwerk angegeben. Mit der Option b kann die Zahl der logischen Bloecke angegeben werden, die im Kern gepuffert werden sollen. Als Default werden 64 Bloecke gepuffert.  Mit der Option p kann der Zugriff auf user (u), group (g), others (o) und all (a) beschraenkt werden.

Implementierung

Aufteilung in drei Module:

Als Dateinamen wird trackXX (XX ist die Tracknummer) verwendet. Je nach Typ (Audio oder Daten) wird die Endung .au bzw. .data angehaengt.
Audiotracks werden gecachet (Groesse bei mount einstellbar) und es werden, wegen unterschiedlicher Byteorder, die Bytes vertauscht. Ausserdem wird ein AU Header vor die eigentlichen Audiodaten gehaengt. Im Gegensatz dazu werden Datentracks nicht gecachet und eine Aenderung der Byteorder ist nicht noetig.
Wegen unterschiedlichem Modus des CD-ROM Laufwerks fuer Daten und Audio wird der eigentliche Lesezugriff durch Mutex geschuetzt. Ausserdem wird, wenn erforderlich, der entsprechende Modus aktiviert.
Damit auch ein gleichzeitiges Lesen des selben Tracks durch mehrere Prozesse moeglich ist, ist auch der Cache (V-Node spezifischer Cache) durch Mutex geschuetzt.
Die SCSI Operationen sind fuer TOSHIBA Laufwerke ausgelegt.


Unser Server | Brief an Webmaster | Navigationshinweise | Suche