NFS on System V

Roy Smith roy at phri.UUCP
Wed Sep 17 03:40:55 AEST 1986


In article <161 at wang7.UUCP> brezak at wang7.UUCP (John Brezak) asks about
doing an NFS implementation in Xenix V without modifying the kernel.

	I asked essentially this same question at the NFS tutorial in
Atlanta.  I don't know anything about Xenix V in particular, but I think
the answer is the same for any system.  Some of this is based on the answer
I got at Atlanta, some of it is my own expounding on that.

	It would be fairly easy (well, at least straight-forward) to do an
NSF *server* in user code.  It may be counter-intuitive, but doing a client
is actually harder than doing a server.  All a server has to do is respond
to service requests on a synchronous basis.  A client has to be all over
your program, getting involved every time you mention a path name.

	I don't see any easy way to do an NFS server all in user code.  I
suppose you could write a whole system call library which recognized when
pathnames crossed NFS mount points (and symbolic links on 4.N systems), but
it would be a real mess.  We're not just talking read and write here, but
chdir and exec and mount as well.  Since you can execute binaries from
remote file systems, things like demand paging have to go through NFS; I
don't see any way to do that in user code.

	In fact, when you consider the mount system call, you have a
situation where one process can effect another process that isn't even
related to the first one by a common ancestor -- how are you going to keep
that state information in user code and make it work right?
-- 
Roy Smith, {allegra,philabs}!phri!roy
System Administrator, Public Health Research Institute
455 First Avenue, New York, NY 10016



More information about the Comp.unix.wizards mailing list