Linux device drivers can be loaded as modules at runtime. A module begins with a module_init() function and ends with a module_exit() function. Modules export symbols and functions to be used by other modules. The Makefile is used to compile the module and modprobe loads dependent modules by examining the modules.dep file.