Linux System Internals
The Linux System Internals course at Sankalp Tech provides in-depth knowledge of how the Linux operating system works under the hood. This program focuses on understanding the core subsystems — processes, threads, scheduling, memory management, system calls, file systems, and synchronization.
Whether you’re a fresh graduate or a working professional aiming to build a strong system-level programming career, this course helps you gain deep OS insights and hands-on experience.
Curriculum
Program Build Tools & Utilities
- Compiler Stages gcc()
- Building using the Makefile
- Binutils to decode the executable file formats – nm, objcopy, objdump etc
Working with Files
- Overview of files in Linux
- Linux File structure
- File related functions
- Opening a file & performing a read/write operations
- Opening a file in different modes
- Program to copy a file Seeking a file
Linux Processes
- Need for Process
- Creating a Process and Creating multiple processes
- Distinguishing between the child & parent processes
- Creating & Executing the process
- Waiting for the process termination
- Zombie & Orphan process
- Demonizing the process
Posix Threads
- Need for Threads
- Process Vs Thread
- Creating thread with pthread APIs
- Waiting for thread termination
- Creating a detached thread
- Cancelling the threads
- Modifying the thread attributes to create the detached thread
Memory Managment
- Need for memory management
- Memory Partitioning – Paging & Segmentation
- Virtual Addressing & its need
- Page Tables
- Memory Manipulating Calls
Inter-Process Communication Mechanisms
- Need for IPCs
- Using Pipes & FIFOs
- Pipes to communicate amount the related processes
- Pipe Communication among unrelated processes
- Message Queues
- Shared Memory & Semaphores
- Synchronizing the access to Shared Memory
Managing the signals
- Need for Signals
- Overview of Signals in Linux
- Handling the signal
- Blocking/Masking the signals with signal sets
- Alarms & Timers
Thread Synchronization
- Need for Synchronization
- Using Mutex
- Using Semaphores
- Reader / Writer Lock
- Conditional Variables
Ready to master Linux internals and become a stronger systems developer?
Enroll now and explore Linux from the inside!
