2.- Introducción: Aplicaciones, Ejecutables y Procesos.
A simple vista, parece que con los términos aplicación, ejecutable y proceso nos estamos refiriendo a lo mismo. Pero, no olvidemos que en los módulos de primero hemos aprendido a diferenciarlos.
Una aplicación es un tipo de programa informático, diseñado como herramienta para resolver de manera automática un problema específico del usuario.
Debemos darnos cuenta de que sobre el hardware del equipo, todo lo que se ejecuta son programas informáticos, que, ya sabemos, que se llama software. Con la definición de aplicación anterior, buscamos diferenciar las aplicaciones, de otro tipo de programas informáticos, como pueden ser: los sistemas operativos, las utilidades para el mantenimiento del sistema, o las herramientas para el desarrollo de software. Por lo tanto, son aplicaciones, aquellos programas que nos permiten editar una imagen, enviar un correo electrónico, navegar en Internet, editar un documento de texto, chatear, etc.
Recordemos, que un programa es el conjunto de instrucciones que ejecutadas en un ordenador realizarán una tarea o ayudarán al usuario a realizarla. Nosotros, como programadores y programadoras, creamos un programa, escribiendo su código fuente, con ayuda de un compilador, obtenemos su código binario o interpretado. Este código binario o interpretado, lo guardamos en un fichero. Este fichero, es un fichero ejecutable, llamado comúnmente: ejecutable o binario.
Un tipo de programa informático, diseñado como herramienta para resolver de manera automática un problema específico del usuario. Puede estar formada por varios ejecutables y librerías. Siempre que lancemos la ejecución de una aplicación, se crea, al menos, un proceso nuevo en nuestro sistema.
Fichero que contiene el código binario o interpretado que será ejecutado en un ordenador.
Programa en ejecución.
Término que se corresponde con todas las partes tangibles o físicas de un sistema informático, como pueden ser: placa base, microprocesador, memoria RAM, dispositivos, cables, cajas, etc.
Conjunto de componentes intangibles o lógicos de un equipo sistema informáticos, que hacen posible que realice tareas. Software son el sistema operativo, aplicaciones, entornos de desarrollo, drivers, compiladores, etc.
Conjunto de instrucciones de un programa o aplicación escrito utilizando un lenguaje de programación. Este código debe ser traducido para que pueda ser ejecutado por un ordenador.
O lenguaje máquina, formado por ceros y unos. Es el conjunto de instrucciones que directamente son ejecutadas por el procesador del ordenador. Este código se obtiene al compilar el código fuente de un programa y se guarda en un fichero ejecutable. Este código sólo se ejecutará correctamente en equipos cuya plataforma sea compatible con aquella para la que ha sido compilado (no es multiplataforma).
Código que suele tratarse como un ejecutable, pero no es código binario, sino otro tipo de código, que en Java, por ejemplo se llama bytecode. Está formado por códigos de operación que tomará el intérprete (en el caso de Java, el intérprete es la máquina virtual Java o JRE). Ese intérprete será el encargado de traducirlos al lenguaje máquina que ejecutará el procesador. El código interpretado es más susceptible de ser multiplataforma o independiente de la máquina física en la que se haya compilado.
Ya tenemos más clara la diferencia entre aplicación y ejecutable. Ahora, ¿qué es un proceso?
De forma sencilla, un proceso, es un programa en ejecución. Pero, es más que eso, un proceso en el sistema operativo (SO), es una unidad de trabajo completa; y, el SO gestiona los distintos procesos que se encuentren en ejecución en el equipo. En siguientes apartados de esta unidad trataremos más en profundidad todo lo relacionado con los procesos y el SO. Lo más importante, es que diferenciemos que un ejecutables es un fichero y un proceso es una entidad activa, el contenido del ejecutable, ejecutándose.
Un proceso existe mientras que se esté ejecutando una aplicación. Es más, la ejecución de una aplicación, puede implicar que se arranquen varios procesos en nuestro equipo; y puede estar formada por varios ejecutables y librerías o bibliotecas.
Conjunto de funciones que permiten dar modularidad y reusabilidad a nuestros programas. El conjunto de funciones que incorpora una librería suele ser altamente reutilizable y útil para los programadores; evitando que tengan que reescribir código que realiza una tarea y ya existe una función que lo realiza. Ejemplo de librerías son: los paquetes compilados DLL en Windows (Librerías de Enlace Dinámico); las API (Interfaz de Programación de Aplicaciones), como la J2EE de Java (Plataforma Java Enterprise Edition versión 2); el framework de .NET; etc.