README 

1. Mountd and Nfsd servers:
	
	a. source directories:
		mtserver: for mountd.
		nfsserver: for nfsd.

	b. Use the Makefile to build both the mountd and nfsd in their
	respective directories.
	
	c. Run the mountd as follows:
		./mountd --port 4000.

	d. Run nfsd as follows:
		./nfsd --port 2049.

	e. Use the /usr/sbin/rpcinfo to check if both the servers are 
	running. 

2. Application-space client:
	
	a. Source directory:
		appcli: for application-space client.
	
	b. Use the Makefile to build the application-space client.
	
	c. Run the application-space client as follows:
		./appcli ipaddr path protocol.
	
	d. Tested with servers on the local host and the servers over the 
	network.

3. User mount program:
	
	a. Modified to support NFS Version 3 protocol.
	
	b. Source directory:
		mount : for user mount porogram.

	c. Use the Makefile to build the user mount program.	
		
	d. Run the user mount as follows:
		./mount -t nfs 127.0.0.1:/tmp /mnt
	
	e. Tested with servers on the localhost (loopback address).
	   
4. Kernel-space client: 
	
	a. Source directory:
		Kerncli: for the kernel-space client.
	
	b. Please take backup of the original files.

	c. Replace clnt.c in the linux/net/sunrpc directory.  
	
	d. Replace super.c in the linux/fs directory. 
	
	e. Replace the linux/fs/nfs directory with my modified files.
	
	f. Recompile the kernel. Please note that i have worked with a 
	kernel version 2.12-20.
	
	g. Boot with the new image.
	
	h. Run the user mount program as mentioned above. You should see a 
	successful mount at the appropriate mount point.
	
	i. Run tests on the mounted file system.

	j. All tests have been done with servers on the local host (127.0.0.1).
	No tests have been conducted over the network for the Kernel-space 
	client.
 
