/[fuse_dbi]/fuse/trunk/python/README
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /fuse/trunk/python/README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5 - (hide annotations)
Wed Aug 4 11:40:49 2004 UTC (19 years, 10 months ago) by dpavlin
File size: 3500 byte(s)
copy CVS to trunk

1 dpavlin 4 #@+leo-ver=4
2     #@+node:@file README
3     #@@language
4    
5     Refer to the INSTALL file for build/install instructions
6    
7     General Information
8     ===================
9    
10     This is a Python[1] interface to FUSE[2].
11    
12     FUSE (Filesystem in USErspace) is a simple interface for userspace
13     programs to export a virtual filesystem to the linux kernel. FUSE
14     also aims to provide a secure method for non privileged users to
15     create and mount their own filesystem implementations.
16    
17     When run from the commandline, "fuse.py" simply reexports the root
18     filesystem within the mount point as example/fusexmp does in the main
19     FUSE distribution. It also offers a class, fuse.Fuse, which can be
20     subclassed to create a filesystem. fuse.Xmp is the example filesystem
21     implementation.
22    
23     In your subclass of fuse, add attributes with the expected names
24     ("getattr", "readlink", etc) and call signatures (refer to fuse.Xmp)
25     then call main(). Make it runnable as a #! script, and mount with
26     fusermount <mount point> <script name>
27     for some reason,
28     fusermount <mount point> python <script name>
29     does not seem to work. (why?)
30    
31     Update
32     ======
33    
34     Updated 13-Dec-2003 by David McNab <david@rebirthing.co.nz>
35    
36     - changed Makefile to use Pyton distutils
37     - added setup.py for distutils
38    
39     - added 'code.leo' file for convenience of those who use the Leo
40     code editor (leo.sf.net)
41    
42     - added support for 'statfs' and 'fsync' methods (refer xmp.py)
43    
44     Updated Dec 2003 by David McNab <david@rebirthing.co.nz>:
45    
46     - added support for 'release' events (ie when file gets closed)
47     - added __init__ to base class, which picks off parameters and
48     stores them as instance attributes:
49     - self.mountpoint - the mountpoint as given in the mount command
50     - self.optlist - unnamed options (eg 'rw', 'exec' etc)
51     - self.optdict - named options (eg, '-o arg1=val1,arg2=val2...' from mount cmd)
52     - fixed incompatibility issues with recent pythons (original was broken
53     under python2.3)
54    
55     Limitations
56     ===========
57    
58     This is minimally tested, though I think I have exercised each function.
59     There's no documentation, docstrings, or tests.
60    
61     Python's lstat() does not return some fields which must be filled in
62     (st_blksize, st_blocks, st_ino), and _fusemodule assumes that the return
63     value from the lstat() method is identical to Python's lstat(). This
64     limitation should be lifted, and some standard order chosen for these
65     three values. For now, though, default values are chosen and du returns a
66     number similar to the "real" one.
67    
68     The Python Global Interpreter Lock is not handled, so using
69     fuse.MULTITHREAD will not work. Modifying the PROLOGUE and EPILOGUE
70     functions may take care of this. For now, just run without
71     fuse.MULTITHREAD in flags.
72    
73     Author
74     ======
75    
76     I'm Jeff Epler <jepler@unpythonic.dhs.org>. I've been dabbling in
77     Python for nearly 7 years now, and interested (despite the lack of a
78     real practical use) in userspace filesystems ever since I couldn't get
79     userfs to compile way back in '93 or so. FUSE is cool, but i'm still
80     not sure what it's good for in practical terms.
81    
82     I don't know how high a level of interest I'll maintain in this project,
83     so if you want to do something with it feel free to do so. Like FUSE,
84     this software is distributed under the terms of the GNU General Public
85     License, Version 2. Future versions, if any, will be available at [3].
86    
87    
88     [1] http://www.python.org
89     [2] http://sourceforge.net/projects/avf/
90     [3] http://unpythonic.dhs.org/~jepler/fuse/
91     #@-node:@file README
92     #@-leo

  ViewVC Help
Powered by ViewVC 1.1.26