Skip to main content.

Navigation:

Aufgabe 2: Dateisystem

Lernziel

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 ihr make nur mit dem Parameter testfs 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) und mv(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.

Hilfestellung