¿En qué idioma está escrito el BIOS?

Un BIOS (sistema básico de entrada y salida) es un pequeño programa que controla el hardware de una computadora personal desde el momento en que se inicia la computadora hasta que el sistema operativo principal (por ejemplo, Linux, Mac OS X o MS-DOS) se hace cargo.

Cuando se enciende una computadora, el BIOS primero realiza una verificación básica del hardware, llamada autocomprobación de encendido (POST), para determinar si todos los dispositivos de hardware están presentes y funcionando. Luego carga el sistema operativo en la memoria principal de la computadora, que está compuesta de chips RAM (memoria de acceso aleatorio).

El BIOS también se usa después de que la computadora se ha iniciado (es decir, se ha iniciado). Actúa como intermediario entre la CPU (unidad central de procesamiento) y los dispositivos de entrada y salida. Esto elimina la necesidad de que el sistema operativo y los programas de aplicación conozcan los detalles (por ejemplo, las direcciones de hardware) de los dispositivos de entrada y salida. Y cuando los detalles del dispositivo cambian, solo se necesita actualizar el BIOS. Estos cambios pueden ser realizados por un usuario al ingresar al modo de configuración del BIOS cuando la computadora se inicia por primera vez (lo que generalmente se logra presionando una tecla específica tan pronto como la computadora comienza a iniciarse).

El BIOS se almacena en su propio chip de memoria especial, que está montado en la placa base (es decir, la placa de circuito principal de la computadora). Esto contrasta con el sistema operativo principal, que generalmente se almacena en la unidad de disco duro (HDD) (o, a veces, en un CDROM, disquete u otros medios). El BIOS no se puede almacenar en un HDD u otro dispositivo porque administra esos dispositivos.

Hasta alrededor de 1990, los BIOS se almacenaban en chips ROM (memoria de solo lectura) simples, cuyo contenido no podía modificarse. Sin embargo, debido a su complejidad y la necesidad ocasional de actualizaciones, las ROMS fueron reemplazadas por EEPROM (ROM programable borrable eléctricamente) o chips de memoria flash, cuyo contenido puede ser reescrito por el usuario. A diferencia de los chips RAM, estos chips retienen su contenido incluso en ausencia de una fuente de alimentación.

El BIOS generalmente se escribe en el lenguaje ensamblador de la CPU utilizada en esa computadora. Un lenguaje ensamblador es una notación legible por humanos para el lenguaje de máquina para un procesador específico; El lenguaje de máquina (también llamado código de máquina) es un lenguaje de programación muy básico que proporciona instrucciones que un procesador puede leer directamente.

La mayoría de los BIOS modernos permiten al usuario seleccionar el orden en el que el sistema busca los medios de arranque (es decir, el dispositivo o los medios que contienen un sistema operativo). Por lo tanto, aunque el sistema operativo se ha instalado generalmente (pero no siempre) en el HDD, el usuario puede elegir que el BIOS intente arrancar desde un CDROM si encuentra un disco en la unidad de CDROM, desde un disquete si encuentra un disco en la unidad de disquete o desde una unidad de llave USB (bus serie universal) si encuentra una unidad de llave USB en un zócalo USB. Esto es particularmente útil para arrancar un sistema operativo sin tener que instalarlo en el HDD, como para probar un nuevo sistema operativo o para fines forenses.

El término BIOS apareció por primera vez en el sistema operativo CP / M (Programa de control para microcomputadoras), escrito por Gary Kildall de Digital Research en la década de 19701. Además de representar el sistema básico de entrada y salida, este acrónimo también juega con la palabra griega bios, que significa vida, ya que es el programa que da vida a una computadora. Además, también podría significar sistema operativo incorporado, ya que el BIOS está integrado en la computadora, en contraste con el sistema operativo principal, que es relativamente fácil de quitar o reemplazar.

BIOS (Sistema básico de entrada y salida) son
ahora escrito generalmente en c o c ++ con algunas partes en el lenguaje ensamblador.

Hace mucho tiempo, el BIOS solo se limitaba al lenguaje ensamblador.

El principal desafío con el lenguaje ensamblador era la limitación del hardware al que se podía aplicar, y C superó rápidamente.

La mayoría de las instrucciones básicas como inicio, reinicio, etc. están escritas en lenguaje ensamblador, el resto está en lenguaje de alto nivel.

En el arranque, el código de ensamblaje se invoca a través del ensamblador, iniciando así el BIOS.

Puede escribir uno en C con una combinación de lenguaje ensamblador.

El procesador ejecuta su código. No es el sistema operativo. Además, una vez compilado, no necesitará el compilador o ensamblador nuevamente. El código resultante se puede flashear correctamente.

Escribir un BIOS es interesante. Sin embargo, la última especificación UEFI lo complica un poco.

Phoenix BIOS está escrito en C con un uso liberal del lenguaje ensamblador.

Un BIOS está escrito en un lenguaje de programación compatible con un compilador de código de máquina nativo. Hay muchos de esos lenguajes (ignorando los idiomas interpretados), se han usado varios idiomas en varios experimentos y la mayoría de las implementaciones de BIOS sobre las que he leído se basan específicamente en una combinación de C y lenguaje ensamblador.

Estas confundido.

BIOS no es un programa normal, se llama firmware .

Está estrictamente conectado al hardware y se almacena en la placa base.

No sé nada sobre este aspecto, pero no me sorprendería si algún código de la Asamblea estuviera involucrado en eso.