Sou um pouco novo em programação e a melhor maneira de fazer essa pergunta é com um exemplo.
Eu sei como fazer coisas básicas em Java e C #. Coisas como um pequeno aplicativo de formulários do Windows ou formam uma classe genérica. Eu basicamente aprendi e ainda não tentei fazer nada grande. De qualquer forma, sempre fiquei curioso sobre como as coisas são feitas "sob o capô", acho que você poderia dizer.
Eu sei que tudo se resume a 1s e 0s e que as linguagens assembly basicamente dão comandos aos padrões de 1s e 0s, mas parece que há esse salto daqui para: usar uma biblioteca para isso, uma biblioteca para isso. Parece-me que tudo o que o C # pode fazer sem uma biblioteca é lógica aritmética e binária. Para obter entrada ou saída, você usa bibliotecas, etc ...
Sei que essa pergunta provavelmente parece óbvia para alguns e sei que tenho muito a aprender, mas nem sei por onde começar com uma pergunta como essa. Obrigado.
Então, minha pergunta é esta:
Se alguém iria fazer uma máquina virtual ou um emulador de Playstation, ou um sistema operacional, ou um driver, ou adicionar suporte mp3 a um media player, ou criar seu próprio tipo de arquivo, etc ... Como? Não consigo ver como isso seria feito com C # ou Java.
Em outras palavras, se eu ler um livro como Professional C # da WROX ou Programming C # da OReilly, saberia como fazer essas coisas? Ou você precisa aprender a linguagem assembly ou algo mais baixo como o C ++?