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:
- Konfigurierung der Puffergrösse: Die Grösse der Puffer,
die pro Audio-Track verwendet wird, kann als spezielle
Mountoption c angegeben werden: z.B. -o c=128 für 128
CD-Audio-Blöcke.
- Konfigurierung der Lesegeschwindigkeit: Die
laufwerksabhängige Lesegeschwindigkeit kann mit der
Mountoption s eingestellt werden: s=1 entspricht single
speed, s=2 entspricht double speed, s=3 entspricht
quattro-speed, usw.
- Unterstützung des Sun-Audiofile-Formats: Durch Anhängen
von ".au" an den Filenamen kann die Datei im
SUN-Audio-Format gelesen werden.
- Erkennung verschiedener CD-ROM-Laufwerkstypen: Die
gängigen Laufwerkstypen (Toshiba, Plextor) werden
automatisch erkannt und unterstützt.
Mögliche Erweiterungen
- Unterstützung von NFS:
- Verbesserung der Pufferverwaltung:
Unser Server |
Brief an Webmaster |
Navigationshinweise |
Suche