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