This repository contains the solutions to the assignments from the Introduction to System Programming in Linux playlist on YouTube by Eng. Reda Maher!
This playlist is designed to help you understand the basics of system programming in Linux and how to write efficient programs using system calls in C.
This course covers the following topics:
- An introduction to Linux system programming
- Understanding the Linux kernel and system calls
- File I/O and process management in Linux
- Partion table
- And more.
To enhance your learning experience, we have included five assignments that will help you implement the Femto shell using C system calls. The assignments are as follows:
-
Assignment 1: Implement a basic shell program that can echoes any command entered by the user.
-
Assignment 2: Extend the basic shell to support some Unix Utilities (pwd, echo, cp, mv).
-
Assignment 3: Add support for external commands and local & environment variables .
-
Assignment 4: Implement a program similar to
fdisk -l
. -
Assignment 5: Implement a program for
ls
command.
To follow along with this course, you will need:
- A basic understanding of C programming language
- A Linux machine or virtual machine (e.g., Ubuntu, Debian, CentOS, etc.) to run the code examples and complete the assignments
- A text editor (e.g., Vim, Emacs, Nano, etc.) to write C code
- A terminal emulator (e.g., GNOME Terminal, Konsole, xterm, etc.) to compile and run the code
We hope you find this course useful and informative. By the end of this course, you should be able to write efficient system programs using C system calls in Linux. Good luck and have fun!