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:
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.
Click on "Install or update now!", and save the setup.exe file to
your hard drive.
Launch Setup.exe; click Next.
Make sure "Install from Internet" is selected; click Next.
We recommend leaving the directory and other settings on this
screen as they are; click Next.
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.)
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.
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.
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.
Archive -> unzip
Archive -> zip
Devel -> gcc: C compiler upgrade helpers ( this will cause
gcc-core and gcc-g++ compiler to be installed)
You can also install an editor: Editors->vim or emacs
Use "make" as a build tool install it too: Devel->make
These selections will cause other components to be automatically
selected; they are needed to support the chosen one. Leave them
selected.)
Click Next; installation should commence. It can take several
minutes for installation to complete.
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.