9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "Russ Cox" <rsc@swtch.com>
To: 9fans@cse.psu.edu
Subject: [9fans] fuse bashing
Date: Mon, 23 Jan 2006 12:06:09 -0500	[thread overview]
Message-ID: <20060123170614.07D331E8C37@holo.morphisms.net> (raw)

Fuse has a nice crunchy layer of GNU crud around it
which makes it hard to swallow, but at its core, it's
very close to 9P (or the version 8 network file system).

You open /dev/fuse, hand the fd to the kernel to mount
it somewhere, and then you read and write fuse messages
on the fd.  All the kernel vfs operations end up as fuse 
messages, including close.  (It just isn't used in examples,
but it does exist.  It's called release.)  The main failing I see
from a protocol standpoint seems to be the lack of a flush
message.  Instead, fuse just puts interrupted requests on
a list and assumes they'll come back eventually.  
This wouldn't be appropriate for things like interrupting
a read from /dev/tty.  For mounting file systems on a 
Unix system, fuse is probably a better protocol than 9P.
It appears to match the kernel better, so the implementation
should be simpler.  (As soon as you want to talk between
different operating systems or send the messages over
the network, that's where 9P starts to make more sense.)

Fuse's main problem is that they bundle the protocol inside
the library loop, so what you see from the outside is the
equivalent of 9P+lib9p.  You don't ever get to see the protocol
by itself.  That's often good enough, but sometimes it's nice
to deal with the raw messages.  Another big problem with
fuse is the lack of easily-found documentation.  

If you download a fuse distribution and look in
kernel/fuse_kernel.h you can see the messages.

Russ


             reply	other threads:[~2006-01-23 17:06 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-23 17:06 Russ Cox [this message]
2006-01-23 17:28 ` Ronald G Minnich
2006-01-23 17:44   ` David Leimbach
2006-01-23 18:07   ` Eric Van Hensbergen
2006-01-23 18:13     ` Bruce Ellis
2006-01-23 20:31   ` David Leimbach
2006-01-23 20:33     ` Ronald G Minnich
2006-01-23 23:28       ` Dan Cross
2006-01-23 23:53         ` David Leimbach
2006-01-24  0:07         ` Ronald G Minnich
2006-01-25 19:58         ` Enache Adrian
2006-01-25 20:30           ` Christoph Lohmann
2006-01-25 20:51             ` Ronald G Minnich
2006-01-25 21:09               ` Bruce Ellis
2006-01-25 20:50           ` Ronald G Minnich
2006-01-25 21:09             ` Enache Adrian
2006-01-24  0:12       ` John Barham
2006-01-25  5:29       ` Dave Eckhardt
2006-01-25 15:38         ` Ronald G Minnich
2006-01-25 21:31           ` Dave Eckhardt
2006-01-26  1:16           ` erik quanstrom
2006-01-25  5:30       ` Dave Eckhardt
2006-01-25  7:46         ` Jack Johnson
2006-01-25  8:11           ` Lyndon Nerenberg
2006-01-25  8:18             ` Lyndon Nerenberg
2006-01-25  9:46             ` Andriy G. Tereshchenko
2006-01-25 15:45         ` Ronald G Minnich
2006-01-23 17:51 ` C H Forsyth
2006-01-23 17:46   ` David Leimbach
2006-01-23 20:08     ` Ronald G Minnich
2006-01-23 18:46   ` Skip Tavakkolian
2006-01-24  2:22 ` Latchesar Ionkov
2006-01-24  8:37   ` Charles Forsyth
2006-01-24  9:41     ` Charles Forsyth
2006-01-24 10:04       ` Charles Forsyth
     [not found] <000001c620ca$f86f1570$14aaa8c0@utelsystems.local>
2006-01-24  9:46 ` "Nils O. Selåsdal"
2006-01-24 20:10 quanstro
2006-01-24 21:37 ` Eric Van Hensbergen
2006-01-24 23:14   ` Charles Forsyth
2006-01-25  0:26   ` Latchesar Ionkov
2006-01-25  0:25 ` Latchesar Ionkov
2006-01-25  1:31   ` erik quanstrom
2006-01-25  1:40     ` Latchesar Ionkov
2006-01-25  1:42       ` Eric Van Hensbergen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060123170614.07D331E8C37@holo.morphisms.net \
    --to=rsc@swtch.com \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).