New PAM modules can be added at any time for PAM-aware applications to
use. For example, if a developer invents a one-time-password creation
method and writes a PAM module to support it, PAM-aware programs can
immediately use the new module and password method without being
recompiled or otherwise modified. This allows developers and system
administrators to mix-and-match, as well as test, authentication methods
for different programs without recompiling them.
Documentation on writing modules is included in the
/usr/share/doc/pam-<version-number>/
directory (where <version-number> is
the version number for PAM).