k-langer/Simple-Shell-3600
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
1) Authors Javier Muhrer Kevin Langer #CS3600##Project 2) developement: -------------------------------------------------------------------------------------- Developed on ISA: x86-AMD64 Linux: 2.6.31-23-generic-pae gcc: (Ubuntu 4.4.1-4ubuntu9) 4.4.1 Using Compiler flags: gcc -std=c99 -O0 -g -lm -Wall -pedantic -Werror -Wextra 3) Installing -------------------------------------------------------------------------------------- Compile 3600sh.c and run the 3600sh binary. 4) Features -------------------------------------------------------------------------------------- Is/Does: A simple shell used for launching programs. A program that handles output, error, and input redirection. A program that handles escape characters. A shell that supports cd. A shell that mantains a current working directory. Allow for background processes to run. A stable and memory clean shell. Is not/Does not: Support high level bash features such as scripting, history, or completion. 5) Development Notes ---------------------------------------------------------------------------------------- This project was the first of CS3600's projects. It is the first time out team worked together as a team. We started this project early and worked on it sporadically throughout the project timeframe. Git was used to version the code. As a result, our team was able to work on this project independently, only meeting to work specifically on the project at the very beginning. Otherwise, communication happened electronically, between classes, and work was done whenever either of the team members had spare cycles. Parts that needed to be done where mentioned in the git comments or in a TODO comment in the code. Bugs were identified using the test scripts. A wrapper for the test script was developed to isolate the tests that were failing and forward those tests into a separate file for further investigation. Likewise, corner cases were tested with custom test scripts. Special attention was paid to make sure that the code is stable. Using perl's ability to generate large inputs and testing corner cases of escape characters and redirection. The ability for the program to handle large inputs was tested. Likewise, using top the memory footprint of the design was analyzed (3600sh uses about 4x less memory than bash on the CCIS machines and this does not change significantly with operation). The only extra feature that is currently implemented in 3600sh is the ability to support cd. This was added because it added because it added a high level of extra functionality with little overhead.
About
A simple shell (CLI)
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published