In this repository, you will find two main folders: intro_training and advanced_training. Each folder contains subfolders for tasks, classwork, and additional materials as necessary.
- Intro_Training
- Tasks: This folder contains tasks assigned for self-study or practice outside of class sessions. Each task includes a README file explaining it.
- ClassWork: This folder contains the work completed during class sessions.
- Advanced_Training
- Tasks: This folder contains tasks assigned for self-study or practice outside of class sessions. Each task includes a README file explaining it.
- ClassWork: This folder contains the work completed during class sessions.
- Project: This folder contains the final project and any associated materials (Heap Memory Manager).
- Linux History: A brief overview of the history and evolution of the Linux operating system.
- Command Line Usage and Build Process: Introduction to essential command line utilities and the process of building software in a Linux environment.
- Processes Management
- Process Overview: Understanding the role of processes in a Linux system.
- System Calls and Command Line Arguments: Exploring system calls used for process management and command line argument handling.
- Process Creation: Understanding the process creation mechanism and related system calls.
- Orphan & Zombie Processes: Explaining the concepts of orphan and zombie processes and how they occur.
- Bash Features: Introduction to bash scripting and its features for process management.
- Intro to Proc fs: Exploring the /proc filesystem for accessing process information.
- IO Redirection in the Shell: Understanding input/output redirection and piping in the shell for process communication.
- User Management: Managing users and groups in a Linux system, including user creation, modification, and permissions.
- Filesystems Management
- Introduction to HDD: Understanding hard disk drives (HDDs) and their role in data storage.
- Parsing MBR Partition Tables: Exploring the Master Boot Record (MBR) partition table format and parsing techniques.
- File System Formatting, Mounting, and Architecture: Understanding different file system formats (e.g., ext4, NTFS) and their architecture. Also covers the process of formatting disks and mounting file systems in Linux.
- Directories, Files, Links, and Permissions in the File System: Explaining the concepts of directories, files, symbolic links, and permissions in the Linux file system.
- Implementing "ls": Implementing a simplified version of the
ls
command to list directory contents.
- Creating Mini Distribution: Steps to create a custom Linux distribution.
- Static and Shared Libraries: Understanding and working with static and shared libraries in Linux.
- Variadic Functions: Using functions with a variable number of arguments.
- Universal I/O Model: Overview of the Universal Input/Output model in Linux.
- Processes and Virtual Memory Management: In-depth look at process management and virtual memory in Linux.
- Memory Allocation: Techniques and best practices for memory allocation in Linux.
- Users and Groups: Advanced topics in managing users and groups.
- Time in Linux: Handling time and date functionalities in Linux.
- Makefile: Writing and understanding Makefiles for building projects.
- SSH: Secure Shell (SSH) usage and configuration.
- Git and GitHub: Version control with Git and collaboration using GitHub.