# Kernel Modules A kernel module is practically a driver that can be loaded/unloaded in the kernel on demand. jvns wrote [a kernel module](https://jvns.ca/blog/2013/10/07/day-5-i-wrote-a-kernel-module/) that prints hello world to the kernel log each time a packet is processed by the kernel. Some good starting points: * [Kernel Newbies](https://kernelnewbies.org/) -> go here after going through jvns’s post AND after experimenting yourself. * [How to Write Your Own Linux Kernel Module with a Simple Example](https://www.thegeekstuff.com/2013/07/write-linux-kernel-module/) * [GitHub - jvns/kernel-module-fun: Some fun things you can do with kernel modules (all “bad ideas”)](https://github.com/jvns/kernel-module-fun) -> kernel module examples I should probably make a linux VM (in kvm) for kernel module development.