[comp.protocols.nfs] Public Domain NFS Server

hyung@cup.portal.com (Henry K Yung) (08/09/89)

	Sorry if this question has been addressed before...

	I've heard rumors that someone has written a public domain
NFS server.  Is there such a thing?  If yes, where can I get
this PD source?

	Thanks in advance for any info.

Hank

hyung@cup.portal.com (Henry K Yung) (08/16/89)

	Thanks for all the responses to my recent query regarding
a public domain NFS server.  However, mainly because of my fault
for not specifying what platform I am interested in, all the
responses I received pointed to PC's SOS NFS server.

	What I am really looking for is a Unix based public domain
NFS server.  Or for that matter, even a VMS based version is fine.
Any ideas as to where I can find such a server?

	Thanks very much in advance

Hank

neil@gid.co.uk (Neil Todd) (08/19/89)

From article <21340@cup.portal.com>, by hyung@cup.portal.com (Henry K Yung):
:  
:  	Thanks for all the responses to my recent query regarding
:  a public domain NFS server.  However, mainly because of my fault
:  for not specifying what platform I am interested in, all the
:  responses I received pointed to PC's SOS NFS server.
:  
:  	What I am really looking for is a Unix based public domain
:  NFS server.  Or for that matter, even a VMS based version is fine.
:  Any ideas as to where I can find such a server?
:  

Der Mouse did such a thing for a 4.3 kernel, runs very nicely (I post
details in a couple of days when i dig them out)

Neil

neil@ist.CO.UK (Neil Todd) (08/23/89)

From article <2363@istop.ist.CO.UK>, by neil@gid.co.uk (Neil Todd):
> From article <21340@cup.portal.com>, by hyung@cup.portal.com (Henry K Yung):
> :  
(stuff deleted)
> :  	What I am really looking for is a Unix based public domain
> :  NFS server.  Or for that matter, even a VMS based version is fine.
> :  Any ideas as to where I can find such a server?
> :  
> 
> Der Mouse did such a thing for a 4.3 kernel, runs very nicely (I post
> details in a couple of days when i dig them out)
> 
> Neil

As promised:- der Mouse (mouse@mcgill-vision.uucp)

Here is an extract from the top level README - remember this was for
4.3BSD and operates at the kernel level. You also get a pmapd, an nfsd
and a mountd. I attach the README to show that installation is easy
and well thought out, I RTFM'd and it worked first time.

Neil

(The rest is README)
``
...To install, first install the patches found in the sys subdirectory.
There are some patch files there; each of these is a patch that should
be applied to its corresponding file under /sys (for example,
h/inode.h.patch is a patch for /sys/h/inode.h).  Apply these patches
(you should probably keep copies of the originals so you can back
things out if you want to).  If you have Larry Wall's patch program,
you can feed the patches to it.  If not, you can get patch or simply
apply them by hand (none of them are very complicated).

Make a directory /sys/mnfs and copy the contents of sys/mnfs to it.
The Makefiles in some of the subdirectories assume that this directory
is called /sys/mnfs for purposes of a -I option so the compiler can
find three include files; you can change the name, but you will have to
change the Makefiles to match and you will have to change a file name
when editing the conf/files.MACHINENAME file during the kernel
installation.

As distributed, the mount daemon reads a file /local/etc/exports which
is similar to Sun's /etc/exports file.  If you wish to change the
pathname the mount daemon uses to find this file, edit user/mountd.c
and change the initialization of exportlist[], right at the top just
after all the includes (line 20 or so).

Now you can run `make' in each of the subdirectories aux, librpc,
libxdr, and user; but note that the other three must be finished before
it will succeed in user.  It is essential that you patch the .h files
in the previous step before attempting this step.

You now have the user level built.  Now to install the kernel changes.

First, configure it in.  In /sys/conf you should have a file named
after your machine (this is the argument you give to /etc/config).
Edit this file and add a line

options		MNFS

Now edit another file (create it if necessary) in /sys/conf,
files.MACHINENAME (where MACHINENAME is your machine's name), and add a
line

mnfs/mnfs.c		standard

Now rerun config and remake your kernel.  Test it, and when you are
sure that installing the kernel support hasn't broken anything, you can
continue.  (It is OK to have the line in files.MACHINENAME for a
non-NFS machine, because if the "options MNFS" line is not present,
mnfs.c is effectively empty.)  Notice that your machine name is
specified two places.  One is the name of the config file, the argument
you give to config, and the other is on the "ident" line in the config
file.  I am not sure which one config uses as the machine name when it
looks for the files.MACHINENAME file.

'' ... ``
The rsize and wsize options to mount are necessary because 4.3 limits
UDP datagrams to a size smaller than Sun uses for NFS.  This limit is
easy to raise; in netinet/udp_usrreq.c, change the values for the
udp_sendspace and udp_recvspace variables (on both the server and
client machines).  We have udp_sendspace set to 10240 and udp_recvspace
set to 20512 and find there's no need for the restricted rsize and
wsize.  The rsize and wsize can probably be bigger than above for stock
4.3, but I am not sure how much bigger.

If you have any problems, questions, whatever, just send me mail.

					der Mouse

				(mouse@mcgill-vision.uucp)