Pregunta

(1) En la línea de fondo: ¿a qué tiene que tomar todo para hacer que un programa sea ejecutable en un sistema operativo específico? Código de máquina, lenguaje de ensamblaje?

(2) ¿Tiene que ser legible para ser ejecutada por una CPU de algún tipo?

(3) ¿Qué tipo de papel juega el sistema operativo cuando se ejecuta un programa? ¿Tiene algo que ver con ayudar al sistema a interpretar el código del programa?

(4) Y a la luz de la PC de Windows, ¿es necesario que todos los programas sean .exe para ser ejecutables? ¿Por qué Java Virtual Machine?

(5) ¿Cómo funciona el descompilador? ¿Cuál es la diferencia entre los programas compilados con el código de la máquina y el lenguaje de ensamblaje?

¡¡Muchas gracias!!

¿Fue útil?

Solución

  1. Eso depende completamente del sistema operativo. Teóricamente, podría tener un sistema operativo que interpreta el código fuente de Cobol sobre la marcha. Pero en general, necesitará archivos ejecutables de un formato específico que el sistema operativo puede cargar en la memoria y ejecutar. Entonces, el código de la máquina lo es.

  2. Nuevamente, depende de la CPU. La gran mayoría (todas las que conozco) ejecutará su propio código de máquina.

  3. El sistema operativo proporciona un método para ejecutar sus aplicaciones y proporciona servicios de soporte a esas aplicaciones.

  4. No. Si quieres que se ejecuten, deben ser de un formato específico, pero eso no necesariamente implica el exe extensión. Y, aunque tu pensar Está ejecutando un archivo de clase Java, en realidad está ejecutando el JVM, que es un archivo ejecutable. Simplemente está interpretando el archivo de clase (ignorando las cosas de JIT por simplicidad, que convierte a Java ByteCodes en código de máquina sin procesar para la eficiencia. Puede "ejecutar" archivos de clase Java, scripts de PowerShell, cmd guiones, etc.

  5. Un descompilador intenta convertir un archivo compilado (exe, archivo de clase, bytecode de Python, etc.) volver a su forma original, o al menos algo cercano a eso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top