modprobe reads the modules from
/lib/modules/$(uname -r)/modules.dep.bin (or without the
.bin suffix if the other file is not available). From the same file, dependencies are loaded.
modprobe accepts the name of a
.ko file in
/lib/modules/$(uname -r) (e.g.
nvidia-current for the file
dkms/nvidia-current.ko) and aliases (
modules.alias.bin). Builtins (
modules.alias.bin) are recognized as well, but since these modules are loaded by default, there is not point in modprobing this kind of modules.
insmod on the other hand accepts paths to files. The module does not have to reside in
/lib/modules/$(uname -r), but dependencies are not automatically loaded. This is the lower program used by
modprobe to load modules.
Other programs related to modules are
rmmod removes a kernel name based on the name from
/proc/modules. This name does not necessarily have to be the same as the one passed to
modprobe (for the
nvidia-current file, this is
nvidia for example).
modinfo accepts a filename, or the filename without
.ko suffix in