9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] fuse bashing
@ 2006-01-23 17:06 Russ Cox
  2006-01-23 17:28 ` Ronald G Minnich
                   ` (2 more replies)
  0 siblings, 3 replies; 44+ messages in thread
From: Russ Cox @ 2006-01-23 17:06 UTC (permalink / raw)
  To: 9fans

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


^ permalink raw reply	[flat|nested] 44+ messages in thread
[parent not found: <000001c620ca$f86f1570$14aaa8c0@utelsystems.local>]
* Re: [9fans] fuse bashing
@ 2006-01-24 20:10 quanstro
  2006-01-24 21:37 ` Eric Van Hensbergen
  2006-01-25  0:25 ` Latchesar Ionkov
  0 siblings, 2 replies; 44+ messages in thread
From: quanstro @ 2006-01-24 20:10 UTC (permalink / raw)
  To: 9fans

On Mon Jan 23 20:21:36 CST 2006, lucho@gmx.net wrote:
> On Mon, Jan 23, 2006 at 12:06:09PM -0500, Russ Cox said:
> > It appears to match the kernel better, so the implementation
> > should be simpler.  (As soon as you want to talk between
> 
> It is much simpler (and probably faster), and that's a big win for FUSE:
> 
> 	$ cat fs/fuse/*.[ch] | wc -l
> 	4073
> 
> 	$ cat 9p/*.[ch] | wc -l
> 	7271

why do you assume that line count is porportinal to
speed of execution or complexity?


^ permalink raw reply	[flat|nested] 44+ messages in thread

end of thread, other threads:[~2006-01-26  1:16 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-23 17:06 [9fans] fuse bashing Russ Cox
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

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).