Кроссплатформенное решение для монтирования пользовательской файловой системы - PullRequest
9 голосов
/ 10 февраля 2010

Мне нужно сделать мои данные частью файловой системы машины.

В Windows, кажется, у меня есть 3 варианта:

  1. Eldos "Callback File System" (http://www.eldos.com/cbfs/)
  2. Докан (dokan-dev.net)
  3. Pismo File Mount (http://www.pismotechnic.com/pfm/)

Из этих 3 вариантов 1 (Eldos) является наиболее привлекательным вариантом.

Но в идеале я хотел бы получить решение, поддерживающее также Linux / Unix и Mac. Другими словами, некоторый общий интерфейс для обратных вызовов, но разные реализации для разных файловых систем.

Кто-нибудь знает такое решение?

1 Ответ

9 голосов
/ 11 февраля 2010

ОБНОВЛЕНИЕ: у PFM уже есть порты Mac и Linux. Если переносимость является первостепенной задачей, то PFM - это вариант, который не предусматривает переход на разные API-интерфейсы на 3 основных настольных платформах.

Полное раскрытие, я являюсь основным разработчиком PFM в Pismo Technic Inc. ..

PFM и CBFS предоставляют функциональность, которая встроена в Linux как FUSE и свободно доступна для Mac как MacFUSE.

Я считаю, что вам лучше всего использовать собственный слой переноса, чтобы изолировать основную часть вашего кода от особенностей FUSE в Linux / Mac и спецификаций PFM или CBFS в Windows. Написав порт Linux / Mac PFM через низкоуровневую FUSE, я уверен, что различия между FUSE и PFM довольно просты в управлении. CBFS более буквально раскрывает собственную модель файловой системы Windows, и поэтому, скорее всего, повлечет за собой большее функциональное различие.

Собственная модель файловой системы Windows сильно отличается от модели файловой системы в Unix-подобных операционных системах. Эту разницу трудно себе представить разработчикам, которые в основном имели дело либо с пользовательским режимом Win32, либо с unix. Хотя технология FUSE for Windows возможна, в конце концов, возможно, потребуется так много специфических для Windows изменений, что в конечном итоге она будет примерно такой же, как при использовании PFM или CBFS в Windows.

...