*BSD News Article 1684


Return to BSD News archive

Path: sserve!manuel!munnari.oz.au!constellation!apple!agate!ames!elroy.jpl.nasa.gov!swrinde!mips!newsun!gateway.novell.com!terry
From: terry@npd.Novell.COM (Terry Lambert)
Newsgroups: comp.unix.bsd
Subject: Re: NFS client source?
Message-ID: <1992Jun26.014605.25576@gateway.novell.com>
Date: 26 Jun 92 01:46:05 GMT
References: <Jun.25.10.13.41.1992.17965@pilot.njin.net>
Sender: news@gateway.novell.com (NetNews)
Distribution: inet
Organization: Novell NPD -- Sandy, UT
Lines: 44
Nntp-Posting-Host: thisbe.eng.sandy.novell.com

In article <Jun.25.10.13.41.1992.17965@pilot.njin.net> pfaffman@pilot.njin.net (Jay Pfaffman) writes:
>
>I'm trying to learn more about how NFS clients work.  I've found
>several different sources for servers, but I'm looking for the client
>stuff.  I assume that it's somewhere in the kernel & maybe in mount?
>Poking around the source tree at gatekeeper.dec.com didn't uncover
>anything.  If someone could point me to the right directories/files or
>offer other sources of info, I'd appreciate it.

Most modern NFS clients are implemented as filesystems under the VFS layer.
If you archie for "nfs_vnops.c" you will see a number of locations around
the world where you may pick the code up.

There are several notable exceptions to this, where the client is not
implemented below VFS, or only partially implemented there:

1)	NFS for SVR3.1.  The implementation I am most familiar with is
	implemented as a file system switch entry, several system calls,
	and a user-space nfs client daemon.  This is because RPC service
	is unavailable from the kernel (3.1 doesn't support streams and/
	or calls to streams from the kernel).

2)	The Kyoto NFS, which is implemented in much the same way, but does
	have a VFS table entry, but goes on with the system calls, et al,
	just as if it were SVR3.1.  The Berkeley interface, which differs
	significantly in the vnops and the kernel vm API from SVR4, is
	used in this case.


Most likely, unless you are using a real BSD or derivative (Older SunOS/
Ultrix), or unless you wanted to use all of 386BSD (my recommendation), you
will probably need a SVR4.x source license to see working code... unless,
God forbid, ypu have an AT&T UNIX PC (the "7300", sometimes called a "3B1"),
in which case, you will have to have a SVR3.1 src license and get AT&T to
sell you the other sources for whatever they think they can get out of you
(last time I checked, they wanted $200 for "Rogue" ported to the 3b1).


					Terry Lambert
					terry_lambert@gateway.novell.com
					terry@icarus.weber.edu
---
Disclaimer:  Any opinions in this posting are my own and not those of
my present or previous employers.