O kernel e o tempo de execução C fazem parte do trabalho.
Algumas das coisas que o tempo de execução de C faz que o kernel não faz: ele executa manipuladores previamente registrados com atexit()
e ele organiza para que o valor de retorno inteiro de main()
seja retornado ao sistema como se fosse exit()
.
É claro que, no final, o kernel colherá todos os recursos (arquivos, memória), independentemente do que o usuário faça ou não faça.