[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnu-arch-users] Re: [OT] GNU Hurd

From: Alfred M\. Szmidt
Subject: Re: [Gnu-arch-users] Re: [OT] GNU Hurd
Date: Wed, 18 Jan 2006 21:29:41 +0100

Ludovic Courtès summed it up quite well.

   In that case, I don't see why anyone would criticize FUSE for its
   kludged design; they only did what they had to do to get user-
   space filesystems in Linux.  If the kludge in kernel space works,
   and doesn't create problems for kernel developers, FUSE filesystem
   developers, or the end-users, then it has to be better than not
   having FUSE at all.

Alas, it does create problems for Linux developers.  For one, FUSE is
_part_of_Linux_.  It is not seperate from it, and this means that any
changes in the way the file-system is handled, one will have to update
it in the FUSE part, in conjuction to the rest of all the file-system
drivers in Linux.  The internal API for Linux is not stable, never
will be, and is one of the worst headaches for any developer ever
concived (note, I'm not saying that breaking API is a bad thing, but
Linux does it to often, and without any thought of why, it is `oh this
looks cool, lets rewrite everything' mantra)

Secondly, FUSE does not allow for user-space file-systems in all
cases, you cannot have your root file-system running in user-space,
nor can you have ext2fs in user-space, or any other blockish
file-system.  This is due to FUSE, which is a hack to make it possible
to implement some, but totally triffling file-systems in user-space
and not any of the file-systems you actually _want_ to have in
user-space to ease debugging.  You cannot for example run two versions
of ext2fs, one that is known to work, and one that is known to eat
your file-system at the same time in Linux with, or _without_ FUSE.

Thirdly, you need to trust that your system aministrator allows you to
use whatever file-system you envision.  This is due to how mount()
works (which doesn't even exist on GNU), which is a priviledged system
call.  Which brings us back to what Ludovic, you need to trust the
FUSE file-system since it runs actually kernel space, and not really
in user-space, it adds a bunch of interfaces to make this happen.  But
if it gives to much flexibility, you will be able to compromise the
whole system, if you give to little, you won't be able to make
anything interesting.

In the end, this is a design flaw in how Linux works, and not just in
FUSE.  FUSE just makes it easier to show how badly Linux is designed
from a usabilty point of view.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]