Project 0 for CS222 (No due date, subject to change)
Principles of Database Management

Professor Chen Li
Fall 2007
University of California, Irvine

I. Introduction

In the project 0 you shall familiarize yourself with the implementation of a FileSystem. The necessary C++ code for the basic functions shall be provided. This document aims to provide you with the necessary information required to get project 0 working on your individual computers.
Project 0 involves setting up the basic file system required for continuing with projects 1 and 2.
Please refer to project0.pdf. It details all the necessary functions and their respective motivations for being implemented.

II. Overview of steps

In order to get it up and running on your PCs, at a high level you need to do the following steps:

III. Detailed instructions

1. Download the zipped code made available.

Download the code from http://www.ics.uci.edu/~cs222/project0/project0.zip

2. Installing cygwin and related tools

  1. Go to http://www.cygwin.com. Familiarize yourself with cygwin's purpose and structure (e.g. click on the links in the gray box on the left of the screen). We need the cygwin basic environment, as well as the zip and gnu C/C++ modules that can be incorporated into a cygwin installation.
  2. Click on "Install or update now!", and save the setup.exe file to your hard drive.
  3. Launch Setup.exe; click Next.
  4. Make sure "Install from Internet" is selected; click Next.
  5. We recommend leaving the directory and other settings on this screen as they are; click Next.
  6. Here is selected a directory in which installation files will be stored. You can leave the default in place or change it, as you like. Click Next. (This directory can be deleted if you wish once cygwin is installed, but if you need to update or augment your installation, it will take less time if it is present.)
  7. You are likely directly connected to the Internet (be it by dialup, DSL or an on-campus connection). If so. leave this setting as is. If you are using a proxy server (and you will know if you are), click on that choice and supply the Proxy Host and Port. Click Next.
  8. Choose a download site; best is one in that is likely in the states, that is, a site that does not end in a two-letter country abbreviation: closer is usually faster. You will need the packages listed below and their dependencies.
  9. The Select Packages window will appear; Make sure the following modules are selected (installing additional components should not hurt anything, but will require a longer download and perhaps much more disk space). To install the given component click on the category (e.g. Archive) the click on the Skip next to the service (e.g., unzip). It will change to the latest version number and bin should become checked. These selections will cause other components to be automatically selected; they are needed to support the chosen one. Leave them selected.)
  10. Click Next; installation should commence. It can take several minutes for installation to complete.
  11. We recommend having a desktop icon and Start menu entry for cygwin, so leave the two boxes on this screen checked. Click Finish. Installation is complete. Click OK.

3. Compiling and executing the code.

For compilation and execution of the code, please goto the build directory and execute 'make'. This shall compile the code and place the executable binary in the directory build/bin. You can run the code by typing ./fs in that directory.

4. Test the system for the basic functions.

You may want to test if the basic functions are all working correctly. One sample test case sequence is available in doc/testing.doc. Please check and ensure all basic commands are working.

5. Use the code for projects 1 and 2.

Once done, you have a working FileSystem to play around with. Now you can start looking at the exciting challenges of projects 1 and 2.
Please note that the provided code is not aimed to be fool proof. For example, it only works for the kind of inputs/commands it expects to receive. You are allowed to modify the code to make it more robust as and when more appropriate.

For any problems, questions or suggestions about this page, please contact chenli + AT + ics.uci.edu. rev. Thursday, October 04, 2007 - 11:41:54