libio preparation for file systems

Joel Sherrill joel at oarcorp.com
Fri Feb 27 17:32:46 UTC 1998



On Fri, 27 Feb 1998, Robin Kirkham wrote:

> > Are you proposing that there be a "device management" file system which
> > according to current (and UNIX) convention is mounted onto /dev?
> 
> No. I think the memory file system would initially have directories and
> device nodes. Our /dev would be a directory; /dev/console would be a device
> node. Thus, one invocation of the memory filesystem is sufficient to give
> the current libio funtionality.

OK.  That was what I had in mind.  the "memory filesystem" knows about
directories, devices, and mounting.  

> Later, it could be extended to include some of these other ideas, like
> command "executables" linked to functions, and RTEMS object names, and
> file-like objects. You can do these as filesystems in their own right as
> well. The problem with having many special-purpose filesystems is that you
> can only have objects of the types supported by those filesystems in the
> directories where you mounted them, and not just anywhere.

At some point int he future, it will have to be decided which is the best
way to go.  I suspect that one can find a way to integrate those
capabilities into the memory file system without incurring a huge penalty
in minimum system requirements.  Somehow the pieces will have to be
installable.  So you could have "installable file types" as well as
installable file systems.

> So I think it would be better to slowly work some of these other (worthy)
> ideas into the memory filesystem, but leave some of the more unusual things
> (like discrete IO) to have special-purpose filesystems.

Sounds reasonable. 

> Might I propose a name for this "RTEMS memory filesystem" so I can stop
> typing "nenory filewyste," 8-) What about rmfs. It would be the non-persistent
> filesystem for RTEMS things.

OK. 

> > I think it is important for the memory file system to allow mounts of
> > itself.  I don't think this is particularly a problem just something to
> > make sure works. :)
> 
> Mounting would be a property of the new libio, not the filesystems, which
> don't actually know where thay are mounted, or if something is mounted
> on them. So, you should be able to mount anything on anything. To make sense,
> and so the directory tree stays together, all a mount should require is 
> that the mount point exists and is a directory (same requirement as chdir()).

Does "new libio" == "memory file system"?  

If the answer is yes, then I think I understand.  If the answer is no,
then I am unsure of the division you have in mind. 

> > > This does remind me: for NFS (a very useful, and fairly easily implemented
> > > filesystem, once someone ports RPC) does imply a basically working
> > > getuid(), getgrpid(), getgroups() set-up.
> > 
> > Some of these routines are already implemented but tend to return
> > variables which may be set via the set*() routines.
> 
> Yes, I've just tracked down where they are and had a look. With NFS, however,
> uid/gid and gids have to be correct for the server host, and so you have to
> get this information from it ... anyway, this does not impact on the task
> at hand.

OK.  They were just intended to "be there and not be wrong". :)  We will
have to work on those as part of a future NFS effort. 

--joel




More information about the users mailing list