Kernel threads are not children of init because they can be started before all the userspace processes.
They are typically used to manage hardware that's why they are directly handled by the kernel and have high priority.
For a process to be child of init it needs to be cloned from init and Kthreads aren't that's why their parent PID is 0 meaning "no-one".
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…