Project - UNIX Shell and History Feature
This Project consists of modifying a C program which serves as a shell interface that accepts user commands and then executes each command in a seperate process.
A shell interface provides the user a prompt after which the next command is entered. The example below illustrates the prompt sh> and the user's next command: cat prog.c This command displays the file prog.c on the terminal using the UNIX cat command.
sh> cat prog.c
One technique for implementing a shell interface is to have the parent process first read what the user enters en the command line and then create a seperate child process that performs the command. Unless otherwise specified, the parent process waits for the child to exit before continuing. UNIX shells typically also allow the child process to run in the background -or concurrently- as well by specifying the ampersand (&) at the end of the command. By rewriting the above command as
sh> cat prog.c &
the parent and child process now run concurrently.
The seperate child process is created using the fork() system call and the user's command is executed by using one of the system calls in the exec() family.
I copied this text from the lecture book. It was the entry part of project page. The book is : Operating System concepts 7'th edition. Silberschatz, Galvin, Gagne ISBN:0-471-69466-5 pg:121
This project is organized into two parts
1- creating the child process and executing the command in the child
2- modifying the shell to allow a history feature.
Note: I need to all of the source code parts must be explained. For example you can take a screen shot of code and with arrows you can explain that tis parts for this, thsi part is for this bla bla...
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
Linux Open Suse 10.2