diff options
author | 2001-12-21 09:28:33 +0000 | |
---|---|---|
committer | 2001-12-21 09:28:33 +0000 | |
commit | ba8ec88e0e194f2dc5928b043ee8a5a2d338afe9 (patch) | |
tree | deb10f6a9324f035e050c41d8778afdb6301b309 /python | |
parent | fe25def3344095825738deba119e1400b8e2315f (diff) |
minor fixes
Diffstat (limited to 'python')
-rw-r--r-- | python/README | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/python/README b/python/README new file mode 100644 index 0000000..451c56c --- /dev/null +++ b/python/README @@ -0,0 +1,60 @@ +General Information +=================== + +This is a Python[1] interface to FUSE[2]. + +FUSE (Filesystem in USErspace) is a simple interface for userspace +programs to export a virtual filesystem to the linux kernel. FUSE +also aims to provide a secure method for non privileged users to +create and mount their own filesystem implementations. + +When run from the commandline, "fuse.py" simply reexports the root +filesystem within the mount point as example/fusexmp does in the main +FUSE distribution. It also offers a class, fuse.Fuse, which can be +subclassed to create a filesystem. fuse.Xmp is the example filesystem +implementation. + +In your subclass of fuse, add attributes with the expected names +("getattr", "readlink", etc) and call signatures (refer to fuse.Xmp) +then call main(). Make it runnable as a #! script, and mount with + fusermount <mount point> <script name> +for some reason, + fusermount <mount point> python <script name> +does not seem to work. (why?) + +Limitations +=========== + +This is minimally tested, though I think I have exercised each function. +There's no documentation, docstrings, or tests. + +Python's lstat() does not return some fields which must be filled in +(st_blksize, st_blocks, st_ino), and _fusemodule assumes that the return +value from the lstat() method is identical to Python's lstat(). This +limitation should be lifted, and some standard order chosen for these +three values. For now, though, default values are chosen and du returns a +number similar to the "real" one. + +The Python Global Interpreter Lock is not handled, so using +fuse.MULTITHREAD will not work. Modifying the PROLOGUE and EPILOGUE +functions may take care of this. For now, just run without +fuse.MULTITHREAD in flags. + +Author +====== + +I'm Jeff Epler <jepler@unpythonic.dhs.org>. I've been dabbling in +Python for nearly 7 years now, and interested (despite the lack of a +real practical use) in userspace filesystems ever since I couldn't get +userfs to compile way back in '93 or so. FUSE is cool, but i'm still +not sure what it's good for in practical terms. + +I don't know how high a level of interest I'll maintain in this project, +so if you want to do something with it feel free to do so. Like FUSE, +this software is distributed under the terms of the GNU General Public +License, Version 2. Future versions, if any, will be available at [3]. + + +[1] http://www.python.org +[2] http://sourceforge.net/projects/avf/ +[3] http://unpythonic.dhs.org/~jepler/fuse/ |