CS 344 Autumn 2007

Semester Project

The CS 344 semester project will be done in a group of 2 to 4 students. All students in the group are expected to do a roughly equal part of the work of the project. There will be a peer-evaluation component of grades given on the project. Groups will be assigned by Monday, September 17. Please let your instructor know what you would prefer to work on.

Objectives:

  • To give students experience with working in groups.

  • To give students practice and experience in technical writing.

  • To give students practice and experience with making presentations.

  • To give students practical experience in solving technical problems.

  • To let students pursue a relevant topic that may be of special interest to them.

  • To give students experience in researching and learning about a topic of current interest. This should help them with lifelong learning later in their careers.

  • To teach students about information literacy in the area of computer science. "Information Literacy is the ability to know when there is a need for information, to be able to identify, locate, evaluate, and effectively use that information for the issue or problem at hand."

Topics:

For the project, you will explore some area related to operating systems.

Some suggested ideas:

  • Wireless sensor nodes. One can now put wireless battery-powered "motes" in the field to measure various environmental conditions. We have two example motes that you can work with.

  • Virtualization. The practical part might be to work with the open source virtualization package Xen. See: http://xensource.com. There are many articles in trade magazines on different aspects of virtualization. Since there are so many aspects of virtualization, more than one team could work on this topic.

  • Rootkits. A rootkit is software intalled on a system to hide itself and and other software. It is designed so that the normal system tools for looking at files, processes, etc. don't show what is intended to be hidden. A year ago at this time, a rootkit was discovered on a Sony commercial CD, and now a rootkit has been discovered on a Sony commercial USB disk. There are several rootkit detection and removal packages.

  • Buffer overflows and OS-related methods of prevention (see chapter 15 of the Silberschatz text.)

  • A particular embedded Linux distribution. See http://www.linuxdevices.com/articles/AT4525882120.html. See also chapter 19 of the Silberschatz text.

  • Prex is an open source portable real-time OS for embedded systems. It is under current development, apparently by amateurs (without the support of an commercial venture). It would provide a good opportunity to see how a real small-scale OS is implemented. You could look into one component of this, say thread scheduling. See:

  • Multimedia Operating Systems. See chapter 20 of the Silberschatz text, and see http://www.linuxdevices.com/news/NS4243110514.html for an open source multimedia middleware project that has just achieved its first stable release after 7 years of development.

  • Device driver. A very challenging project would be to write a device driver, either for Linux or for Windows. I can't give you much help on this, and documentation is not great.

  • Honeypots. A honeypot is a system designed to attract hackers or malicious software so that the kinds of attacks can be analyzed.

Practical component:

The project is to include a "practical" component. For example, if your project is on buffer overflows, you should try out at least one example of a buffer overflow. Or if your project is on virtualization, you should try out some virtualization environments. For the embedded systems topic, it may be possible to use an old PC as a platform.

Research component:

The project is to include a "research" component. This component should reference articles that you find in publications, web pages, etc.

Deliverables:

Each team will make a short presentation, with handouts, describing their plans in the week of October 2nd to 6th or the week of October 8 to 12th.

Each team will make longer presentations in the week of November 12-16. Each team member must contribute roughly equally to the presentation.

A draft of a written report will be due with the presentation. The written report will be divided into sections written by different team members. Each section will be specifically edited by a second team member, and the editor or editors will be identified. Then, I will give you feedback, and a revised and final report will be due December 5.

The written report must be posted as part of the e-portfolio of the team members. For more details, see e-portfolio_requirements.html .

Resources:

There is a modern 64-bit PC in Social Science 421 with Xen installed on it. We have older PCs that you could use for embedded systems projects.