wiki:GoogleSummerofCode09/Mvfs

Version 2 (modified by metux, 15 years ago) (diff)

--

libMVFS transition


Goals

Libmvfs is a small virtual filesystem library in userland, which allows applications to connect to lots of different filesystems, from dumb local-fs to network filesystems like 9P. Current MC uses it's own vfs layer (mcvfs), which cannot be used outside of MC and also has several open issues.

With libmvfs support, MC can directly use all filesystems provided by libmvfs and so even connect to remote services, eg. 9P-based ones.

Roadmap

1. Add core libmvfs support

Most of the work is already done in 225_mvfs branch: it adds core libmvfs support and a few mvfs-based filesystems (9P, local, ...).

2. Port missing mcvfs-filesystems to libmvfs

ATM libmvfs does not support all of mcvfs' filesystems (eg. extfs/sfs, fish, etc). These fs'es have to be ported to libmvfs. Once this is done, MC will use libmvfs for them, and internal support is dropped.

3. Pass everything to libmvfs, drop mcvfs

As at that point (when #2 is done), libmvfs will support all of mcvfs' filesystems, the whole mcvfs stuff is dropped / replaced by a tiny wrapper to libmvfs. From that point on, all filesystem access will run over libmvfs. MC itself will only pass certain config settings (eg. from extfs.ini) to libmvfs.