КС:2015:Проект:fuse-p7zip

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

Метаданные

ID проекта: 7zfs

Презентация проекта: http://1drv.ms/1VmeBQ0

Что это за проект

Введение

7Zip - это современный формат архивного файла, который поддерживает Unicode имена файлов и различные алгоритмы сжатия. Формат является открытым, как и исходные тексты архиватора.

FUSE - механизм, позволяющий легко реализовать виртуальную файловую систему в Linux, реализуя обработчик в адресном пространстве пользователя, а не ядра. Это позволяет, при создании файловой системы, пользоваться как стандартной Си-библиотекой, которая недоступна при создании модуля ядра, так и произвольными инструментами для реализации файловой системы (Си++, Python и т.д.).

Что требуется

Реализовать виртуальную файловую систему, которая работает с содержимым 7z-архива.


Чему вы научитесь

1. Уметь разбираться в чужом коде

2. Понимать устройство файловых систем

3. Уметь создавать произвольные виртуальные файловые системы


Начальные требования

1. Владение техническим английским языком. Вся документация доступна только на английском языке

2. Умение разрабатывать программы на Cи и C++


Критерии оценивания

Требования на зачет в конце 1-го модуля

Необходимо иметь инструмент для монтирования файловой системы, в которой будет отображаться содержимое (список файлов) архива.


Итоговая оценка

  • 4 балла. Реализована файловая система с отображением списка файлов и иерархической навигацией по содержимому архива
  • 6 балла. Реализована возможность чтения файлов
  • 8 баллов. Реализована возможность записи файлов
  • +1 балл. Реализована поддержка архивов с паролем
  • +1 балл. Корректно обрабатываются Unicode-имена
  • +1 балл. Реализована поддержка других форматов, которые поддерживаются p7zip
  • +2 балла. В процессе реализации не было внесено никаких изменений в файлы используемых сторонних компонент