Estoy tratando de aprender toda la cadena de ingenieria para que pueda entender mejor lo que sucede cuando hago construir/enlace/compilar etc.la comprensión de la necesidad de compiladores para diferentes plataformas
Un punto que estoy teniendo problemas with es esto: si el compilador convierte el origen en ensamblado nativo, ¿por qué el mismo programa no se puede ejecutar en diferentes sistemas operativos? ¿El ensamble no se ejecuta directamente por la CPU? Por lo tanto, el mismo código de máquina debería ejecutarse en todos los SO, siempre que sea la misma arquitectura, ¿no? Por qué no?
EDIT: La mayoría de las respuestas hasta el momento están a punto de llamar API del OS. Eso obviamente es un problema. Mi pregunta es sobre el código de máquina recta . ¿Se pasa directamente a la CPU o no? Si escribí un programa en ensamblador, ¿aún tendría que compilar por separado para cada sistema operativo? (punto aparte: si utilicé C++ cin/cout estándar, ¿depende de ese sistema operativo el compilador para dirigir la E/S de ensamblaje o la respuesta depende del compilador?)