Linux System Programming Techniques & Concepts (Udemy.com)
For Developers - Build Linux Programmable Libraries, Makefiles, Memory Management, Compilation & Linking, C Programming
Created by: Abhishek CSEPracticals
Last updated September 2024
What you will learn
- Learn Advance Programming Concepts in C/C++
- Develop and Integrate C/C++ Libraries
- Automate Build Process using Makefile
- Use of Function Pointers as Callbacks
- Static and Dynamic Libraries and Linking
- Compilation Process of a GCC Compiler
- Organize the code into Header and Source files
- Understanding Memory allocations, Heap Memory Management, Memory Leaks
- Stack Memory, Stack overflow, Stack Corruption, Stack Registers
- Paging Concepts and Page Tables
- Concept of TLVs
How it compares
Against the other 1,182 rated Udemy courses in IT & Software on CourseDuck:
- Rating4.6 out of 5higher than 67% of them
- Reviews1,566#292 of 1,183 by number of reviews
- Length14.3 hourslonger than 82% of them
- Last updatedSeptember 2024earlier than 61% of them
Course Description
There are already innumerable courses/tutorials on the internet/Udemy which teach almost every aspect of C programming language. All those courses sound the same, talk the same and deliver more or less the same knowledge. How is this course different from others?
The intention of this course is to make you ready for System programming Technical interviews, interview level - from Beginner to Intermediate. This course is for (future) Developers, not for testers or System Administrators.
I choose to create this course to fill the gap between novice/beginner and intermediate/Advanced Programmers. This course assumes that you are at least above average in programming (in any programming language, but preferable in C/C++) - know memory allocations, all kinds of loops, function calls, pointers etc. In this course, I won't teach C/C++ (there are already many courses on it online) but would teach programming techniques and low-level details regarding how C program works behind the scenes - All topics are very important from an interview point of view. My Target is to grow this course into Linux/C Bible.
Yet, I always feel, you need to outsmart your fellow colleagues in this era of stiff competition, and therefore, I tried this attempt to present you the wisdom and knowledge which is of utmost importance for a programmer. I have seen though students could write good C/C++ programs, yet they lack the clarity on how one should write better organized, Manageable, extensible, and programmable codes in the form of libraries. For example, Students are too good at competitive programming, yet do not know how to write a simple Makefile, the reason being, Academics do not teach and students do not care to learn.
In this course, I will cover the topics related to creating Linux System Libraries (release 1) with Advanced language-agnostic Programming Concepts (release 2) which can be well applied if you happen to become a programmer in other languages tomorrow.
The Concepts like MultiThreading, Thread-Synchronization, Socket Programming, IPCs, etc demand a separate course on each topic altogether. Currently, I have a course on IPC, pls check it out. These topics are out of scope for this course.
The Course shall be delivered into two Releases :
Release 1 Building and Managing a Library: This covers the basics regarding how one should create and organize his code as a Library.
Release 2 Memory Management Concepts: This covers Advance concepts on Linux Memory Management specifically. Please check the Table of Contents for more info.
Why you should *NOT* do this course?
1. Please Excuse this course if you are the ultimate beginner in C programming !!
2. There is no point of doing this course if you don't like hitting the keyboard, and are lazy enough to watch lecture VDOs only
3. If you want everything cooked and served on your plate.
Course Pre-requisite :
Above Beginners Level in C/C++ programming
Good to have basic OS knowledge
Zeal to excel and Code
No Third-Party libraries
Whatever logic you implement, you need to implement it from scratch. Like all my other courses, this course does not suggest taking the help of any third-party library to get the jobs done. The use of external libraries completely defeats the purpose of the course.
Warning: This course has auto system-generated subtitles which may not be perfect. Please disable subtitles at your convenience.
Curriculum :
**********************************************
Release 1 Building and Managing a Library
**********************************************
Section 1 : Introduction to Libraries
What is Library
Relationship between Library and Application
Ex : Doubly linked list as a Library
Quick Compilation Steps
Summary
Section 2 : Header Files
Relationship between Source and header files
Text Substitution Method
Text Substitution Method - Example and Demo
Section 3 : Preprocessing Directives
Problem of Duplicate inclusion of Hdr files
Pre-processing Directives
Solution to Duplicate inclusion of Hdr files
Section 4 : Correct way of Using Structures and Functions
Structures - Define and Use thumb Rule
Functions - Declare and Use thumb rule
The problem of Recursive Dependency
A solution to Recursive Dependency
Section 5 : Creation of Static and Dynamic Libraries
Resuming with Doubly Linked List Library
Quick Creation of Static and Dynamic Libraries
Linking with Static Library
Linking with Dynamic Library
Section 7: Understanding four stages of Compilation
Four stages of C/C++ Compilation
How Dynamic Library works ?
Dynamic Linking : Linking with Dynamic Library
Comparison - Static Vs Dynamic Linking
Section 8 : Building using a Makefile
What are Makefiles and why do we need it
Functions of Makefile
Makefile Dependency tree
Steps of Writing a Makefile
Assignment on Makefile
Section 9 : Run-time Programmable libraries
What are Programmable Libraries?
Steps to Program the libraries
Registering of the callbacks with Libraries
key_match callback
comparison_fn callback
Delegation of Application-specific operations to Libraries
Section 10 : Writing Iterators using Macros
What are Iterative Macros ?
Why we need Iterative Macros ?
How to Write Iterative Macros - For Trees and Linked Lists
Exercises
Section 11 : Glue Based Libraries and Data structures
What are the Glue Based Libraries?
Introducing Glthreads - A Glued LinkedList
Glthreads Vs Traditional Linked List
Structure field offset
GLThread Operations
Code Walk
GLThread Benefits
Instructor Details
- 4.6 Rating
1,566 Reviews
Abhishek CSEPracticals
I have been engaged with coding and software for a decade now. I am a Networking developer at MNC. My rich working experience is backed by graduation from IIT Bombay as an MTech specialist. I am restless for more in-depth knowledge, and always working out the ways to integrate what I know in practical ways. I am always happy to train and encourage people on Udemy – the next-gen education platform.
I will help you to strengthen the networking concepts and fundamentals in a very practical way. I also hones in System Software Development, Linux System Programming and Network Software Development. I love to create courses on unique non-standard topics, and projects. Check my catalogue, you will find couple of project based courses which you can add to your resume.
You’ll complete assignments and work on a project where you’ll use all the theory. I make sure you build a proper understanding and that you’ll get all the questions and doubts answered. Let me take the privilege to guide you and bring useful additions to your resume !
More courses by Abhishek CSEPracticals
Part A - Multithreading & Thread Synchronization - Pthreads (2025)
4.5 (866 Reviews)
Provider: Udemy
Time: 16.5h
$79.99
Linux Timers Implementation & Design in C (2022)
4.6 (111 Reviews)
Provider: Udemy
Time: 3.8h
$49.99
More IT & Software courses
D3.js Data Visualization Fundamentals - Hands On (2026)
4.9 (3,917 Reviews)
Provider: Udemy
Time: 4.6h
$49.99
Hands-On Training: Streaming Data with Apache Kafka on Azure (2025)
4.9 (103 Reviews)
Provider: Udemy
Time: 3.7h
$10.99
Oracle Grid Infrastructure and RAC using Oracle Database 19c (2026)
4.8 (2,499 Reviews)
Provider: Udemy
Time: 8.7h
$19.99
PowerShell Scripting & Automation: The Complete Hands-On (2026)
4.8 (1,750 Reviews)
Provider: Udemy
Time: 9.6h
$11.99
AWS EC2 Crash Course + Load Balancing with Demos and PDFs (2025)
4.8 (866 Reviews)
Provider: Udemy
Time: 3.7h
$19.99
Reviews
By K S Santosh on 6/14/2024
The course content is very easy to follow. I learned about how malloc and free functions work under the hood, which was always a mystery to me. The theoretical knowledge about stack, heap and virtual memory, blowed my mind. I had no idea about this even though I have been coding in c for so long. The course really made me intreseted in linux OS and now I am venturing into other topics related to this. Overall this course will take you a level above in programming and you will get to understand the working of C on linux OS.
By Yu-Cheng Kuo on 4/30/2024
(1) The coding style the instructor adopt is kinda weird and quite different from K&R style. (2) I don't think iterative macro (or iterator macro) is something worth mentioning. In addition, it's confusing. There's almost no info on this if you google it and the most recent thread discussing this on Stackoverflow is about 10 years ago. (3) And the course would be better if the accent of the instructor could improve.
By Amr othman on 5/17/2023
so good so far , you must be aware of data structure before enrolling in this course , you will learn a lot of techniques for me he made his promise to take my programing skill to the next step and that what happen with me , so thank you Abhishek for your effort and to make such great courses available to us. i already purchased all of his courses, meet you in the next course , heap memory manager while(Abhishek){ courses->next; }
By Joshua Lapo on 1/10/2022
The instructor was very good at simply explaining low-level topics. Most of the assignments were well-thought-out, but a couple in the paging section could have used some more examples to teach the procedures on calculating memory size. Overall a great course for intermediate programmers already familiar with the C programming language that want to learn more about Linux.
By Matthew Zito on 7/31/2021
Yet another incredible course by CSEPracticals. The instructor's knowledge is *vast* - definitely my favorite instructor on Udemy now. Seriously, if you want to understand how C and programming in general works under the hood, take this course. I really enjoyed that this course was more theory-heavy than the others. Lots of valuable information such as how malloc / calloc / realloc and heap memory works, how memory mapping and paging works, 36 bit vs 64 bit, etc. The theory is accompanied by tons of analogies, illustrations, and examples along the way. There's a LOT of information in here that you will absolutely need to know for interviews and professional software development. Excellent stuff!
By Nagarajkumar on 10/10/2020
Thanks for offering this course, got a better understanding over programming concepts and memory management. In demand paging, you mentioned CPU will locate the swapped out page, could you add how it will adding? In Multithreaded process you mentioned about stack, what does the stack pointer points to since it has to manage process's stack as well as thread stack
By Yuriy Prokofyev on 8/15/2020
When I started this course I was skeptical about the ability to explain all the topics that are listed in the Course Content. But, I changed my mind after a while. Yes, this course might suffer from, let's say, low quality slides and pure sound but if you follow instructor carefully you we see that the value of the course is the information and the simple explanation of a quite "hard to understand" topics. I've had some background in OS area before I started this course and wanted to brush up my knowlege, and must say I found lots of valuable things that filled the gaps I had in understanding the way OS processes works. It is actually can be applied to the Windows OS as well. Thank you guys!
By María on 3/13/2020
El inglés no es mi primera lengua y aún así se puede seguir el curso sin problema: la dicción y el ritmo son impecables. No puedo aún valorar cómo se va a abordar por el profesor el salto conceptual que necesariamente se va a tener que producir entre los primeros módulos, más básicos, y el tratamiento de la memoria: memoria virtual-física, paginación, stack-heap. Será interesante.
By Junaid Siddiqui on 12/7/2019
A truly amazing course with a very deep dive into the Linux system. But it went to deep into memory management instead of covering other important aspects like package managers, pthreads, sockets and files/resource which would have been more suitable to this course and would have been helpful in creating some useful Linux application. Good Content... But some things could have been compromised like paging and other mentioned topics could have been explained along with a little project.
By Kev Smith on 10/29/2019
Great course with useful content. I completed all of this course before leaving a review and can recommend it for anybody interested in furthering their understanding of the internals of the Linux OS and C programming. I'm a native English speaker and didn't have any problems understanding the instructor. The explanations are clear and often covered from different angles to help your learning with good diagrams. There are also optional assignments to do as part of the course which I highly recommend to do. One thing to be aware of is I was following along with this course on a very recent 64bit Linux distro and what wasn't covered in the lectures were some of the optimisations that occur at the OS level. For example, I wrote a small c program and looked at how it looked and changed in memory - this didn't marry up with what I was seeing/learning in (albeit just a small section) the videos probably for 2 reasons. The first is most of the emphasis on this course refers to 32 bit OS's (though I'm not sure if there are any huge differences with what is covered in this course for 64 bit systems) and the second is it may have made the lessons too complex and is probably a whole course in itself. So I had to do a bit of googling around to help me understand what I was seeing. It's not meant as a negative point at all - just something to be aware of. I've also bought another course from this instructor which I am looking forward to starting.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 92 / 100








