Once upon a time, there was project called podfuk. It used nfs, and nfs sucks. On one sunny night, its author had nothing better to do, and he started creating fake cache manager for coda. It worked in two days, and it worked pretty good. At least, ugly nfs was gone.
Podfuk wants to replace userfs. Reasons for podfuk are about the same as for userfs (filesystems in userland are easier to debug, and you can have completely new filesystems (tar) that would bloat kernel too much). Podfuk has advantages over userfs: it does not require kernel patch (coda is present in 2.2.X kernels) and it avoids C++.
If your read uppercase letters in title, you'll get meaningful Czech word 'podfuk', which means something like 'fiddle'.
Perhaps you'll like some demo?
pavel@Elf:/$ cd "/tmp/unarj241a.tar.gz#utar/unarj241a"/ pavel@Elf:/tmp/unarj241a.tar.gz#utar/unarj241a$ ls Makefile os2unarj.mak tccunarj.mak unarj.doc Makefile.orig patch241a technote.doc unarj.exe decode.c qclunarj.mak unarj.c unarj.h environ.c readme.doc unarj.def unarj.h.orig pavel@Elf:/tmp/unarj241a.tar.gz#utar/unarj241a$ cd /tmp pavel@Elf:/tmp$ head mc.diff.gz#ugz --- /dev/null Sun Jun 2 15:30:20 1996 +++ mmc/vfs/shared.c Mon Mar 30 23:41:55 1998 @@ -0,0 +1,267 @@ +/* ...
It looks nice, doesn't it?
OK, you want Linux to behave as above. What options do you have?
Midnight commander now contains nice library called libvfs.so, which can be used in other programs (LGPL). Nothing is easier than creating venus-like beast, which use mc_stat calls instead of stat etc. Then you mount coda filesystem on /overlay, and your virtual files are immediately available. (You'll need mc-4.5.30 when it is available, older versions do not build libvfs.so - due to file callback.h missing - download it here.)
This is usable, but not really convient to use: If you stay in /overlay all the time, it is slow; if you don't, you have to switch manually. To avoid this inconvience, hack to Linux 2.2.X kernel was created, which does necessary magic. [All accesses to non-existent file with '#' in name are redirected into /overlay file-system.] Corrected diff against 2.2.X is available here, patch against 2.3.99-pre3 is here (it does not work against -pre5 :-().
Note that this hack is not required and if you are happy with manually-prepending /overlay every time you want to access virtual file, no kernel hack is required.
These are old versions using nfs.
Podfuk code is 500 lines currently. Not bad, is it? (Well, I'm not including midnight commander, which you are going to need ;-). Download it. It should even include read/write support. Wow. You'll probably need to compile your own midnight; do not pass any options to configure and be sure to use latest development version.
Podfuk was successfully ported to Solaris. I guess that means that it could work on other systems supporting coda as well.
Corel is doing their own development. They have nice tools like monitor, and nicely installable .deb package. Look here.