Carnegie Mellon
SCS logo
Computer Science Department
home
syllabus
staff
lecture
projects
 
 

15-412 Projects


Project Archive

Here are selected entries from the project archive...

AC'97 Audio Device Driver for the Plan 9 research operating system
Status: Completed by Bankim Bhavsar and Deepti Chheda
Namespace crossings for the Plan 9 research operating system
Status: Proof-of-concept completed by Wes Filardo
Implement the CART page-replacement algorithm in the Linux kernel
Status: completed by Rahul Iyer
Port the Plan 9 research operating system kernel to 32-bit PPC Macintosh systems
Status: proof-of-concept operational; submission in progress.
An overlay file system for the Plan 9 research operating system
Status: completed by Chao-Kuo Lin.
Adapt OpenAFS to the relevant Linux 2.6 kernel cataclysms
Status: completed by Jonathan Curley.

Proposals

Useful proprosal elements (not all elements apply to every proposal):

  • Brief summary of what project does (link to summary page is fine)
  • Statement on what you want to add
  • Features of the existing code base:
    • brief outline of chunks of code base (e.g., per-platform "modules" vs. common-code "modules"), with lines-of-code breakdown by chunk
    • approximate percentage which is assembly language
    • status of compiler/linker/debugger tool chain (if non-standard)
    • license flavor
  • Elements of what you propose to accomplish:
    • Lines of code you expect to write
    • Type of code you expect to write (plug-in, device driver, mutate 1% of every existing file, ...)
    • Rough count of files you intend to add/change (add one 2-file module; lightly edit 100 files, ...)
    • Rough milestone list (four or five phases, with a rough estimate of how many weeks per phase)
    • Vague responsibility breakdown (Terry will work on X, Kelly will work on Y; or maybe: Pat will be the hardware expert and Lee will be the software expert)
  • Documentation
    • What necessary documentation do you already have?
    • What necessary documentation are you hoping you can find? Does the work depend on somebody agreeing to release something to you?
    • Are you expecting to rely on some body of source code as as documentation? If so, explain briefly.
  • Expected start-up obstacles:
    • Does the work depend on a language you don't fully know?
    • Will it be necessary to install, configure, and learn some emulation environment?
    • Is there a tool which you will need to adjust/extend for your work?
    • Are you proposing to extend a protocol which you don't yet know?
  • Hazards?
    • Is there some thing which you could discover which would put a stop to the whole project?
    • Is there some element of outside-CMU cooperation which might fall through?
  • Hardware/space resources:
    • How many machines of what type will be necessary?
    • Which machines do you plan to provide? Do you have spares?
    • What equipment, if any, do you hope to install in the 412 lab? How many IP addresses do you expect to need?

These are probably elements for a second draft:

  • As far as you know, are others working on similar goals?
  • How will you test your work?
  • What is the standard acceptance process for code in this project?
  • Project road-map: maybe a 20-item todo list, or a boxes-and-arrows dependency chart showing what needs to happen before other things.

[Last modified Sunday August 30, 2009]