January 8, 2004 Adrienne Noble Section 1 January 8, 2004 Adrienne Noble
Today Questions? A little about my background Projects Lecture, homework, project 1, etc A little about my background Projects Lab and software information Project 1
Class Projects 4 projects over the quarter Project 1 Project 2 Mostly group projects Project 1 Add a new syscall to linux and write a simple shell program Project 2 Implement synchronization primatives and write a multithreaded webserver Project 3 Implement and analyze different paging algorithms Project 4 Enhance a simple file system to handle bigger files and longer names
Project Tips Start Early! These are large projects that will take a good deal of time, so don’t procrastinate Refresh your C skills (or learn them for the first time) http://www.strath.ac.uk/IT/Docs/Ccourse/ http://www.howstuffworks.com/c.htm http://www.le.ac.uk/cc/tutorials/c/
Project 1 Two parts Recommended first steps Add a new syscall to the linux source code Write a simple shell program Recommended first steps Read through the entire lab Go through the lab info page This is well worth the half hour or so it will take you Write a “Hello World” program in C Start the shell program
Lab Information VMWare is on all the Windows machines in lab 006 Use spinlock and coredump!!! We have our own unix machines dedicated solely to this class, so please use them It’s very easy to bring down a server while doing projects in this class, and I doubt you want to be the one to kill attu
VMWare What is it? Why use VMWare? A software simulation of an x86 computer This means that the OS thinks it’s running on a real machine Why use VMWare? It allows you to return to a known good state No matter how badly you screw up things in VMWare, you can always restart it
Syscalls What do these syscalls do? Fork Execve Wait