This GitHub repository is a KISS project that contains Python project containing a library and a CLI. The library provides Python code that communicates with FUSE to export a file system to the Linux kernel, a server to manage the global mount table in memory, and functions to communicate with that server. The CLI is a Python application that allows you to manage the mount points of the virtual file system and manipulate the global mount table.
The file system operations are inspired by https://1e.iwp9.org/cready/unfs.pdf.
Below are the main components of the project.
The mount table is a Python object that manages a hash map, where each key is a path corresponding to a mount point, and each value is a custom data structure designed to manage the mounted directories. It has a time complexity of O(1) for each required operation.
This is a server that must be started before mounting the filesystem. It is responsible for managing the global mount table in memory and handling mount and bind requests.
These export the filesystem to Linux using FUSE. While running, they communicate with the daemon to update their bound directories.
The project is not entirely finished; there are still areas for improvement to explore and tasks to complete. However, it remains functional.
If you'd like to contribute to the project, please follow the instructions provided in the CONTRIBUTING.md file.