Aufgabe 2: Dateisystem
Lernziel
- Verständnis der Funktionsweise von Dateisystemen
Aufgabenbeschreibung
Ziel der zweiten Aufgabe ist es, den bisher implementierten Client um ein Dateisystem und die zur Verwendung dieses Dateisystems notwendigen Kommandos zu erweitern. Die Funktionalität des Dateisystems soll mit Hilfe eines in der Vorgabe enthaltenen Images, das als Basis für das Testdateisystem verwendet wird, nachgewiesen werden.
Nach dem Hinzufügen des Dateisystems soll der Kommandointerpreter
die Kommandos pwd(1)
, ls(1)
, less(1)
,
rm(1)
, cd
, mkdir(1)
und
rmdir(1)
unterstützen und so die Sequenz folgender Aufrufe
ermöglichen.
client> pwd
client> ls
client> less testfile
client> mkdir test
client> cd test
client> cd ..
client> rmdir test
client> rm testfile
client> ls
Implementierungshinweise
Die Aufgabe kann in zwei Teilaufgaben, die eine einfache Bearbeitung der Aufgabe ermöglichen, untergliedert werden.
- Teil A
-
Zuerst solltet ihr euer Dateisystem implementieren und mit dem in der
Vorgabe enthaltenen Testimage testen. Nähere Informationen zu dem
von euch zu implementierenden Dateisystem (EXT2) erhaltet ihr
in der Übung und unter den Links in der Hilfestellung.
Hinweis: Zum Testen eures implementierten Dateisystems könnt ihr das in der Vorgabe enthaltene Testprogramm verwenden. Um dieses Programm zu erzeugen, müsst ihrmake
nur mit dem Parametertestfs
aufrufen. - Teil B
-
Anschließend könnt ihr die in der letzten Aufgabe implementierten
Kommandos im Client anpassen, so dass sie die Funktionalität des von euch
umgesetzten Dateisystems verwenden.
Hinweis: Um die Tests des Dateisystems zu vereinfachen, verwenden wir als Delimiter zwischen der Verzeichnis- und Dateinamen einen Slash'/'
.
Weitere Infos:pwd(1)
,ls(1)
,mkdir(1)
,rmdir(1),
cp(1)
,less(1)
undmv(1)
Vorgabe
Wie zu den bisherigen Aufgaben erhaltet ihr wieder eine Vorgabe,
die aus den bisherigen Vorgaben und den für die Aufgabe relevanten Klassen besteht.
Zusätzlich könnt ihr die folgende Doxygen-Konfigurationsdatei
verwenden, um eine Dokumentation des Quelltextes zu erstellen. Dazu müsst ihr die Konfigurationstatie ins Vorgabenverzeichniss
kopieren, im Makefile bs2.cfg
in aosi.cfg
umbenennen und ein Verzeichniss doc
anlegen.