i am just started coding of device driver and new to threading, went through many documents for getting an idea about threads. i still have some doubts.
- what is a kernel thread ?.
- how it differs from user thread ?.
- what is the relationship between the two threads ?.
- how can i implement kernel threads ?.
- where can i see the output of the implementation?.
Can anyone help me ?. thanks.
task_struct
with no userspace components.kthreadd
kernel thread instead of the init
process) and is created by a kernel-only API instead of sequences of clone
from fork/exec
system calls.kthreadd
as a parent. Apart from that, kernel threads enjoy the same "independence" one from another as userspace processes.kthread_run
function/macro from the kthread.h header You will most probably have to write a kernel module in order to call this function, so you should take a look a the Linux Device Driversprintk
calls), you can see this output in the kernel log using the dmesg
command.