Project 2a: The Unix Shell There are three objectives to this
assignment: In this assignment, you will implement a command
line interpreter or, as it is more commonly known, a shell. The
shell should operate in this basic way: when you type in a
command (in response to its prompt), the shell creates a child
process that executes the command you entered and then prompts
for more user input when it has finished. The shells you
implement will be similar to, but simpler than, the one you run
every day in Unix. You can find out which shell you are running
by typing Your basic shell is basically an interactive loop: it
repeatedly prints a prompt prompt> ./mysh mysh> You should
structure your shell such that it creates a new process for each
new command (there are a few exceptions to this, which we will
discuss below). There are two advantages of creating a new
process. First, it protects the main shell process from any
errors that occur in the new command. Second, it allows for
concurrency; that is, multiple comman