Welcome to my System Programming Tasks Repository! Here, you'll find a collection of tasks I've completed, focusing on system programming under Linux. Throughout this repository, I've utilized system calls and developed a Pico shell capable of executing both built-in and external commands efficiently and simple harddisk reader that prints information about partitions.
I've successfully completed the "Intro to System Programming under Linux" training at STMicroelectronics. The training encompassed a variety of topics, including:
- Linux History
- Command line usage and Build Process
- Process Management
- User Management
- Filesystem Management
One of the standout projects I've worked on is the development of a Pico shell. Here's what it can do:
- Execute built-in commands such as
cd
,pwd
,echo
, etc. - Handle external commands by utilizing system calls for process management, I/O redirection, and command execution.
- Provide a basic yet functional terminal interface, replicating essential shell functionalities.
The repository is organized as follows:
FinalShell/
: Contains the source code for the Pico shell implementation .docs/
: Documentation and resources related to the project.tasks/
: Various tasks completed during the training period.
To explore the code and functionalities:
- Clone the repository to your local machine.
- Navigate to the
FinalShell/
directory. - Compile the Pico shell source code using your preferred compiler.
- Run the compiled binary to start using the Pico shell.
If you're interested in contributing to this repository or have any suggestions, feel free to open an issue or submit a pull request. Contributions of all kinds are welcome!
If you have any questions or need further assistance, you can reach me via email or through GitHub.
Happy coding!