Kernel modules (also referred as LKMs) have accentuated the development of kernel services owing to their ease of use. Our focus through this chapter will be to understand how the kernel seamlessly facilitates this entire process, making loading and unloading of modules dynamic and easy, as we look through all core concepts, functions and important data structures involved in module management. We assume readers are familiar with the basic usage of modules.
In this chapter, we will cover the following topics:
- Key elements of a kernel module
- Module layout
- Module load and unload interfaces
- Key data structures