From: Miklos Szeredi Date: Tue, 27 Sep 2005 15:42:22 +0000 (+0000) Subject: synchronized FAQ and Filesystems with Wiki X-Git-Tag: fuse_2_4_0~11 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=4cecc259adb642b3f24130ac0fc9f1f394eb139d;p=qemu-gpiodev%2Flibfuse.git synchronized FAQ and Filesystems with Wiki --- diff --git a/FAQ b/FAQ index 826bbf4..758ff25 100644 --- a/FAQ +++ b/FAQ @@ -1,223 +1,170 @@ -Here are some good questions and answers in no particular order. +This was generated on 2005/09/27 from ---------------------------------------------------------------------------- -Subject: FUSE vs. LUFS + http://fuse.sourceforge.net/wiki/index.php/FAQ +For an up to date version please see the above page. You can also add +new entries there. -> Can you explain me what are the differences between this two modules -> and why did you start a new project? +General +======= -Well looking at the release dates on SF, the first release of FUSE is -almost a year older than that of LUFS. But we probably weren't awere -of each others project for quite some time. +How can I umount a filesystem +----------------------------- + +Filesystems mounted without sysadmin privileges can be umounted with +the command + + fusermount -u mountpoint + +What's the difference between FUSE and LUFS? +-------------------------------------------- The main difference between them is that in LUFS the filesystem is a shared object (.so) which is loaded by lufsmount, and in FUSE the filesystem is a separate executable, which uses the fuse library. The -actual API is very similar, and I've written a translator, that can -load LUFS modules and run them using the FUSE kernel module (see the -lufis package on the FUSE page). +actual API is very similar, and there's a translator, that can load +LUFS modules and run them using the FUSE kernel module (see the lufis +package on the FUSE page). Another difference is that LUFS does some caching of directories and file attributes. FUSE does not do this, so it provides a 'thinner' interface. ---------------------------------------------------------------------------- -Subject: close() not in struct fuse_operations - - -> Is there a reason for 'close' not being one of the -> fuse_operations? I'd need to know when files are -> closed... - -It's not easy. Consider mmap(): if you have a memory file, even after -closing it, you can read or write the file through memory. - -Despite this there are close()-like operations: flush and release. -Flush gets called on each close() and release gets called when there -are no more uses of a file, including memory mappings. - ---------------------------------------------------------------------------- -Subject: overlapping open/release states - - -> I'm using a fairly current CVS version of Fuse, and have noticed -> overlapping open / release calls for a file. In other words a file -> is opened multiple times and receives multiple release calls. Is -> this expected? - -It has always been like this. The open / release calls correspond to -actual file opens / releases. The release is called when there are no -more refernces to the file, i.e. on the last close() or munmap(). - -> This isn't what I expected. Do I need to keep track of how many -> open() calls were made to a file and expect that many release() calls? +By now LUFS development seems to have completely ceased. -Yes. You can also keep track of the number of files opened for -writing for example, and use that information for finally flushing -dirty data of a file. +Why is it called FUSE? There's a ZX Spectrum emulator called Fuse too. +---------------------------------------------------------------------- -> So it appears that there may even be additional file operations after -> one or more of the release calls.. +At the time of christening it, the author of FUSE (the filesystem) +hadn't heard of Fuse (the Speccy emulator). Which is ironic, since he +knew Philip Kendall, the author of that other Fuse from earlier times. +Btw. the author of FUSE (the filesystem) also created a Speccy +emulator called Spectemu. -That is expected also. It would be a bug if there were reads/writes -after the last release, or if the number of releases didn't match the -number of opens. +The name wanted to be a clever acronym for "Filesystem in USErspace", +but it turned out to be an unfortunate choice. The author has since +vowed never to name a project after a common term, not even anything +found more than a handful of times on Google. -> I've solved this in my code by counting the number of open / release -> calls and only dropping information when the last expected release -> is received. But I thought I'd point this out in case, as it was -> unexpected behavior.. +API +=== ---------------------------------------------------------------------------- -Subject: return value from release() +Which method is called on the close() system call? +-------------------------------------------------- +flush() and possibly release(). For details see the documentation of +these methods in -> Hmm. So it doesn't matter what I return from my release function? I -> understand there is not an exact 1:1 relationship between close() and -> release, but I had hoped that a error return from release would be -> carried up as an error return from close(). +Wouldn't it be simpler if there were a single close() method? +------------------------------------------------------------- -In release() the error value is ignored, and not every close will -cause a release. Consider this: +No, because the relationship between the close() system call and the +release of the file (the opposite of open) is not as simple as people +tend to imagine. UNIX allows open files to acquire multiple +references - - process opens a file - - process forks - - parent closes the file - - child closes the file + * after fork() two processes refer to the same open file -The file will only be released on the second close, i.e. when all -references to the file are closed. Also memory mapping a file creates -a reference to the file, that is released when the memory is unmapped. + * dup() and dup2() make another file descriptor refer to the same + file -There is a flush() operation that is called on every close(), through -which the filesystem can return an error. + * mmap() makes a memory mapping refer to an open file -Note: there can be read/write operations even after the last flush() -but before a release(). +This means, that for a single open() system call, there could be more +than one close() and possibly munmap() calls until the open file is +finally released. ---------------------------------------------------------------------------- -Subject: FUSE lacks ioctl support +Can I return an error from release()? +------------------------------------- +No, it's not possible. -> I'll try to add ioctl support to FUSE, but I am quite new to it, so I -> would apreciate any suggestions. +If you need to return errors on close, you must do that from flush(). -It's not clear to me how would you use ioctls since they are -meaningless on normal files, and on device files the filesystem -implementation usually does not care about the ioctl operations. And -even if you manage to hack fuse to intercept device ioctls, you -wouldn't be able to do anything with them, because they contain -arbitrarily structured data (not length/value as in the case of read -or write). +How do I know which is the last flush() before release()? +--------------------------------------------------------- -[...] +You can't. All flush() calls should be treated equally. Anyway it +wouldn't be worth optimizing away non-final flushes, since it's fairly +rare to have multiple write-flush sequences on an open file. -Using getxattr() and setxattr() is much cleaner than ioctl(), and is -actually supported in fuse-2.0. +Why doesn't FUSE forward ioctl() calls to the filesystem? +--------------------------------------------------------- ---------------------------------------------------------------------------- -Subject: Short reads +Because it's not possible: data passed to ioctl() doesn't have a well +defined length and structure like read() and write(). Consider using +getxattr() and setxattr() instead. +Is there a way to know the uid, gid or pid of the process performing +-------------------------------------------------------------------- +the operation? +-------------- -> Now for the problem case: I cat the 256k file, the kernel issues a -> read with length 65536 and offset 0. My program returns only 10 -> bytes. What I expected to see was the kernel to then issue a read for -> length 65536 and offset 10. Instead what I saw in the result was the -> 10 bytes I returned, followed by 65526 zero bytes. -> -> Is this the intended behavior? +Yes: fuse_get_context()->uid, etc. -Yes. You can easily program around it with a for-loop in your read -function. +Problems +======== -> Does this simplify things significantly? If it isn't much of a -> difference, I'd like to suggest doing it the other way: many people -> (like me) implement their fuse read function in terms of read(), and -> read() can return early. +Why are some bytes zeroed when reading a file? +---------------------------------------------- -No. Read from a pipe/socket can be short, but read from a file can't. +This happens if the filesystem returns a short count from the read() +method. If the file wasn't opened in direct I/O mode, the read() +method must return exactly the requested number of bytes, unless it's +the end of the file. ---------------------------------------------------------------------------- -Subject: protocol error +If the file was opened in direct I/O mode (with direct_io mount +option, or by setting the direct_io field of fuse_file_info at open) +the read can return a smaller value than requested. In this case the +end of file can be signalled by returning zero. -> I'm having trouble with file writing. I can -> 'echo something > file' to a file, but -> 'cp file something' or 'cat something > file' -> gives a protocol error. +Why doesn't find work on my filesystem? +--------------------------------------- -Two possible reasons for this are: +The st_nlink member must be set correctly for directories to make find +work. If it's not set correctly the -noleaf option of find can be +used to make it ignore the hard link count (see man find). -1) A mismatch between the library version and the kernel module -version. - -2) The write() operation returns less than the 'size' parameter. -Short writes are generally not allowed (as in case of read()). The -exception is if the 'direct_io' mount option is used. - ---------------------------------------------------------------------------- -Subject: FUSE naming - - -> There are a million other projects with the same name. Why did you -> call it 'FUSE'? - -Because I'm an imbecile. The lesson is that a common term is not a -good project name. A somewhat strange story comes to my mind: I was -contacted by Philip Kendall shortly after releasing FUSE, blaming me -for choosing the same name as his ZX Spectrum emulator (Fuse). We -have known each other from earlier times, since I have also written a -ZX Spectrum emulator (Spectemu). - ---------------------------------------------------------------------------- -Subject: Uid/gid/pid - - -> Is there any easy way to know the uid of a reader? For example, let's -> say I wanted to create a file that contained 'foo' for uid 1, but -> 'bar' for uid 2. - -Yes: - -fuse_get_context()->uid +The correct value of st_nlink for directories is NSUB + 2. Where NSUB +is the number of subdirectories. NOTE: regular-file/symlink/etc +entries do not count into NSUB, only directories. +If calculating NSUB is hard, the filesystem can set st_nlink of +directories to 1, and find will still work. This is not documented +behavior of find, and it's not clear whether this is intended or just +by accident. But for example the NTFS filesysem relies on this, so +it's unlikely that this "feature" will go away. ---------------------------------------------------------------------------- -Subject: 'find' command +What is the reason for IO errors? +--------------------------------- +The kernel part of FUSE returns the EIO error value, whenever the +userspace filesystem sends a "bad" reply. Sometimes these are +unavoidable, and not necessarily a fault of the filesystem. Possible +causes of this are (non-exhaustive) -> I'm having trouble getting the find command to search through fuse -> directories. What settings do I need in 'getattr'? + * the filesystem returned a short count on write() -The 'st_nlink' member must be set correctly for directories to make -'find' work. If it's not set correctly the '-noleaf' option of find -can be used to make it ignore the hard link count (see 'man find'). + * the type of the file has changed (e.g. a directory suddenly + became a symlink) -The correct value of 'st_nlink' for directories is NSUB + 2. Where -NSUB is the number of subdirectories. NOTE: regular-file/symlink/etc -entries _do not_ count into NSUB, only directories. + * a directory entry contained a filename that was too long (no, + ENAMETOOLONG is not the right error here) -If calculating NSUB is hard, the filesystem can set st_nlink to 1 for -directories, and find will still work. This is not documented -behavior of find, and it's not clear whether this is intended or just -by accident. The NTFS filesysem uses this for example, so it's -unlikely that this find "feature" will go away. + * the same node ID value was used for two different directories + (i.e. hard-linked directories are not allowed) ---------------------------------------------------------------------------- -Subject: File system interactivity +Misc +==== -> I need to add interactivity to my user space file system. -> For example, while executing create(), I need to ask a -> question to the terminal that issued the request. -> -> Is there a way I can achieve this goal? +Can the filesystem ask a question on the terminal of the user? +-------------------------------------------------------------- It would not be possible generally speaking, since it might not be an -interactive program but rather a daemon, or a GUI program creating the -file. However you should be able to get the PID for the caller, and -by looking in /proc you should be able to find the process tty or -something similar. Perhaps it would be better to redesign your program -not to have such interactivity anyway, try to use e.g. extended -attributes of files to set per-file options, or a configuration file -for your filesystem. +interactive program but rather a daemon, or a GUI program doing the +operation. However you should be able to get the PID for the caller, +and by looking in /proc you should be able to find the process tty or +something similar. +But this is not recommended. You should rather think about solving +this another way. diff --git a/Filesystems b/Filesystems index f7557f1..9f098d4 100644 --- a/Filesystems +++ b/Filesystems @@ -1,502 +1,572 @@ -Filesystems using FUSE, that I know of. In order of appearance. +This was generated on 2005/09/27 from -If you find incorrect or outdated information here, please tell me. -Also new entries are welcome. + http://fuse.sourceforge.net/wiki/index.php/LanguageBindings + http://fuse.sourceforge.net/wiki/index.php/FileSystems + http://fuse.sourceforge.net/wiki/index.php/OperatingSystems -============================================================================== -Name: OW +For an up to date version please see the above pages. You can also +add new entries there. -Author: Paul H. Alfille / palfille at partners org +=============================================================================== +Language Bindings +=============================================================================== -Homepage: http://owfs.sourceforge.net +C -Description: +This is the native API - OWFS uses FUSE to expose all the Dallas 1-wire sensors, iButtons and - memory chips as a filesystem. Devices are dynamically included in - the directory, and properties like temperature are obtained by - reading a file. +------------------------------------------------------------------------------ +Java -============================================================================== -Name: FunFS (status: alpha) +Name: FUSE-J -Author: Michael Grigoriev (Net Integration Technologies) / mag at luminal org +Author: Peter Levart / peter.levart at select-tech si -Homepage: http://www.luminal.org/wiki/index.php/FunFS/FunFS +Download: http://www.select-tech.si/fuse/ + +Alternate download: http://www.cl.cam.ac.uk/~tdm25/fuse-j/ -Description: +Description - FunFS is an advanced network file system with a simple goal: to be - better than NFS. + FUSE-J provides Java binding for FUSE. It comes with the + "proof-of-concept" ZIP filesystem which seems to be pretty stable. -============================================================================== -Name: EncFS +------------------------------------------------------------------------------ +C# -Author: Valient Gough / vgough at pobox com +Name: SULF - Stackable User-Level Filesystem -Homepage: http://pobox.com/~vgough/encfs.html +Author: Valient Gough / vgough at pobox com -Description: +Homepage: http://arg0.net/users/vgough/sulf/index.html - EncFS provides an encrypted filesystem in user-space. The EncFS - module itself runs without any special permissions and uses the FUSE - library and Linux kernel module to provide the filesystem interface. +Description -============================================================================== -Name: FUSE-J + SULF allows you to write a Linux filesystem in C#. It uses the + FUSE library to do the actual Linux filesystem integration in + user-space. -Author: Peter Levart / peter.levart at select-tech si +------------------------------------------------------------------------------ +TCL -Download: http://www.select-tech.si/fuse/ +Name: TCL FUSE interface -Alternate download: http://www.cl.cam.ac.uk/~tdm25/fuse-j/ +Author: Colin McCormack? / colin at chinix com + +Homepage: http://mini.net/tcl/13853 + +------------------------------------------------------------------------------ +Python + +Name: Python interface for FUSE + +Author: Jeff Epler + +Maintainer: Sebastien Delafond / sdelafond at gmx net + +CVS: cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/fuse co -P python + +------------------------------------------------------------------------------ +Perl + +Name: Perl interface for FUSE + +Author: Mark Glines + +Maintainer: Dobrica Pavlinusic / dpavlin at rot13 org + +Homepage: http://search.cpan.org/~dpavlin/Fuse-0.05/ + +CVS: cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/fuse co -P perl + +------------------------------------------------------------------------------ +Sh + +Name: Fuse-J-shfs + +Author: Paul "Joey" Clark / joey at hwi ath cx + +Homepage: http://hwi.ath.cx/twiki/bin/view/Neuralyte/FuseJshfs + +Description + + Fuse-J-shfs lets you easily implement a virtual filesystem in Unix + shellscript. And naturally, it already has some handy vfs + implementations you can use straight away: gzip, rar, sparse, ... + +------------------------------------------------------------------------------ +OCaml + +Name: OCamlFuse + +Homepage: http://sourceforge.net/projects/ocamlfuse + +Description + + This is an ocaml binding for fuse enabling you to write your own + multithreaded userspace filesystems using the ocaml programming + language. + +------------------------------------------------------------------------------ +Pliant + +Source: http://fullpliant.org/pliant/browse/file/pliant/linux/storage/fuse.pli?text + +=============================================================================== +File Systems +=============================================================================== + +Name: OW + +Author: Paul H. Alfille / palfille at partners org + +Homepage: http://owfs.sourceforge.net + +Description + + OWFS uses FUSE to expose all the Dallas 1-wire sensors, iButtons + and memory chips as a filesystem. Devices are dynamically included + in the directory, and properties like temperature are obtained by + reading a file. + +------------------------------------------------------------------------------ +FunFS + +Status: alpha -Description: +Author: Michael Grigoriev (Net Integration Technologies) / mag at luminal org + +Homepage: http://www.luminal.org/wiki/index.php/FunFS/FunFS + +Description + + FunFS is an advanced network file system with a simple goal: to be + better than NFS. + +------------------------------------------------------------------------------ +EncFS + +Author: Valient Gough / vgough at pobox com + +Homepage: http://pobox.com/~vgough/encfs.html + +Description - FUSE-J provides Java binding for FUSE. It comes with the - "proof-of-concept" ZIP filesystem which seems to be pretty stable. + EncFS provides an encrypted filesystem in user-space. The EncFS + module itself runs without any special permissions and uses the + FUSE library and Linux kernel module to provide the filesystem + interface. -============================================================================== -Name: SMB for FUSE +------------------------------------------------------------------------------ +SMB for FUSE Author: Vincent Wagelaar / vincent at ricardis tudelft nl Homepage: http://hannibal.lr-s.tudelft.nl/fusesmb/ -Description: +Description - With SMB for Fuse you can seamlessly browse your network - neighbourhood as were it on your own filesystem. + With SMB for Fuse you can seamlessly browse your network + neighbourhood as were it on your own filesystem. -============================================================================== -Name: Run-Time-Access +------------------------------------------------------------------------------ +Run-Time-Access Author: Bob Smith / bsmith at linuxtoys org Homepage: http://www.runtimeaccess.com -Description: +Description - RTA is a specialized memory resident interface to the internal data - of your application. It is not a stand-alone server but a library - which attaches to your program and offers up your program's internal - structures and arrays as tables in a database and as files in a - virtual file system. + RTA is a specialized memory resident interface to the internal + data of your application. It is not a stand-alone server but a + library which attaches to your program and offers up your + program's internal structures and arrays as tables in a database + and as files in a virtual file system. -============================================================================== -Name: PhoneBook +------------------------------------------------------------------------------ +PhoneBook Author: David McNab / david at rebirthing co nz Homepage: http://www.freenet.org.nz/phonebook -Description: +Description - PhoneBook is expressly designed for use in situations where someone - can be under pressure (legal, military and/or criminal) to disclose - decryption keys, and has a 'chaffing' scheme whereby the user can - disclose only passphrases for non-sensitive material, and credibly - deny the existence of anything else. + PhoneBook? is expressly designed for use in situations where + someone can be under pressure (legal, military and/or criminal) to + disclose decryption keys, and has a 'chaffing' scheme whereby the + user can disclose only passphrases for non-sensitive material, and + credibly deny the existence of anything else. -============================================================================== -Name: KIO Fuse Gateway +------------------------------------------------------------------------------ +KIO Fuse Gateway Author: Alexander Neundorf / neundorf at kde org Homepage: http://kde.ground.cz/tiki-index.php?page=KIO+Fuse+Gateway -Description: +Description - This gateway makes it possible to mount ioslaves or a general - ioslave-gateway via fuse and make them this way available to all - linux apps. + This gateway makes it possible to mount ioslaves or a general + ioslave-gateway via fuse and make them this way available to all + linux apps. -============================================================================== -Name: SULF - Stackable User-Level Filesystem (C# bindings) +------------------------------------------------------------------------------ +LUFS bridge -Author: Valient Gough / vgough at pobox com - -Homepage: http://arg0.net/users/vgough/sulf/index.html - -Description: - - SULF allows you to write a Linux filesystem in C#. It uses the FUSE - library to do the actual Linux filesystem integration in user-space. - -============================================================================== -Name: LUFS bridge (alpha) +Status: alpha Author: Miklos Szeredi / miklos at szeredi hu Homepage: http://sourceforge.net/project/showfiles.php?group_id=121684&package_id=132803 -Description: +Description + + This is a modified LUFS daemon, which uses the FUSE kernel + module. It is binary compatible with existing LUFS filesystems, so + no recompilation is needed. - This is a modified LUFS daemon, which uses the FUSE kernel module. - It is binary compatible with existing LUFS filesystems, so no - recompilation is needed. +------------------------------------------------------------------------------ +Bluetooth File System -============================================================================== -Name: btfs (Bluetooth FileSystemMapping) +Name: btfs Author: Collin R. Mulliner / collin at betaversion net Homepage: http://www.mulliner.org/bluetooth/btfs.php -Description: +Description - Btfs is a simple application to map some basic bluetooth functions - into the filesystem. With btfs a simple ls DEVICES shows you all - bluetooth devices within range and cp somefile OPUSH/devicename - sends the given file to the device. + Btfs is a simple application to map some basic bluetooth functions + into the filesystem. With btfs a simple ls DEVICES shows you all + bluetooth devices within range and cp somefile OPUSH/devicename + sends the given file to the device. -============================================================================== -Name: mcachefs +------------------------------------------------------------------------------ +mcachefs Author: Michael Still / mikal at stillhq com Homepage: http://lists.samba.org/archive/linux/2004-March/010211.html -Description: +Description - mcachefs is a simple caching filesystem for Linux using FUSE. It - works by copying the file that you asked for when the file is - opened, and then using that copy for all subsequent requests for the - file. This is really a fairly naive approach to caching, and will - be improved in the future. + mcachefs is a simple caching filesystem for Linux using FUSE. It + works by copying the file that you asked for when the file is + opened, and then using that copy for all subsequent requests for + the file. This is really a fairly naive approach to caching, and + will be improved in the future. -============================================================================== -Name: Fusedav +------------------------------------------------------------------------------ +Fusedav Author: Lennart Poettering / mzshfrqni at 0pointer de Homepage: http://0pointer.de/lennart/projects/fusedav/ -Description: +Description - fusedav is a Linux userspace file system driver for mounting WebDAV - shares. It makes use of FUSE as userspace file system API and neon - as WebDAV API. + fusedav is a Linux userspace file system driver for mounting + WebDAV shares. It makes use of FUSE as userspace file system API + and neon as WebDAV API. -============================================================================== -Name: RelFS +------------------------------------------------------------------------------ +RelFS Author: Vincenzo Ciancia / vincenzo_ml at yahoo it Homepage: http://relfs.sourceforge.net/ -Description: +Description - This is a linux userspace filesystem using fuse and a relational - database to store information about files. Special directories can - represent views on the database, and many powerful features, such as - bayesian classification, are added through plugins. + This is a linux userspace filesystem using fuse and a relational + database to store information about files. Special directories can + represent views on the database, and many powerful features, such + as bayesian classification, are added through plugins. -============================================================================== -Name: GmailFS +------------------------------------------------------------------------------ +GmailFS Author: Richard Jones / richard at jones name Homepage: http://richard.jones.name/google-hacks/gmail-filesystem/gmail-filesystem.html -Description: +Description - GmailFS provides a mountable Linux filesystem which uses your Gmail - account as its storage medium. GmailFS is a Python application and - uses the FUSE userland filesystem infrastructure to help provide the - filesystem, and libgmail to communicate with Gmail. + GmailFS provides a mountable Linux filesystem which uses your + Gmail account as its storage medium. GmailFS is a Python + application and uses the FUSE userland filesystem infrastructure + to help provide the filesystem, and libgmail to communicate with + Gmail. -============================================================================== -Name: DataDraw +------------------------------------------------------------------------------ +DataDraw Author: Bill Cox / bill at viasic com Homepage: http://www.viasic.com/opensource/ -Description: +Description - This is an EDA specific data structure diagramming and code - generation tool. + This is an EDA specific data structure diagramming and code + generation tool. -============================================================================== -Name: gphoto2-fuse-fs +------------------------------------------------------------------------------ +gphoto2-fuse-fs Author: Christopher Lester / lester at hep phy cam ac uk Homepage: http://www.hep.phy.cam.ac.uk/~lester/gphoto2-fuse-fs/ -Description: +Description - This program allows mounting a gphoto2 based digital camera so that - you can access the files via "standard" programs like "ls, cat, tar, - gthumb, netscape, firefox, etc" rather than just through "gtkam and - gphoto2" + This program allows mounting a gphoto2 based digital camera so + that you can access the files via "standard" programs like "ls, + cat, tar, gthumb, netscape, firefox, etc" rather than just through + "gtkam and gphoto2" -============================================================================== -Name: cvsfs-fuse +------------------------------------------------------------------------------ +CvsFS Author: Patrick Frank / pfrank at gmx de Homepage: http://sourceforge.net/projects/cvsfs -Description: +Description - This provides a package which presents the CVS contents as mountable - file system. It allows to view the versioned files as like they - were ordinary files on a disk. There is also a possibility to check - in/out some files for editing. + This provides a package which presents the CVS contents as + mountable file system. It allows to view the versioned files as + like they were ordinary files on a disk. There is also a + possibility to check in/out some files for editing. -============================================================================== -Name: Wayback (User-level Versioning File System for Linux) +------------------------------------------------------------------------------ +User-level Versioning File System + +Name: Wayback Author: Brian Cornell / techie at northwestern edu Homepage: http://wayback.sourceforge.net/ -Description: +Description + + When you use a Wayback file system, old versions of files are + never lost. No matter how much you change a file or directory, + everything is always kept in a versioning file so that you never + lose important data. Wayback provides the ability to remount any + already mounted file system with versioning support under a + different directory. - When you use a Wayback file system, old versions of files are never - lost. No matter how much you change a file or directory, everything - is always kept in a versioning file so that you never lose important - data. Wayback provides the ability to remount any already mounted - file system with versioning support under a different directory. +------------------------------------------------------------------------------ +Trivial Rolebased Authorisation & Capability Statemachine -============================================================================== -Name: Trivial Rolebased Authorisation & Capability Statemachine (TRACS) +Name: TRACS Author: Rob J Meijer / rmeijer at xs4all nl Homepage: http://www.xs4all.nl/~rmeijer/tracs.html -Description: +Description - This project is the first spin-off project of the Security Incident - Policy Enforcement System project. In the process of designing a - SIPES, the need was recognized for the implementation of an - authorisation server that provides functionality not provided by any - of the current authorisation solutions. + This project is the first spin-off project of the Security + Incident Policy Enforcement System project. In the process of + designing a SIPES, the need was recognized for the implementation + of an authorisation server that provides functionality not + provided by any of the current authorisation solutions. -============================================================================== -Name: SSHFS-FUSE +------------------------------------------------------------------------------ +SshFS Author: Miklos Szeredi / miklos at szeredi hu Homepage: http://fuse.sourceforge.net/sshfs.html -Description: +Description - This is a filesystem client based on the SSH File Transfer Protocol. - Since most SSH servers already support this protocol it is very easy - to set up: i.e. on the server side there's nothing to do. On the - client side mounting the filesystem is as easy as logging into the - server with ssh. + This is a filesystem client based on the SSH File Transfer + Protocol. Since most SSH servers already support this protocol it + is very easy to set up: i.e. on the server side there's nothing to + do. On the client side mounting the filesystem is as easy as + logging into the server with ssh. -============================================================================== -Name: Siefs +------------------------------------------------------------------------------ +Siefs Author: Dmitry Zakharov aka Chaos / dmitry-z at mail ru Homepage: http://chaos.allsiemens.com/siefs -Description: +Description + + SieFS is a virtual filesystem for accessing Siemens mobile phones' + memory (flexmem or MultiMediaCard?) from Linux. Now you can mount + your phone (by datacable or IRDA) and work with it like with any + other removable storage. - SieFS is a virtual filesystem for accessing Siemens mobile phones' - memory (flexmem or MultiMediaCard) from Linux. Now you can mount - your phone (by datacable or IRDA) and work with it like with any - other removable storage. +------------------------------------------------------------------------------ +Offline Media Content Database -============================================================================== -Name: Offline Media Content Database (MediaDatabase) +Name: MediaDatabase? Author: Mediadatabase Team Homepage: http://mediadatabase.sourceforge.net/ -Description: +Description - MediaDatabase is database to store filesystem metadata (directory - structure) and/or audio tracks descriptions of offline media and - frontends to database (WWW, GUI and CUI). It was developed to fight - chaos of large compact disk collection but it can help track other - removable media such as floppy disks and data DVDs. - -============================================================================== -Name: TCL FUSE interface + MediaDatabase? is database to store filesystem metadata (directory + structure) and/or audio tracks descriptions of offline media and + frontends to database (WWW, GUI and CUI). It was developed to + fight chaos of large compact disk collection but it can help track + other removable media such as floppy disks and data DVDs. -Author: Colin McCormack / colin at chinix com - -Homepage: http://mini.net/tcl/13853 - -============================================================================== -Name: Python interface for FUSE - -Author: Jeff Epler - -Maintainer: Sebastien Delafond / sdelafond at gmx net - -CVS: cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/fuse co -P python - -============================================================================== -Name: Perl interface for FUSE - -Author: Mark Glines - -Maintainer: Dobrica Pavlinusic / dpavlin at rot13 org - -Homepage: http://search.cpan.org/~dpavlin/Fuse-0.05/ - -CVS: cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/fuse co -P perl - -============================================================================== -Name: Cddfs +------------------------------------------------------------------------------ +Cddfs Author: Matthieu Castet Homepage: http://castet.matthieu.free.fr/cddfs/ -Description: - - Cddfs [1] is a file system for fuse that use libparanoia in order to - mount your audio cd. - -============================================================================== -Name: Fuse-J-shfs - -Author: Paul "Joey" Clark / joey at hwi ath cx - -Homepage: http://hwi.ath.cx/twiki/bin/view/Neuralyte/FuseJshfs - -Description: +Description - Fuse-J-shfs lets you easily implement a virtual filesystem in Unix - shellscript. And naturally, it already has some handy vfs - implementations you can use straight away: gzip, rar, sparse, ... + Cddfs is a file system for fuse that use libparanoia in order to + mount your audio cd. -============================================================================== -Name: SMBNetFS +------------------------------------------------------------------------------ +SMBNetFS Author: Mikhail Kshevetskiy / kl at laska dorms spbu ru Homepage: http://smbnetfs.airm.net/ -Description: +Description - SMBNetFS is a Linux filesystem that allow you to use samba/microsoft - network in the same manner as the network neighborhood in Microsoft - Windows. + SMBNetFS is a Linux filesystem that allow you to use + samba/microsoft network in the same manner as the network + neighborhood in Microsoft Windows. -============================================================================== -Name: NTFS-FUSE +------------------------------------------------------------------------------ +NTFS-FUSE Author: Yura Pakhuchiy / pakhuchiy at gmail com Homepage: http://linux-ntfs.sf.net/ -Description: +Description - NTFS-FUSE is part of ntfsprogs package (utily name - ntfsmount). - It's rely on libntfs. NTFS-FUSE support file overwrite changing it - size and can list/read/write/add/remove named data streams via xattr - interface. + NTFS-FUSE is part of ntfsprogs package (utily name - + ntfsmount). It's rely on libntfs. NTFS-FUSE support file overwrite + changing it size and can list/read/write/add/remove named data + streams via xattr interface. -============================================================================== -Name: BTSlave (BitTorrent File System) +------------------------------------------------------------------------------ +BitTorrent File System + +Name: BTSlave Author: Bill Cox / bill at viasic com Homepage: http://btslave.sourceforge.net/ -Description: +Description - BTSlave allows users to mount a BitTorrent .torrent file as a file - system. + BTSlave allows users to mount a BitTorrent? .torrent file as a + file system. -============================================================================== -Name: GfarmFS-FUSE +------------------------------------------------------------------------------ +GfarmFS Author: Takuya Ishibashi / takuya at soum co jp Homepage: http://datafarm.apgrid.org/software/gfarmfs-fuse.en.html -Description: +Description + + GfarmFS-FUSE enables you to mount a Gfarm filesystem in + userspace. Grid Datafarm is a Petascale data-intensive computing + project initiated in Japan. The challenge involves construction of + a Peta- to Exascale parallel filesystem exploiting local storages + of PCs spread over the world-wide Grid. - GfarmFS-FUSE enables you to mount a Gfarm filesystem in userspace. - Grid Datafarm is a Petascale data-intensive computing project - initiated in Japan. The challenge involves construction of a Peta- - to Exascale parallel filesystem exploiting local storages of PCs - spread over the world-wide Grid. +------------------------------------------------------------------------------ +Clustered Ordinary Raid Network File System -============================================================================== -Name: Clustered Ordinary Raid Network File System (CORNFS) +Name: CORNFS Author: Ian C. Blenke / icblenke at nks net Homepage: http://ian.blenke.com/projects/cornfs/cornfs.html -Description: +Description - CORNFS is an attempt at creating a distributed filesystem that - mirrors N copies of files across a group of M number of servers. - Everything in CORNFS is stored as a file. At any time, it is - possible to reconstruct the entire filesystem via a simple overlay - rsync from the remote filesystems. + CORNFS is an attempt at creating a distributed filesystem that + mirrors N copies of files across a group of M number of + servers. Everything in CORNFS is stored as a file. At any time, it + is possible to reconstruct the entire filesystem via a simple + overlay rsync from the remote filesystems. -============================================================================== -Name: djmount +------------------------------------------------------------------------------ +djmount Author: Rémi Turboult / r3mi at users sourceforge net Homepage: http://djmount.sourceforge.net -Description: +Description - Djmount allows to mount as a Linux filesystem the content of - MediaServer devices compatible with the UPnP AV protocol. It - discovers automatically all UPnP AV Media Servers on the network, - and make the content available in a directory tree. An Audio or - Video file is rendered as a playlist (.m3u or .ram) which contains - an URL for the file. + Djmount allows to mount as a Linux filesystem the content of + MediaServer? devices compatible with the UPnP AV protocol. It + discovers automatically all UPnP AV Media Servers on the network, + and make the content available in a directory tree. An Audio or + Video file is rendered as a playlist (.m3u or .ram) which contains + an URL for the file. -============================================================================== -Name: HTTP-FUSE KNOPPIX +------------------------------------------------------------------------------ +HTTP-FUSE KNOPPIX Homepage: http://unit.aist.go.jp/itri/knoppix/http-fuse/index-en.html -Description: +Description - HTTP-FUSE-KNOPPIX-4.0 is only 5MB CD image and enables us to use - same contents of 3.8GB DVD KNOPPIX 4.0. We don't need to download - 3.8GB iso image at one time and burn DVD. + HTTP-FUSE-KNOPPIX-4.0 is only 5MB CD image and enables us to use + same contents of 3.8GB DVD KNOPPIX 4.0. We don't need to download + 3.8GB iso image at one time and burn DVD. -============================================================================== -Name: OCamlFuse +------------------------------------------------------------------------------ +WikipediaFS -Homepage: http://sourceforge.net/projects/ocamlfuse +Author: Mathieu Blondel -Description: +Homepage: http://wikipediafs.sourceforge.net - This is an ocaml binding for fuse enabling you to write your own - multithreaded userspace filesystems using the ocaml programming - language. +Description -============================================================================== -Name: Fuse for FreeBSD + WikipediaFS is a mountable Linux virtual file system that enables + you to deal with Wikipedia articles as though they were real files + on your hard drive. -Author: Csaba Henk / csaba-ml at creo hu +=============================================================================== +Operating Systems +=============================================================================== -Homepage: http://wikitest.freebsd.org/moin.cgi/FuseFilesystem +Linux-2.4.X -============================================================================== -Name: WikipediaFS +Native port. New FUSE versions (2.X) support kernels 2.4.21 or later. -Author: Mathieu Blondel +------------------------------------------------------------------------------ +Linux-2.6.X -Homepage: http://wikipediafs.sourceforge.net +Native port. New FUSE versions (2.X) support all 2.6 kernels. + +2.6.14 and up will have FUSE support included in the official kernel. + +------------------------------------------------------------------------------ +FreeBSD -Description: +Name: Fuse for FreeBSD + +Author: Csaba Henk / csaba-ml at creo hu - WikipediaFS is a mountable Linux virtual file system that enables - you to deal with Wikipedia articles as though they were real files - on your hard drive. +Homepage: http://wikitest.freebsd.org/moin.cgi/FuseFilesystem -==============================================================================