Olá. Eu não consegui entender bem a diferença entre antigamente e o modelo atual. Antigamente eu tinha um programa escrito em C, com uma biblioteca em C e se comunicando com o sistema operacional. Hoje em dia, um programa escrito em C#, passa por um compilador pra virar aplicação em MSIL, usando bilioteca em MSIL se comunica com máquina virtual em MSIL que se comunica com o SO. No final, a Máquina virtual também não precisa ser escrita e modificada para cada SO (windows, linux, etc)? Eu ainda não consegui enxergar essa diferença entre os dois modelos.