![]() |
COS 318 : Operating system
Fall 2002, Princeton University Project 3: Filesystem |
In Project 1, you grabbed data from the standard Unix filesystem when generating pages for your web server. Now, you get to build the backing filesystem yourself and (slightly) modify your server to interact with it. This project is not conceptually difficult, but will probably be a fair amount of coding.
Submit your final solution electronically using the following command:
/u/cs318/bin/318submit 3 README Makefile (list of files)
The submit command copies your files to the directory /u/cs318/submit/UserLogin/number and lists all the files that you have submitted for assignment number. UserLogin is your user account name. If you execute submit after the project deadline, your files are placed in directory number_late. You can run submit more than once, and you can submit partial lists of files.
Each group needs to submit only one copy. This means that only
one of you needs to submit.
Within the filesystem, start with the creation of files and try to get that working properly. Then build directories on top of that mechanism, and finally work on directory listing support. Not only is this a logical way of approaching the project, but in the event that something doesn't work, hopefully you'll get as much partial credit as possible.
Secondly, don't make the mistake of trying to change the high level interfaces too much. Assume you have a working server or can get a good reference server from Project 1, and then just introduce wrappers for the relevant system calls. By having wrappers that can either call the real call or your replacement, you'll be able to do testing quickly and efficiently. If you change the high-level interfaces, you won't have this luxury.
Finally, if you're feeling brave and want to allow your partner access to files, you should be able to play around with the unreadable directory tricks we discussed in class. You can create a strangely-named intermediate directory which leads to the real, readable directory. You can make the files in this directory world-writeable, so unless someone else got hold of your strange intermediate directory name, it's unlikely that anyone else will be able to modify them.
CS318 Staff