Viva file system, designed by Eric Herrin, implemented for Linux by Shankar
Pasupathy, enhanced by Vamsi Anne Krishna.

test/   	test scripts, results of tests
utils/  	utility programs: mkfs, fsck, mount
viva.2.0/  	viva source for Linux 2.0.x
doc/  		documentation
README		this file
TODO		wish list

				VIVA filesystem - README 
				------------------------
This VIVA distribution contains the following files:
README (this file)

This file contains instructions to install the VIVA filesystem in Linux.

Version 1.0 runs on Linux 1.2.8  (not included in this distribution)
Version 2.0 runs on Linux 2.0.0 - both have been tested and benchmarked.
Viva 2.0 supports fragments and logical blocks.

If you plan to install VIVA on any other version of Linux, read the
instructions at the end of this file.

After you get the version you need, run the script install.sh which is part
of both VIVA distributions. When it finishes, you should recompile the
entire kernel, typically doing a make config;make clean; make dep; make zImage. 
The make config is important since it will configure the kernel so that VIVA
source code is compiled with the rest of the kernel. Follow the instructions
in /root/linux/README for further details on how to compile a Linux kernel.

You need to make and install the utility programs: cd utils; make install.
Make will install the programs mkfs.viva and fsck.viva in
the directory /sbin, and the mount program in the directory /bin. So
make sure that you add /sbin to your path after you recompile the kernel.
mkfs.viva, fsck.viva, and mount are based on the util-linux package. The
source for the VIVA related part of this package is available with this
distribution. 

These versions of VIVA have some limitations, and these are listed in the
file TODO. We'd be glad to see someone remove these limitations from VIVA.
There are suggestions on how to do this in the TODO file, and it should take
only a few weeks to make these changes.

We'd like to hear from you if you've successfully installed and used VIVA, or
if you have any questions. Send email to: raphael@cs.uky.edu, or
vamsi@cslab.uky.edu (more recent address: vamsi@Resonate.com).

To install VIVA in Linux kernels not listed above:
1. Do an fgrep "b_dirt" /root/linux/fs/minix/bitmap.c
If you find any instance of b_dirt in the file minix/bitmap.c, download
VIVA version 1.0.
Otherwise, download VIVA version 2.0
2. Run the install.sh script
3. The script applies patches to several files. If a patch fails, edit
the file for which the patch failed, manually. When you edit the file, 
for every set of statements that contain the word "minix", create 
similar statements with the word "viva". Typically, the files that may
cause problems are /root/linux/fs/Makefile, and /root/linux/fs/filesystems.c
Config files have changed from Linux 1.2.8 to Linux 2.0.0. In Linux 1.2.8,
the kernel config file is in /root/linux/arch/i386. In Linux 2.0.0, there
are several config files, and the one we need is in /root/linux/fs. Edit
the config file so that VIVA is an option during a kernel config.
4. Send us an email telling us whether you succeded or failed in installing
VIVA.
