To start an NFS server:
======================

the code/runpractifs.sh scripts are used to start up the default one-node practi NFS file system.

To start the server:
(0) if in mac, run the portmap first by typing(the java version portmap in nfs.java has some problem 
   running on mac, don't know why.):
   sudo launchctl start com.apple.portmap 

(1) Modify the "runpractifs.sh" script to point to the correct Java path if needed, 

(2) run "runpractifs.sh"



Now, you'll have the NFS server running. In another window, as root,
do the following:
mkdir fake (if not there yet)
mount -t nfs localhost:practidir fake

# note "practidir" is specified in file "exports".

in mac: use "mount_nfs -2" instead of "mount -t nfs"


Now, you can type "cd fake" and start creating/renaming/deleting/reading/writing files.







How to hook your system instance with the NFS interface:
========================================================

1. write your own LocalInterface to extends NFSlib2/PRACTIFSLocalInterface
   example: case-studies/Pangaea/PangaeaLocalInterface.java

2. write your own FS wrapper to extends NFSlib2/PRACTIFS.java
   if the default PRACTIFS.java can't satisfy your FS requirements.
   example: case-studies/Pangaea/PangaeaFS.java

3. add hooks in nfs.java (add entries in ProcessArguments(String args[]) method)
   to start the server.

   if you don't need to run P2, see the code for run "practi" :
     - make an instance of URANode
     - make an instance of PRACTIFSLocalInterface
     - make an instance of PRACTIFS and hand the reference to "fs". 

   otherwise, (need to run both PRACTI & P2)
     see the code for run "pangaea"
     - create an instance of URAOverlogNode
       example: case-studies/Pangaea/PangaeaURAOverlogNode.java
     - hand the PRACTIFS instance reference to "fs"
