CS4411 Programming Assignment 1: Getting Started

Due February 10.

  1. Ensure that your CSUGLab account is active. You can check your status and set your password at http://www.csuglab.cornell.edu/userinfo.
  2. Log in to one of the CSUG Linux machines. You can use ssh from a UNIX system, or the SSH secure shell that is installed on all of the CSUGLab Windows machines.
  3. Create a directory called cs4411 to hold your semester project. Inside that directory create a file called Makefile with the following contents:
    CFLAGS = -g -Wall `pkg-config --cflags fuse` -DFUSE_USE_VERSION=26
    LDFLAGS = `pkg-config --libs fuse`
    
    all: server
    
    .PHONY: clean
    clean:
    	rm -f server
    
    Make sure that the space before rm is a single tab character, not spaces.
  4. Create an initial, trivial server. Start with the hello world filesystem; put your code in a file called server.c.
  5. Run make to compile the server. Create a directory called mnt to serve as a “mount point”. Assuming the compilation succeeded, run ./server mnt and play around with the resulting filesystem that appears in mnt. When done, run fusermount -u mnt to unmount the filesystem.
  6. Change the server so that it provides another hard-coded file named goodbye with the contents “Goodbye, cruel world!”. When both hello and goodbye appear in directory listings and have the correct contents, submit your server.c via CMS.

Announcements

January 30.
The CSUG lab machine named schroeder.csuglab.cornell.edu is now installed with FUSE, and I have tested that I am able to run the hello-world server. You are now able to proceed with your assignment. If you have any troubles please let me know and I will sort them out.
January 27.
The CSUGLab machines do not yet have FUSE installed. Nonetheless you should work through step 4 right away, none of which depends on any special software. The delay is an inevitable consequence of the late decision to use Linux; bear with it, and I will announce when the machines are ready and you can build and test your code.