CIS 570 - Advanced Computing Systems Assignment 1: Objective
CIS 570 - Advanced Computing Systems Assignment 1: Objective
Assignment 1
Objective : The object of this assignment is to learn about system calls, creating an interface between the
operating system and the user
(command interpreter) and implementing an important part of an operating system.
Goal : Create a command-interpreter that will accept a few dos-like commands but execute in the unix
style.
Commands that should be supported - most of unix commands such as grep, clear, ps, in addition we will
support some dos commands such
as dir (which will list the files and directories in the current directory). The specifications are given below.
Specifications:
1. Like the dos environment your prompt should be the path of the current directory. (Unix system call getcwd - find the name of the current
working directory).
2. Your program should support the following DOS command. You don't have to worry about the
switches, but
implementing switches will get extra credit.
Dos
Unix
dir
ls
del
rm
copy
cp
move/rename
mv
type
cat
cd
cd
more file
md
mkdir
rd
rmdir
cls
clear
3. When executing these commands your program should fork a process and use execvp to execute the
commands.
4. Redirection (< and >) should work as intended on the Unix system.
5. Unlike dos, your program should support running the process in the background using the ampersand
sign (&). This means that the prompt
will printed and the command-interpreter will wait for the next command before the previous commands is
completely executed when & is used
following the command.
6. You should also implement the pipe in your program. A pipe (|) enables you to pass the output of the
Requirements:
Your program should compile and run on the Linux workstations (Lab DION305) (I recommend you use
gcc and ddd to compile and debugrespectively, remember for ddd to work on the executable it should have
been compiled with the -g option). Your program should contain a header displaying your name,
information on what the program does and instructions for compilation and execution. The program you
turn in must be your work. You may not discuss implementation or the solution with other members of the
class. Any form of cheating will result in an F in the course.
All references must be cited. Late submissions will be penalized 10% per day.