Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Антон Ананич
Captive – это первая полнофункциональная Open Source-реализация NTFS-драйвера. С помощью Captive вы можете монтировать Windows NT/2k/XP/2k3-разделы и записывать на них данные без опасения потерять их.
FUSE (Filesystem in USErspace) – это драйвер для Linux и FreeBSD, который позволяет непривилегированным пользователям создавать их собственные драйверы файловых систем без написания кода, выполняемого в режиме ядра.
FUSE может быть особенно полезной для разработки драйверов виртуальных файловых систем (virtual file systems, VFS). Это файловые системы, которые не сериализуют данные непосредственно, а всего лишь выступают прослойкой (abstraction layer) или оберткой (wrapper) над существующими файловыми системами или специальными устройствами.
В нашем журнале уже была статья о FUSE [1]. С тех пор проект развился и сильно возмужал.
FUSE позволяет разрабатывать драйверы файловых систем не только на языке С. Так как эти драйверы выполняются в пользовательских процессах, то они могут быть реализованы практически на любом языке программирования. Официально поддерживаются C, C++, Java, C#, Haskell, TCL, Python, Perl, Sh (UNIX shell script), Ocaml, Pliant и Ruby.
Существует несколько десятков файловых систем (на сегодня более 50) на базе FUSE. Рассказать о всех в рамках этой статьи просто невозможно. Поэтому я перечислю некоторые задачи, которые могут быть решены с помощью FUSE:
n шифрование и сжатие файлов «на лету»;
n SMB (монтирование при первом обращении, кэширование);
n FTP, SSh, WebDAV, Gmail и т. д.;
n монтирование содержимого архивов (rar, zip, tar, bzip2, gzip и т. д.);
n монтирование специфических устройств (iPod, мобильники Siemens, Apple iPhoto DPAP и т. д.);
n монтирование NTFS в режиме read&write (полноценная запись в отличие от той, что содержится в ядре по умолчанию);
n хранение файлов в реляционной БД.
FUSE работает на Linux 2.4, Linux 2.6 и FreeBSD [2]. Начиная с версии 2.6.14rc1 FUSE входит в ядро Linux. Изначально FUSE была частью проекта AFVS [3], но теперь является отдельным проектом на SourceForge [4].
Как работает FUSE?
Разработать драйвер файловой системы с использованием FUSE очень просто. В
качестве доказательства создатели FUSE приводят на своем сайте пример драйвера
файловой системы Hello world, написанный на языке С, исходный код которого
занимает меньше 100 строк. Этот исходный код доступен по адресу:
На рис. 1 показано, как происходит системный вызов (например, stat) в драйвере Hello world.
Рисунок 1. Файловая система Hello world