No seu caso, é um espaço de usuário: você usa bibliotecas padrão para usar a API de espaço do usuário para realizar tarefas.
Se o seu programa foi executado pelo kernel, você tem apenas a API interna do kernel (assim kprintf), e muita restrição sobre o que você pode fazer. Além disso, você precisa colocar no kernel ou como módulo do kernel. O kernel não executa código externo como espaço do kernel.
Nota: existem casos híbridos, mas sempre iniciados pelo kernel, para processos de longa duração, não para bloquear o kernel. Nesse caso, o código é manipulado pelo agendador e visível na lista de processos (geralmente números PID baixos, mas não 1).