Respostas curtas:
- Não, não é um processo
- Os threads do usuário não estão enraizados no init.
Init é apenas o primeiro processo; ele não gerencia nenhum processo ou encadeamento. Ele cria alguns, usando o fork do syscalls do kernel () e o exec.
Eu acho que você tem uma idéia confusa do que é um processo. não significa apenas um pouco de código de execução. Sim, o kernel é executado antes do init (e o carregador de inicialização antes mesmo). Mas um 'processo' tem uma definição específica de:
- Executa no espaço do usuário
- Executa com um ID do processo
- Muitas interações precisam passar pelo kernel
- Todos os recursos precisam vir do kernel
- Precisa ser agendado pelo kernel
Assim, uma vez que o kernel é inicializado, ele executa o init, que gera quaisquer outros processos que sua configuração solicite.
No que diz respeito ao número 2, todo o material do kernel está, bem, no kernel. Pense no kernel como uma grande área de código. Novamente, não um processo, mas um grande blob de código. Partes do kernel lidam com gerenciamento de memória, partes dele com partes de agendamento de si mesmo (como drivers, etc.) e partes dele com processos de agendamento.