Что делает Fuse, когда вы помещаете файл в папку в этой виртуальной файловой системе? - PullRequest
0 голосов
/ 22 апреля 2020

Я занимаюсь разработкой виртуальной файловой системы и не совсем понимаю, что делает MacOS, когда вы помещаете файл в эту конкретную VFS. Я использую fuse-native для выполнения этой конкретной задачи.

Сейчас я предпочитаю немного объяснить мою реализацию.

Как вы, возможно, знаете, в реализации FUSE вы перезаписываете вызовы sys (open, read, write и др. c). ) и придумайте свою реализацию для них. У меня есть папка с объектами в виде разных файлов, и я создал VFS для сортировки их по типу, по версии и т. Д. c.

Теперь мне нужно иметь это как следующую функцию, чтобы отбросить файл в VFS, и этот файл будет сохранен в папке, о которой я говорил. Это означает, что функция fuseWrite будет записывать в файл tmp в этой папке, а функция fuseRealease должна преобразовывать файл в формат объектного файла.

По некоторым причинам для файлов размером более 8 МБ в MacOS используется другой поток вызовов sys, и я не могу просто иметь разную реализацию для разных потоков, поскольку это приведет к большей несогласованности.

Может кто-нибудь объяснить мне, что на самом деле MacOS ДЕЛАЕТ , когда вы удаляете файл (с расширенными атрибутами, поддерживаемыми в VFS). Как я могу найти трассировку стека всех вызовов sys, связанных с этим конкретным действием? Есть ли какая-либо документация, которой я могу следовать? Я просто устал от проб и ошибок: (.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...