[pat@wesson.it.com.au (Pat Mackinlay) writes:]
>Presuming one of the existing servers is chosen, I'm unsure exactly how
>I should handle things like permission/owndership conversion, and also
>the multitude of "special" files available under the Minix fs.
I'd look at srv/dos for an example of a (very) simple way of doing
a filesystem without permissions. VSTa only uses UIDs for indicating
*why* you got abilities; a UID does not represent any abilities in
itself. It's more of an accounting concept.
srv/tmpfs and srv/vstafs show how to do "full" VSTa protection handling.
If you map ownership in a Minix filesystem somehow, then you could
participate fully as a VSTa filesystem. There's a fairly simple way
to do this mapping, I'll write you some prototype code when you're
ready to think about it.
>Presumably
>devices should just be ignored, but what about fifos and sockets?
FIFOs are done in the pipe server, and probably shouldn't go anywhere else.
Sockets beg the question of networking--a very deep question, but again
one which probably shouldn't be embedded in a disk-oriented filesystem.
>Should
>I just ignore these as well, or is there some way of passing them off to
>the relevant (pipe fs) server(s)? Should I bother?
I wouldn't bother. :-) So far as I can tell, we're in the current mess
with UNIX because there was "the" filesystem, and "everything's a file".
So we started loading all sorts of non-filesystem stuff into the filesystem.
Even as we were doing so, the joys of multiple filesystem types became
realized. The result is a mishmash, duplicated features, and interesting
side effects. For instance, you can't do named pipes in /tmp on a Sun
box. Usually.
On a related note, I'm starting to ponder how to do file locking. I'm
pretty sure it calls for its own server, but I can clearly see how
locking needs to be associated with some unique file. But the
operating system doesn't even *know* about files, so how do we talk
about unique ones? Do unrelated servers have to trust each other? Is
there some underlying concept which unifies this?
I'm pretty sure I don't want servers getting cluttered with file
locking. I've seen what it does in UNIX, and I'm very interested in not
repeating it. I'm pretty sure I can do it with smoke and mirrors in
the C library. Once I figure it out.
>Obviously, I really have no idea what I'm doing here <grin>, but I'm
>doing this mainly as an exercise to find out how it should be done. Any
>advice anyone could give me would be much appreciated. Thanks in advance.
It should make a neat project! I'd recommend forgetting all the protection
stuff, get the basic filesystem talking first. After that you can fiddle
with protection, perhaps teach srv/mach/wd about the Minix partition
types, maybe even move some of that out to lib/ so the upcoming SCSI
disk support can share it.
Regards,
Andy
Received on Sun Dec 19 20:51:45 1993
This archive was generated by hypermail 2.1.8 : Wed Sep 21 2005 - 21:01:53 PDT