Subversion Repositories Code-Repo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
141 Kevin 1
Student Information
2
-------------------
3
Kevin Lee - klee482 - group244
4
 
5
 
6
How to execute the shell
7
------------------------
8
The shell can be started by running ./esh
9
Basic functionality can be tested by running ./stdriver.py -b
10
Advanced functionality can be tested by running ./stdriver.py -a
11
 
12
 
13
Important Notes
14
---------------
15
A more comprehensive test for exclusive access can be done by
16
running/suspending vim from inside the shell.
17
 
18
 
19
Description of Base Functionality
20
---------------------------------
21
The shell implements the following built in commands: jobs, fg, bg, kill, stop.
22
The shell also implements \^C and \^Z to stop and suspend foreground 
23
processes. For each specified pipeline (seperated by ;), the first command
24
is checked to see if it is a built in command. If it is, the built in command is
25
executed and all following commands in the pipeline are ignored. The command
26
jobs outputs a list of all background jobs and the state of each job along with
27
a job ID. The job ID can then be used by commands fg, bg, kill, and stop. \^C
28
kills the current foreground job (including the esh shell) and \^Z suspends the
29
current foreground job.
30
 
31
 
32
Description of Extended Functionality
33
-------------------------------------
34
The shell also implements I/O redirection, pipes, and exclusive access. 
35
Multilpe commands can be chained together using '|' so that the output of 
36
the first process goes to the input of the second process. I/O redirection 
37
is also implemented so that a file can be used as the imput to the first 
38
command using '<' . The output of the last process can be directed to a file 
39
as well using '>'. Appending the output to the specified file works as well 
40
with '>>'. Exclusive access is also implemented using process groups and
41
terminal access to allow programs such as vim to work.
42
 
43
 
44
List of Plugins Implemented
45
---------------------------
46
N/A