Linux - монтирование файловой системы пространства пользователя (имитирующей одну :-)) в качестве файловой системы - PullRequest
1 голос
/ 02 июля 2010

У меня есть фрагмент кода на C, который с помощью куска памяти (статический массив) может имитировать файловые операции (API-интерфейсы похожи на fopen / fclose и т. Д.).Итак, любой код, скомпилированный с этой имитирующей FileSystem, может использовать эти API в качестве FileSystem для всех своих потребностей:)

Но мне было интересно, возможно ли каким-либо образом зарегистрировать эти API в системе Linux / смонтировать этот файлсистемы и, следовательно, позволяя любому клиенту использовать эту FS с помощью обычных вызовов FileSystem (без необходимости статически связывать ее с My_FileSystem).

При поиске решения я натолкнулся на идею сделать my_FileSystem какводитель!!!=> Можно ли скомпилировать мой код в качестве драйвера устройства (с частью памяти в драйвере) и смонтировать эту File_system @ скажем "/mnt/MyFs", и переадресовывать вызовы FileSystem, как это делают драйверы USB?(Если это можно сделать, объясните, пожалуйста, как это делается, или укажите, где я могу прочитать об этом.)

Я не хочу добавлять их как новые системные вызовы и перекомпилировать ядро ​​(ИЭто затрудняет жизнь людей, желающих использовать это.)

Это в основном для встраиваемых систем под управлением Linux ... Но приветствуются и другие предложения.:)

Спасибо,

MicroKernel:)

Ответы [ 3 ]

6 голосов
/ 02 июля 2010

Посмотрите на FUSE (Файловая система в Userspace), особенно на примерах.Это довольно просто ...

1 голос
/ 03 июля 2010

Взгляните на tmpfs и ramfs .Они уже поставляются с Linux и делают все, что вы пытаетесь сделать, и даже больше.Я не думаю, что любой из них будет слишком дорогим для встроенной системы.

0 голосов
/ 03 июля 2010

Я бы рассмотрел PlasticFS , но это будет работать надежно только в том случае, если все используют библиотеку системы C (т.е. нет статически связанных двоичных файлов).

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