"Fossies" - the Fresh Open Source Software Archive

Member "fuse-3.2.1/doc/mainpage.dox" (14 Nov 2017, 2151 Bytes) of package /linux/misc/fuse-3.2.1.tar.xz:

As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. For more information about "mainpage.dox" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 3.2.0_vs_3.2.1.

    1 /*!
    2 \mainpage libfuse API documentation
    4 FUSE (Filesystem in Userspace) is an interface for userspace programs
    5 to export a filesystem to the Linux kernel. The FUSE project consists
    6 of two components: the *fuse* kernel module (maintained in the regular
    7 kernel repositories) and the *libfuse* userspace library. libfuse
    8 provides the reference implementation for communicating with the FUSE
    9 kernel module.
   11 A FUSE file system is typically implemented as a standalone
   12 application that links with libfuse. libfuse provides functions to
   13 mount the file system, unmount it, read requests from the kernel, and
   14 send responses back.
   17 ## Getting started ##
   19 libfuse offers two APIs: a "high-level", synchronous API, and a
   20 "low-level" asynchronous API. In both cases, incoming requests from
   21 the kernel are passed to the main program using callbacks. When using
   22 the high-level API, the callbacks may work with file names and paths
   23 instead of inodes, and processing of a request finishes when the
   24 callback function returns. When using the low-level API, the callbacks
   25 must work with inodes and responses must be sent explicitly using a
   26 separate set of API functions.
   28 The high-level API that is primarily specified in fuse.h. The
   29 low-level API that is primarily documented in fuse_lowlevel.h.
   31 ## Examples ##
   33 FUSE comes with several examples in the <a
   34 href="files.html">examples</a> directory. A good starting point are
   35 hello.c (for the high-level API) and hello_ll.c (for the low-level
   36 API).
   38 ## FUSE internals ##
   40 The authoritative source of information about libfuse internals
   41 (including the protocol used for communication with the FUSE kernel
   42 module) is the source code.
   44 However, some people have kindly documented different aspects of FUSE
   45 in a more beginner friendly way. While this information is
   46 increasingly out of date, it still provides a good overview:
   48 - Bharat Vangoor et al have included an overview of the FUSE internals
   49   in a <a href="fast17-vangoor.pdf">paper evaluating FUSE performance</a>.
   51 - Some documentation of the kernel-userspace protocol is available on
   52   the <a href="https://github.com/libfuse/libfuse/wiki/">libfuse wiki</a>.
   54 */