stringtranslate.com

Maquina desnuda

En informática, el término máquina desnuda (o bare metal ) hace referencia a una computadora que ejecuta instrucciones directamente en el hardware lógico sin la intervención de un sistema operativo . Los sistemas operativos modernos evolucionaron a través de varias etapas, desde los más elementales hasta los sistemas complejos y altamente sensibles que incorporan muchos servicios en la actualidad. Después del desarrollo de las computadoras programables (que no requerían cambios físicos para ejecutar diferentes programas), pero antes del desarrollo de los sistemas operativos, las instrucciones secuenciales se ejecutaban directamente en el hardware de la computadora utilizando lenguaje de máquina sin ninguna capa de software del sistema. Este enfoque se denomina el precursor de la "máquina desnuda" de los sistemas operativos modernos. Hoy en día, se aplica principalmente a sistemas integrados y firmware con requisitos de latencia críticos en el tiempo, mientras que los programas convencionales se ejecutan mediante un sistema de tiempo de ejecución superpuesto a un sistema operativo.

Ventajas

En la mayoría de los casos, una implementación de hardware sin sistema operativo se ejecutará más rápido, utilizará menos memoria y, por lo tanto, será más eficiente energéticamente. Esto se debe a que los sistemas operativos, como cualquier programa, necesitan tiempo de ejecución y espacio de memoria para ejecutarse, y estos ya no son necesarios en hardware sin sistema operativo. Por ejemplo, cualquier característica de hardware que incluya entradas y salidas es directamente accesible en hardware sin sistema operativo, mientras que la misma característica que utiliza un sistema operativo debe enrutar la llamada a una subrutina, lo que consume tiempo de ejecución y memoria. [1]

Desventajas

Para una aplicación determinada, la programación en hardware requiere un mayor esfuerzo para funcionar correctamente y es más compleja porque los servicios que proporciona el sistema operativo y que utiliza la aplicación deben volver a implementarse en función de las necesidades. Estos servicios pueden ser:

Depurar un programa desde cero es difícil porque:

La programación de hardware generalmente se realiza utilizando un lenguaje cercano al hardware, como Rust , C++ , C , lenguaje ensamblador o, incluso para pequeñas cantidades de código o procesadores muy nuevos, código de máquina directamente. [2] Todos los problemas anteriores significan inevitablemente que los programas de hardware rara vez son portables .

Ejemplos

Las primeras computadoras

Las primeras computadoras, como la PDP-11 , permitían a los programadores cargar un programa, suministrado en código de máquina , en la RAM . El funcionamiento resultante del programa podía ser monitoreado por luces y la salida podía derivarse de una cinta magnética , dispositivos de impresión o almacenamiento .

Sistemas embebidos

La programación de máquinas desnudas sigue siendo una práctica común en los sistemas integrados , donde los microcontroladores o microprocesadores a menudo arrancan directamente en un software monolítico de propósito único, sin cargar un sistema operativo separado. Este software integrado puede variar en estructura, pero la forma más simple puede consistir en un bucle principal infinito , o "superbucle", que llama a subrutinas responsables de verificar las entradas, realizar acciones y escribir las salidas.

Desarrollo

El enfoque de utilizar máquinas desnudas allanó el camino para nuevas ideas que aceleraron la evolución del desarrollo de sistemas operativos .

Este enfoque puso de relieve la necesidad de lo siguiente:

Por ejemplo, los programas se cargaban en el PDP-11 a mano, utilizando una serie de interruptores basculantes en el panel frontal del dispositivo. Los teclados son muy superiores a estos dispositivos de entrada antiguos, ya que era mucho más rápido escribir código o datos que utilizar interruptores basculantes para introducirlos en la máquina. Más tarde, los teclados se convertirían en estándar en casi todos los ordenadores, independientemente de la marca o el precio.

Los monitores de ordenador también pueden mostrar fácilmente el resultado de un programa de una manera sencilla para el usuario. Por ejemplo, uno tendría que tener un profundo conocimiento de un ordenador antiguo específico y de su sistema de visualización, que consiste en una serie de luces, para siquiera empezar a entender el estado del hardware del ordenador. En cambio, cualquiera que sepa leer debería poder entender una interfaz de usuario bien diseñada en un sistema moderno, sin necesidad de saber nada sobre el hardware del ordenador en el que se ejecuta el programa.

Véase también

Referencias

  1. ^ Gordon, Abel; Amit, Nadav; Har'El, Nadav; Ben-Yehuda, Muli; Landau, Alex; Schuster, Assaf; Tsafrir, Dan (2012). "ELI" . Avisos ACM SIGPLAN . 47 (4): 411–422. doi :10.1145/2248487.2151020.
  2. ^ "Guía práctica para C++ con hardware básico" . Consultado el 16 de diciembre de 2022 .

Lectura adicional