and
kernel_task's pid is 0
Eles provavelmente usam o PID 0, porque é um PID reservado e, como tal, você não pode enviar sinais para o processo.
I simply ran
kill -9 0.
O comando * nix kill é mais ou menos um front-end direto para a chamada do sistema kill . Da documentação da chamada do sistema:
If pid is zero:
Sig is sent to all processes whose group ID is equal to the process group ID of the sender, and
for which the process has permission; this is a variant of killpg(2).
Em outras palavras, no seu caso, kill -9 0 é apenas uma maneira elegante de enviar o sinal (fatal) para si mesmo. ( Mais sobre grupos de processos. )
Why the heck does it just terminate the process that called the command
O kill (a menos que você tenha ajustado as configurações do shell) é um comando shell embutido. Em outras palavras, o shell chama o kill syscall e isso faz com que ele se mate.
Tente o mesmo, mas com o comando kill externo, por ex. %código%. Nesse caso, apenas o /bin/kill -9 0 seria eliminado.