Soy algo nuevo en programación y la mejor manera de hacer esta pregunta es con un ejemplo.
Sé cómo hacer cosas básicas en Java y C #. Cosas como una pequeña aplicación de formularios de Windows o hacer una clase genérica. Básicamente he estado aprendiendo y todavía no he intentado hacer nada grande. De todos modos, siempre he tenido curiosidad sobre cómo se hacen las cosas "bajo el capó", supongo que se podría decir.
Sé que todo se reduce a 1s y 0s y que los lenguajes ensambladores básicamente dan comandos a los patrones de 1s y 0s, pero parece que hay un salto desde allí para: usar una biblioteca para esto, una biblioteca para eso. Me parece que todo lo que C # puede hacer sin una biblioteca es aritmética y lógica binaria. Para obtener entrada o salida, utiliza bibliotecas, etc.
Sé que esta pregunta probablemente parezca obvia para algunos y sé que tengo mucho que aprender, pero ni siquiera sé por dónde comenzar con una pregunta como esta. Gracias.
Así que mi pregunta es esta:
Si alguien iba a hacer una máquina virtual o un emulador de Playstation, o un sistema operativo, o un controlador, o agregaría soporte mp3 a un reproductor multimedia, o haría su propio tipo de archivo, etc. ¿Cómo? No puedo ver la forma en que se haría con C # o Java.
En otras palabras, si leyera un libro como Professional C # by WROX o Programming C # by OReilly, ¿sabría cómo hacer estas cosas? ¿O tienes que aprender lenguaje ensamblador o algo de nivel más bajo como C ++?