title: Init and swapper tasks in Linux
body: <p>I'm confused about init and swapper tasks in the Linux kernel. My understanding is that the swapper task is like an idle task - it runs when no other processes are runnable. The init task stays asleep, and wakes up to reap processes when required.</p>
  
  <p>I've added another element to the task control block, which I want to initialize to zero for ALL tasks (including init and swapper)</p>
  
  <p>There is a very confusingly named macro, INIT_TASK, in linux/init_task.h, which, seemingly sets the initial values for the task control block of the swapper task.</p>
  
  <p>Where do I set the initial values for the task control block of init? I'm able to set the initial values for all other tasks in the copy_process function in kernel/fork.c when they fork.</p>