Learning Linux Kernel Programming is always fascinating and yet challenging. So generally you may tend to learn Kernel Module programming, since such a module can be dynamically plugged into running Linux Kernel. But this will lead to confusion, and many assume kernel source is mostly a collection of these modules. Which in reality is kind of true but not strictly.
Not just that, when we say Kernel Module, its a vaguely defined term. The term “Module” (as we know) is nothing but a collection of APIs, bunch of variables and associated data-structures. Which may or may not be a plugable kernel module.
If you ask me, I am a fan of wiring Linux Kernel Modules, which may not be necessarily a pluggable kernel module. It all boils down to the address space at which these modules function inside a monolithic Linux Kernel. Which is nothing but Linux Kernel’s address space. Hence here is my detailed multi-episode YouTube video series on Linux Kernel modules, a big picture and the significance of the Kernel’s address space in relationship to these modules.
I also conduct sessions/classes on Systems and Network Software Programming, Linux Kernel Programming and Architecture. If you are interested, click HERE for more details.
If you have any queries or anything to discuss further on Linux Kernel Programming and writing Kernel modules kindly feel free to contact me.
Recommended to read:
- Network_data_flow_through_kernel API Map
- Linux Kernel Network Programming – dst_entry data-structure – Introduction and code-walk
- Linux Kernel Programming – Kernel Interfaces #kernel #linux #coding #kirankankipati #training
- Linux Kernel Driver Device Trees #programming #linux #kernel
- Linux Kernel Network stack and architecture