Linux Kernel Tasklets and Work queues are somewhat similar to user-space process threads in terms of the functionality and of course not in terms of its operation or its internal architecture. You can schedule Tasklet(s) for a registered function to run later. So typically the Interrupt top half (of the interrupt handler) performs a small amount of critical work (not to be confused with critical section), and then schedules such as a tasklet to execute later at the bottom half.
Not just that, when we say Kernel Module, its a vaguely defined term. The term “Module” (as we know) is nothing but a collection of APIs, bunch of variables and associated data-structures. Which may or may not be a plug-able kernel module.
So here is my detailed multi-episode YouTube video series on Linux Kernel Tasklets, a big picture and a quick demo of my sample code (a Linux Kernel module) comprising tasklet.
I also conduct sessions/classes on Systems and Network Software Programming, Linux Kernel Programming and Architecture. If you are interested, click HERE for more details.
If you have any queries or anything to discuss further on Linux Kernel Programming and writing Kernel modules kindly feel free to contact me.