Assim como um compilador comum, ele é destinado a ambos - gera código de máquina que é executado diretamente pelas CPUs enquanto usa os recursos do sistema operacional (como as APIs do sistema de arquivos ou da interface com o usuário).
Quando você executa um exe usando .net, eu sei que o próprio exe tem como alvo o CLR. Mas o código que sai do CLR tem como alvo o sistema operacional ou diretamente o hardware?
Tags .net-framework