Instructions for the Shell Project
What to do
Write a shell with the following functionality
- Execution of build-in commands (at least: exit, help; but you will find interesting to implement also 'cd', 'pwd' etc.)
- Execution of external commands via exec syscall (in foreground and background)
- Redirection of input and output (<, >, >>, <<,)
- Pipes (unlimited sequential pipes, p.ex. cmd1 | cmd2 | cmd3....)
- Job control (suspend jobs, put in background, foreground etc.)
Recomendations
We strongly recommend that you
- Write your code in English (so that more people can read it). This include name of variables and functions, comments, documentation.
- Add an open source license to your software and indicate the authors as the copyright holders of the code (so that one cannot take if from you when you publish it on the Web)
Rules
- Use exclusively the libc, and nothing else,
- o, not even readline lib (if you want to implement history functionality (congratulations), make it yourself.
- es, you can use POSIX semaphores
- Use gcc as the compiler
- Upload your source into your repository regularly, according to the schedule
Due date
- The work shall be finished by April 14th 2009
- We will evaluate what is in the repository by this date
Evaluation
- Your shell will be downloaded from the repository and tested
- The instructor and the monitor will evaluate it
- Other experts from industry or free software community may be invited to evaluate it also and help to assess the correction of the project
- The scores will be based on those evaluations