Я обнаружил, что библиотека пользовательского пространства FUSE и интерфейс ядра были перенесены с момента их создания в Linux на многие другие системы и представляют собой относительно стабильный API с предположительно небольшой площадью поверхности. Если бы я хотел создать файловую систему в пользовательском пространстве и не был на Plan 9 или Hurd, я бы подумал, что FUSE — мой лучший выбор.
Однако я не собираюсь использовать libfuse. Это частично из-за прагматизма; использовать C сложно на моем языке (Монте). Это также потому, что я совершенно не заинтересован в написании кода поддержки C, а рекомендуемое использование libfuse несовместимо с философией Monte. Это не должно быть проблемой, так как C не является волшебным и /dev/fuse можно открыть с помощью стандартных системных вызовов.
Однако, поиграв документацию, я ничего не нашел. Я не могу найти документацию по /dev/fuse ABI/API, а также никаких историй о том, как другие идут по тому же маршруту, не связанному с C. Раздражающий.
Существует ли какая-либо документация о том, как независимо от языка взаимодействовать с /dev/fuse и подсистемой FUSE ядра? Если да, не могли бы вы указать мне на него? Спасибо!
Обновление: существует go-fuse, написанный на Go, немного более читаемом языке, чем C. Однако он не также содержать любую документацию по ABI/API.
Обновление: я заметил, что люди проголосовали за то, чтобы закрыть это. Не волнуйтесь, в этом нет необходимости. Я убедился, что документации, которую я желаю, еще не существует. Я сам напишу документацию, опубликую ее, а затем свяжусь с ней в принятом ответе. Надеюсь, следующий человек, который будет искать эту документацию, не будет разочарован.