Linux Kernel Programming - IPC b/w Userspace and KernelSpace

Why take this course?
🌟 Dive into Linux Kernel Programming! 🌟
Welcome to the Linux Kernel Programming World! 🚀
This is not just another course on system programming; it's a comprehensive journey through the intricacies of Netlink Sockets, Operating Systems, Loadable Kernel Modules, and C programming. With a focus on practical understanding and hands-on experience, this course is designed for anyone eager to explore or dive deep into kernel space programming. 🖥️✨
What You'll Learn in This Course:
Table Of Contents:
-
Section 1: Setting Up Development Environment
- Agenda, Pre-requisite, Assumptions
- How to do Kernel Programming based Courses?
- Setting up Development Environment
- Installing Linux Kernel Headers
-
Section 2: Writing Linux Kernel Modules (LKMs)
- What are LKMs?
- Hellow-World LKM
-
Section 3: Understanding Netlink Sockets
- Communication Mediums in the System
- Sockets - As a unified interface
- Netlink Communication Use-Cases
- The Netlink Project for the Course
-
Section 4: Netlink Communication - Theory before Coding
- Netlink Msg formats
- Netlink Msg types
- Netlink Msg flags
- Netlink Communication Model
- Netlink Sequence Number
- Netlink Port ID
-
Section 5 & 6: Writing a First Netlink Program
- Greet Kernel from Userspace
- Receive Reply from Kernel to Userspace
-
Section 7: The Netlink Attributes - The Concept of TLVs
- The Concept of TLVs
- Parsing of TLV Buffer
-
Section 6: Getting Started with Netlink Project
- Problem Statement
- Sending CREATE Netlink Msg to Kernel
- Getting Feedback/Reply from Kernel to Userspace
- Sending UPDATE Netlink Msg to Kernel
- Netlink DELETE Netlink Msg to Kernel
- Netlink READ operation Reading Data from Kernel Space into USer space
-
Section 7: Netlink Group Subscription
- Sending Kernel Data to Multiple Userspace processes
- Multicast Group Subscription
- Multicast Group unsubscription
-
Section 8: Selective Event-based Notification
- (Un)Subscribing for the event in Kernel Space
- Where to go from here?
By the end of this course, you'll have a solid understanding of how to communicate between user space and kernel space using Netlink Sockets. You'll learn to create, manage, and manipulate Linux Kernel Modules, and understand the theory behind the message format and TLV (Type-Length-Value) parsing.
Whether you're a software developer looking to enhance your skill set or a student eager to explore advanced programming concepts, this course will equip you with the knowledge and tools necessary to work on complex kernel programming tasks. 🔧💻
Join us on this enlightening adventure into the heart of Linux's capabilities and transform your coding expertise! 🧐🚀
Enroll Now and Start Your Journey into Linux Kernel Programming Mastery! 🎓🛠️
Loading charts...