Este artículo incluye una lista de referencias generales , pero permanece en gran parte sin verificar porque carece de suficientes citas en línea correspondientes . ( Mayo de 2021 ) |
En informática, máquina desnuda (o bare metal ) se refiere a una computadora que ejecuta instrucciones directamente en hardware lógico sin un sistema operativo que intervenga . Los sistemas operativos modernos evolucionaron a través de varias etapas, desde los más elementales hasta los actuales sistemas complejos y altamente sensibles que incorporan muchos servicios. Después del desarrollo de las computadoras programables (que no requirieron cambios físicos para ejecutar diferentes programas) pero antes del desarrollo de los sistemas operativos, las instrucciones secuenciales se ejecutaron en el hardware de la computadora directamente usando el lenguaje de la 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 generalmente 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.
Para una aplicación determinada, en la mayoría de los casos, una implementación completa se ejecutará más rápido, usará menos memoria y, por lo tanto, será más eficiente en términos de energía. Esto se debe a que los sistemas operativos, como cualquier programa, necesitan algo de tiempo de ejecución y espacio de memoria para ejecutarse, y estos ya no son necesarios en bare-metal. Por ejemplo, cualquier característica de hardware que incluya entradas y salidas es directamente accesible en bare-metal, mientras que la misma característica que usa un sistema operativo debe enrutar la llamada a una subrutina, consumiendo tiempo de ejecución y memoria. [1]
Para una aplicación determinada, la programación bare-metal requiere más esfuerzo para funcionar correctamente y es más compleja porque los servicios proporcionados por el sistema operativo y utilizados por la aplicación deben volver a implementarse en función de las necesidades. Estos servicios pueden ser:
La depuración de un programa bare-metal es difícil ya que:
La programación bare-metal 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 código de máquina de procesadores muy nuevos directamente. [2] Todos los problemas anteriores significan inevitablemente que los programas bare-metal rara vez son portátiles .
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 . La operación resultante del programa podría ser monitoreada por luces y la salida derivada de cinta magnética , dispositivos de impresión o almacenamiento .
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 se inician directamente en software monolítico de un solo propósito, sin cargar un sistema operativo separado. Dicho software integrado puede variar en estructura, pero la forma más simple puede consistir en un bucle principal infinito , llamando a subrutinas responsables de verificar las entradas, realizar acciones y escribir salidas.
El enfoque de usar máquinas desnudas allanó el camino para nuevas ideas que aceleraron la evolución del desarrollo del sistema operativo .
Este enfoque destacó la necesidad de lo siguiente:
Por ejemplo, los programas se cargaron en el PDP-11 a mano, utilizando una serie de interruptores de palanca en el panel frontal del dispositivo. Los teclados son muy superiores a estos dispositivos de entrada antiguos, ya que sería mucho más rápido escribir código o datos que usar interruptores de palanca para ingresar esto en la máquina. Más tarde, los teclados se convertirían en estándar en casi todas las computadoras, independientemente de la marca o el precio.
Los monitores de computadora también pueden mostrar fácilmente la salida de un programa de una manera fácil de usar. Por ejemplo, uno tendría que tener un conocimiento profundo acerca de una computadora temprana específica y su sistema de visualización, que consiste en una serie de luces, para incluso comenzar a comprender el estado del hardware de la computadora. Por el contrario, cualquier persona que sepa leer debería poder comprender una interfaz de usuario bien diseñada en un sistema moderno, sin tener que saber nada sobre el hardware de la computadora en la que se ejecuta el programa.