/New-Bash-Shell

Primary LanguageCMIT LicenseMIT

About The Project

It is a simple shell as a project for the course Operating Systems. The goal of the project is to let you get familiar with some process related system calls in Unix (or Linux) systems, including how to create processes and how to communicate between processes. The projects have to be programmed in C or C++ and executed under Unix (or Linux and alike).

Product Name Screen Shot

Realized Functions

  • pipe, which can executes a sequence of shell command separated by ";"
  • multi-user, many users can logins shell
  • socket commnuication, users use sockets communicate with main shell
  • Interrupt Handling, admin uses SIGQUIT signal to kill all user processes

Source Files Functions

  • The file UM.c realizes user manager.
  • The file shsh.c realizes the shsh shell.
  • The file user.c realizes the user.
  • The file admin.c realizes the admin.
  • The DesignDoc file, which contains the pseudo-code for UM and Shsh and the description of the major features of the program.

Built With

The Makefile that generates the executables from source code files. The Makefile generate 3 executables "UM.exe", "user.exe", "admin.exe".

Getting Started

Enter bash shell

$ make

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact