Project 1: Shell
Overview
The shell is a critical component in the daily lives of computer scientists, software engineers, and system administrators. It acts as the primary command-line interface for interacting with the operating system, enabling users to harness the full power of various OS features. In this case study, we delve into the development of 'nyush' (New Yet Usable SHell), a simplified version of the Unix shell
In the 'nyush' project, I set out to create a command-line interface that replicates core functionalities of a typical Unix-like shell. Key features of 'nyush' include:
- 1. Command-Line Interface : Users can enter commands directly, mimicking the familiar shell experience.
- 2. Program Execution : 'nyush' supports the execution of both built-in and external programs, expanding its utility.
- 3. Process Management : I implemented process creation, management, and termination, ensuring robust control over running programs.
- 4. Signal Handling : 'nyush' handles signals effectively, including support for Ctrl-C and Ctrl-Z actions.
- 5. Input/Output Redirection : Flexible file handling is enabled through input and output redirection.
- 6. Pipes : Users can enter commands directly, mimicking the familiar shell experience.