From: Martin C.Atkins <martin_ml@parvat.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@cse.psu.edu>
Subject: Re: [9fans] Acme mailreader - now: User mode filesystems in linux
Date: Sat, 18 Dec 2004 18:05:10 +0530 [thread overview]
Message-ID: <20041218180510.63765240.martin_ml@parvat.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0412170841020.10747@linux.site>
Gosh - lots of comments..
On Fri, 17 Dec 2004 08:44:52 -0700 (MST) "Ronald G. Minnich" <rminnich@lanl.gov> wrote:
> > so presumably he felt Coda could be improved upon.
>
> As peter used to put it, 5KLOC (intermezzo) was in his mind better than
> 500KLOC (coda). He brought both file systems to fruition.
Good reason! But the kernel modules were only a small fraction of
that total size, right?
> yeah, intermezzo limped along for 5 years, never quite worked, then died.
> But the kernel->user interface of intermezzo is perfectly usable. Sounds
> like you've gotten far with coda, so this is just an FYI.
Pity abut Intermezzo - trying it (for it's designed purpose) was on
my todo list...
Thanks for your assessment of the Intermezzo kernal->user interface.
I've often wondered if I could have been used it for my driver
itstead of coda, but like you say, I've gotten thus far with Coda...
> in the game, and got to the point where I could boot a linux node with
> imezzo as the root file system. That was interesting.
Sounds fun!
On Fri, 17 Dec 2004 13:41:09 +0000 Derek Fawcus <dfawcus@cisco.com> wrote:
> > 3) The user-filesystem-daemon can enforce file ownership (as the user) in
> > the served directory hierarchy. It can also force off setuid bits, etc.
> > Furthermore, users can only attach their fileservers to their own daemons!
> > (A bit like per-process mount tables - of course, linux has this already, but
> > not in a very user-friendly form)
>
> So while it's running, I can use gdb to attach to it and get around any security
> it's trying to enforce (turn setuid back on, change ownership to root, etc).
Good point! I guess it would have to stay setuid to avoid that - pity. Is there
another way of stopping gdb, et al? I see that EPERM on ptrace can be caused if
the debuggee is already being debugged. Is there any way that a program can
ptrace itself, just to stop anyone else from debugging it? (1/2 :-))
On Fri, 17 Dec 2004 09:42:15 -0500 Karl Magdsick <kmagnum@gmail.com> wrote:
> > On login, each user starts a user-filesystem-daemon, which uses setuid
> > to create a /dev/cfsN, if necessary, opens it to start serving, and
> > mounts it on a conventional place: $HOME/mnt, say.
>
> Why are the setuid meta-daemons needed? You'll want security/sanity
> checks within the kernel code anyway, so the main reason for the
> setuid meta-daemons is creating(??/destroying??) device files. It
> seems that you could get around this by using one device file for
> everyone, which brings us to...
>
> Why N different devices? The kernel can distinguish between open
> filehandles for /dev/cfs and use an array, tree, or map of structs to
> [ plus more good points]
Two reasons:
1) I was trying to see how far we could get without having to change *anything*
in the stock linux kernel distribution. This makes distributing the result
much easier...
2) When you mount a coda device, you are talking to the fileserver that
opened that coda device. If you multiplexed the device, you would have
to have some other way of saying *which* user-mode fileserver you were
trying to mount.
Otherwise, I agree.
> As mentioned in another post, you can prevent device files and setuid
> executibles in non-root owned filesystems and allow any user process
> to mount a fs on any mount point they own.
Yes, and these mechanisms are [probably best.
> The kernel needs its own cleanup code (what if one of the per-user
> filesystem meta-daemons crashes?) and security/sanity checks (only
If the per-user filesystem meta-daemons crashes, then, like I said,
with coda, the kernel is pretty safe already. However I'd like the user's
view of things to be cleaned up too.
and:
On Fri, 17 Dec 2004 14:13:35 -1000 (HST) Tim Newsham <newsham@lava.net> wrote:
> I think it would be better to just implement the v9fs protocol
> and let users mount it in a similar way as nfs. The v9fs layer
In the future, I totally agree. Unfortunately my requirement was for
something that would work with all the linux systems already out
there.
> Adding a seperate userland demon that proxies a filesystem
> protocol (probably the same one) through to the kernel seems
> like an uneeded layer of complexity.
So it now seems - I was just thinking aloud, and the result was
interesting, and informative for me.
> It seems like there are a lot of projects out there that have
> interest in providing userland filesystems. They typically use
> nfs because its the easiest vector into the existing infrastructure.
> V9fs would definitely fill a useful niche.
Yes. The lack of close messages (until recently) in nfs, certainly
restricted its usefulness for this purpose though.
> V9fs already provides a useful protocol.
No disagreements there, however there have already been discussions
in other threads pointing out that V9fs doesn't (yet?) have messages
for linux things that Plan 9 doesn't have - such as symlinks.
> Restrictions as to where mount points could be placed could be
> put in any setuid binary that mediates user mounts.
I was trying to get around the restriction that user mounts could
only be under $HOME/mnt, imposed by my scheme. Given access to a more
general mount, I don't see any reason to restrict it unnecessarily!
Thanks all for interesting feedback!
Martin
--
Martin C. Atkins martin_ml@parvat.com
Parvat Infotech Private Limited http://www.parvat.com{/,/martin}
next prev parent reply other threads:[~2004-12-18 12:35 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-15 15:34 [9fans] Acme mailreader jim
2004-12-15 15:40 ` gdiaz
2004-12-15 15:47 ` jim
2004-12-15 15:50 ` Joseph Stewart
2004-12-15 15:57 ` jim
2004-12-15 16:10 ` Russ Cox
2004-12-15 15:58 ` Charles Forsyth
2004-12-15 16:04 ` jim
2004-12-15 16:24 ` C H Forsyth
2004-12-15 16:31 ` jim
2004-12-15 17:07 ` Russ Cox
2004-12-15 17:30 ` jim
2004-12-15 18:33 ` Russ Cox
2004-12-15 18:49 ` jim
2004-12-15 18:36 ` Axel Belinfante
2004-12-15 18:47 ` jim
2004-12-15 18:51 ` rog
2004-12-15 18:48 ` Skip Tavakkolian
2004-12-15 16:05 ` rog
2004-12-15 16:07 ` rog
2004-12-15 16:09 ` jim
2004-12-16 0:24 ` geoff
2004-12-16 4:12 ` Ronald G. Minnich
2004-12-16 4:51 ` geoff
2004-12-16 9:25 ` jim
2004-12-16 5:13 ` Skip Tavakkolian
2004-12-16 5:17 ` geoff
2004-12-16 5:20 ` boyd, rounin
2004-12-16 5:34 ` boyd, rounin
2004-12-16 5:29 ` Skip Tavakkolian
2004-12-16 15:54 ` Ronald G. Minnich
2004-12-16 17:52 ` Skip Tavakkolian
2004-12-16 18:13 ` Dave Eckhardt
2004-12-16 5:23 ` Andy Newman
2004-12-16 15:52 ` Ronald G. Minnich
2004-12-16 8:17 ` Martin C.Atkins
2004-12-16 9:35 ` jim
2004-12-16 15:19 ` rog
2004-12-16 15:26 ` jim
2004-12-16 9:30 ` jim
2004-12-16 15:08 ` David Leimbach
2004-12-16 23:22 ` geoff
2004-12-16 23:25 ` boyd, rounin
2004-12-16 23:38 ` Ronald G. Minnich
2004-12-17 1:31 ` Skip Tavakkolian
2004-12-17 15:50 ` Ronald G. Minnich
2004-12-17 4:55 ` [9fans] Acme mailreader - now: User mode filesystems in linux Martin C.Atkins
2004-12-17 9:54 ` Martin C.Atkins
2004-12-17 10:22 ` geoff
2004-12-17 10:45 ` Martin C.Atkins
2004-12-17 11:42 ` Andy Newman
2004-12-17 15:57 ` Ronald G. Minnich
2004-12-17 12:30 ` Latchesar Ionkov
2004-12-17 15:55 ` Ronald G. Minnich
2004-12-17 13:41 ` Derek Fawcus
2004-12-17 14:42 ` Karl Magdsick
2004-12-17 14:56 ` Russ Cox
2004-12-18 0:13 ` Tim Newsham
2004-12-18 0:13 ` boyd, rounin
2004-12-18 3:49 ` Ronald G. Minnich
2004-12-23 16:04 ` boyd, rounin
2004-12-17 15:44 ` Ronald G. Minnich
2004-12-18 12:35 ` Martin C.Atkins [this message]
2004-12-17 18:52 ` [9fans] Acme mailreader David Leimbach
2004-12-17 23:20 ` Jack Johnson
2004-12-18 1:00 ` David Leimbach
2004-12-15 16:09 ` Russ Cox
2004-12-15 16:16 ` jim
2004-12-15 16:22 ` boyd, rounin
2004-12-17 15:31 [9fans] Acme mailreader - now: User mode filesystems in linux bmaroshe
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=20041218180510.63765240.martin_ml@parvat.com \
--to=martin_ml@parvat.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).