Hello World Kernel Module ============================ In C/C++ Programming we have the main() as the entry point and exit point. Kernel modules must have at least two functions: a "start" (initialization) function : which is called when the module is loaded into the kernel an "end" (cleanup) function called : which is called just before it is removed This is done with the module_init() and module_exit() macros Licensing ============ Module should specify which license you are using MODULE_LICENSE() macro "GPL" [GNU Public License v2 or later] "GPL v2" [GNU Public License v2] "GPL and additional rights" [GNU Public License v2 rights and more] "Dual BSD/GPL" [GNU Public License v2 or BSD license choice] "Dual MIT/GPL" [GNU Public License v2 or MIT license choice] "Dual MPL/GPL" [GNU Public License v2 or Mozilla license choice] "Proprietary" [Non free products] Header Files ============ Every kernel module needs to include linux/module.h. for macro expansion of module_init and module_exit linux/kernel.h only for the macro expansion for the printk() log level