Project 2 - The Cow Shell
A mini command interpreter
due: 12:01 AM, Thursday, October 17, 2002

You may work individually or in groups of two or three on this project. Groups must be formed by Tuesday, October 8.

Introduction

For this project you will write a C program called the Cow Shell (cowsh), a mini command shell interpreter. cowsh is similar to familiar Unix shells such as the Bourne shell (sh) the Bourne-Again shell (bash), and C shell (csh, tcsh). You will learn about process creation, implementation of pipes, input/output redirection, background processes, signals, interrupt handling, and the use of some system calls.

Description

Like the familiar Unix shells, cowsh should issue a prompt (perhaps "cowsh#"), at which it reads commands from the user and executes them. When the user issues the exit command, cowsh should terminate.

Your shell should interpret the following commands:

Implementation Notes

Grading

The project will be graded out of 75 points, and will be based on correctness, design, documentation, and style. An on-time submission that correctly implements and documents the required features can earn up to 65 points. The remaining 10 points are for the implementation and documentation of additional features of your choosing. Late submissions are not eligible for credit for additional features.

Submission

By 12:01 AM, Thursday, October 17, 2002, You should submit a file cowsh.tar that includes the following:

Honor Code Guidelines

Collaboration within a group is unrestricted. You may ask the instructor or teaching assistant for help. Outside help (classmates, friends, reference manuals) with the programming language (syntax) or computer systems is permissible, but help with the design of your program is restricted to your group members, the instructor, and the teaching assistant. Outside references such as language manuals are permitted. Any other collaboration or consultation is prohibited and will be considered a violation of the Honor Code. If you wish to use or refer to any software libraries or outside source code beyond the standard C libraries, check with me first. If in doubt about anything related to Honor Code, ask now and avoid problems later!