Implementierung eines standardkonformen Dateisystems auf einer Mikrocontroller-Plattform

Status: abgeschlossen
Betreuer: Torsten Teubler
Student: Marcus Thiel

Themengebiet

Dateisysteme ermöglichen Programmen und somit dem Benutzer eine Abstrahierung von spezifischen Zugriffsmethoden auf persistente Datenträger wie z.B. Festplatten. Auf PC Systemen sind sie schon lange etabliert, auf Mikrocontrollern, die EEPROMs oder Flash Speicher als persistente Datenträger benutzen, gibt es ebenfalls verschiedene, leichtgewichtige Implementierungen. Viele dieser Implementierungen sind frei verfügbar und erste Analysen zeigen, dass die meisten sich nicht, oder nur in sehr geringer Art und Weise, an etablierte Standards für Dateisysteme orientieren. In einer früheren Abschlussarbeit in der Forschungsgruppe wurde ein Dateisystem entwickelt, das wir zur Verwendung auf unseren Sensorknoten vorgesehen haben. Ein besonderes Merkmal dieses Dateisystems ist, dass es sowohl den EEPROM und den Flash Speicher für den Benutzer transparent verwendet. Der Schwachpunkt des Dateisystems ist, dass es eine „proprietäre“ Lösung ist, die keinem etablierten Standard folgt. Die Nutzung etablierter Standards (für Dateisysteme bspw. FAT16/32, NTFS,…) hat den Vorteil, dass diese sich über eine lange Zeit bewährt haben oder intensiv diskutiert worden sind und somit deutlich weniger konzeptionelle Schwachstellen aufweisen, als proprietäre Entwicklungen. Weiterhin wäre das System portierbar, so dass man es auch auf Geräten einsetzen könnte, die Wechselmedien wie SD Flash Karten unterstützen. Solche Wechselmedien machen eigentlich nur dann Sinn, wenn man sie in einer inhomogenen Umgebung einsetzen kann. Egal welches der Geräte diesen Speicher beschrieben hat, es soll jedes andere Gerät in der Lage sein, diesen wieder korrekt auszulesen. Die Umsetzung solcher standardkonformer Dateisysteme für Mikrocontroller ist prinzipiell möglich. Das legt z.B. das Projekt "Petit FAT File System Module" (http://elm-chan.org/fsw/ff/00index_p.html) nahe. Die Motivation, Dateisysteme auch auf Sensorknoten einzusetzen, reicht von der Speicherung persistenter Daten wie Knoten-IDs, MAC-Adresse(n) oder Hardwareeinstellungen bis hin zu Log-Dateien für Datenerfassung und Post-Failure-Analyse

Details

Aus dieser Aufgabenstellung ergeben sich folgende zu bearbeitende Teilaufgaben:

  • Vorhandene Implementierungen standardkonformer Dateisysteme sollen identifiziert und die mögliche Portierbarkeit auf unsere Hardwareplattform untersucht werden.
  • Es ist mindestens ein Dateisystem zu implementieren, das die Anforderungen erfüllt.
  • Es sind alle nicht-flüchtigen Speichermedien auf den TriSOS-Knoten zu berücksichtigen.
  • Es soll ein Verfahren entwickelt werden, die es ermöglicht bisherige Daten komfortabel in das neue Dateisystem zu überführen.
  • Ausführliche Leistungsbewertung (Zugriffszeit, Speicherauslastung, Energie).
  • Vergleich der Speichermedien.
  • Eigenschaften, die das gewählte Dateisystem haben muss:
    • Standard-Konformität
    • Unterstützung von großen Dateien
    • Wachsen von Dateien im Dateisystem
    • Robustheit

Aufgaben

  • Schriftliche Ausarbeitung, die den Fokus auf Bewertungskriterien und die Evaluation legt.
  • Für die technische Dokumentation: ausführlich dokumentierter, kommentierter Quelltext in Doxygen Formatierung (in englischer Sprache).