Блок задач

5. Проекты

Темы
Сложность 8

Проект «InFileFS - Файловая система в файле»

Файловая система определяет способ организации данных на физическом носителе. Необходимо реализовать простую файловую систему (например ext2/FAT/ISO9660/какойтосвойноадекватныйформатFS/...), для которой роль физического носителя будет имитировать обычный файл в ОС.

I. Файловая система должна поддерживать:

  • именнованые каталоги и файлы;
  • метаинформацию для файлов и каталогов (дата создания, дата модификации и т.д.);
  • API (программный интерфейс для работы с файлами и каталогами), реализованный в виде библиотеки;
  • статический или динамический (более сложный варинт) размер файла в файловой системе ОС.

II. С использованием библиотеки доступа к файловой системе реализовать утилиту, позволяющую производить операции с файловой системой.

Например:

вывод содержимого корневого каталога:

$ infilefs ls /

вывод расширенного (с метаинформацией ) содержимого каталога /foo:

$ infilefs ls -l /foo

скопировать файл в предалах файловой системы:

$ infilefs cp /foo/bar /foo/bar2

скопировать файл из файловой системы OC в InFileFS:

$ infilefs cpin myfile /foo/myfile

обратная операция:

$ infilefs cpout /foo/myfile myfile

удаление файла:

$ infilefs rm /foo/myfile

вывод информации о свободном месте в файловой системе:

$ infilefs df

создать файловую систему в файле с именем infile.fs и размеров в 10 Мб (размер указывается в случае статического размера файловой системы):

$ infilefs create infile.fs 10