Unix Shell Implementation

Understanding file tables, redirection, piping and system calls in Unix.

The assignment involved writing our very own command interpreter (shell) using the Python programming language. It needed to be able to run in an interactive mode or accepting files as arguments.

python3 mysh.py [filename]

Of all the many shell interpreters out, there the aim is replicate expected behaviour in BASH (Bourne Again SHell). By far the most difficult, and most interesting objective was to properly implement redirection and piping. A particular source of frustration was managing to somehow fork bomb my computer repeatedly… StackOverflow quickly became one of my most visited pages overnight.


© 2019. All rights reserved.