user1779715
user1779715

Reputation:

How to create a "fake filesystem" that forwards system calls to my program?

I would like to write a tool that can be used to mount archives such as tar, tgz, zip, 7z, etc. to some directory for as long as it's running, such that I can then open it with whatever file manager I want.

To do this, I would somehow need to make a fake filesystem that forwards system calls such as opening and reading files to my program. How would I did this? Would I have to make my own filesystem driver, or does a library for this already exist?

Upvotes: 2

Views: 2413

Answers (3)

pointtonull
pointtonull

Reputation: 9

Your question is very general. I will assume you want to write your program using Python because it is what I would do.

Chosen the language, now we need to look for examples of somebody doing something similar. Github would do the trick:

N.B. Wikifs is least than experimental, but the script is short and servers perfectly as example.

For python the most popular library is fuse-python.

Happy hacking

Upvotes: 0

mit
mit

Reputation: 11251

You want to write a FUSE filesystem. It is explained in this article and there is an example in python: https://thepythoncorner.com/dev/writing-a-fuse-filesystem-in-python/

No need to call this "fake filesystem", because for linux everything can be a file, so you write just a "filesystem".

Upvotes: 0

Matthias Winkelmann
Matthias Winkelmann

Reputation: 16384

FUSE is what you're looking for, in principle. One implementation of the archive-mounting you're looking for is/was archive mount, but I am unsure how well it is maintained.

Upvotes: 1

Related Questions