Home CprE 308 Shell Design
Post
Cancel

CprE 308 Shell Design

Shell Output

Overview:

During CprE 308 we were tasked with creating our own version of a shell for interacting with a linux operatin system. Whereas my CprE 381 project was mostly hard work and applying difficult concepts, this project was more creative and enjoyable for me. I ended up calling my shell dsh (david shell) and have it hosted at on my github.

My Role

As this wasn’t a team project I was responsible for the entire development of this shell. I started by creating a basic input output system that allowed a user to enter commands. There were three main types of commands my shell needed to be able to handle. Fisrt I needed to be able to handle standard commands with no arguments (ls), commands with arguments (ls -la), and commands that are being run in the background, (ping &).

Lessons Learned

Most of this project was review for me as I had written a fair amount of code in C before attempting this. The portion of my shell that I learned the most from was the backgrounding and process management code. Before taking this class I hadn’t ever needed to write multithredded applications. Through this project and the other major assignments in this class I was forced to confront these unknowns and become at least a little bit familiar with the different ways you’re able to make C programs more efficient by spinning off large work loads into seperate threads.

Resources Used

I used so many stackoverflow posts and a lot of help from the TA. On top of informal help, I also spent a fair amount of time reading the standards for “MIPS assembly language” to ensure that my instructions were being parsed correctly

This post is licensed under CC BY 4.0 by the author.