Managing and Developing Dynamically Loadable Kernel Modules

Managing and Developing Dynamically Loadable Kernel Modules
Managing Dynamically Loadable Kernel Modules
Chapter 12518
Module’s version string (loadable modules are given default version
0.1.0)
Module’s ID
Module’s Configured Loading Phase
Module’s pathname to its object file on disk
Module’s status (LOADED or UNLOADED)
Module’s size
Module’s virtual load address
Memory size of BSS (Block Started by Symbol) (the memory size of
the uninitialized space of the data segment of the module’s object file)
Base address of BSS
Module’s reference or hold count (the number of processes that are
currently using the module)
Module’s dependent count (the number of modules that currently
depend on this module being loaded; modules depended on are
specified in the $DRIVER_DEPENDENCY section of the module’s master
file)
Module’s unload delay value (currently not used – always 0 seconds)
Module’s descriptive name
Type of module (WSIO, STREAMS, or Misc)
DLKM Procedures for Statically Configured Loadable Modules
These procedures:
Prepare a DLKM module for static configuration
Query, set or reset tunable DLKM module or static kernel parameters
Build a whole kernel configuration
Update the kernel’s image with the newly generated kernel
Load the newly generated kernel by shutting down and rebooting the
system