É claro que ele não trava o kernel, você está gravando no espaço de memória virtual do seu próprio programa, não no espaço de memória do kernel real .
Saiba mais sobre a memória virtual aqui
P.S:
Por que printf não imprime nada? Por padrão, a saída padrão é com buffer de linha e seu hello world não contém um separador de linha.
Portanto, se o programa falhar, você não observará essa saída (tente usar puts ou adicionar \n em sua mensagem)