¿Por qué una computadora debe tener un BIOS?

35

El software del BIOS está integrado en la PC y es el primer código que ejecuta una PC cuando se enciende ('firmware de arranque'). Cuando se inicia la PC, el primer trabajo para el BIOS es la autocomprobación de encendido, que inicializa e identifica dispositivos del sistema como la CPU, RAM, tarjeta de video, teclado y mouse, disco duro, unidad de disco óptico y otro hardware Luego, el BIOS localiza el software del cargador de arranque en un dispositivo periférico (designado como 'dispositivo de arranque'), como un disco duro o un CD / DVD, y carga y ejecuta ese software, dándole el control de la PC. [2] Este proceso se conoce como arranque o arranque, que es la abreviatura de bootstrapping.

¿Qué requisitos determinan que un sistema informático debe tener un BIOS instalado?

¿Por qué el sistema operativo no puede realmente hacer funcionar todo el BIOS?

Diogo
fuente
40
¿Por qué el motor de un automóvil necesita un motor de arranque? ¿No debería ser el motor lo suficientemente potente como para arrancar?
Der Hochstapler
44
@OliverSalzburg esto será posible en un futuro cercano, motores de gas sin arrancadores. Con inyección directa y computadoras es muy fácil.
Moab
2
Ya tienen motores de arranque automático, pero en su mayoría son motores de más de 12 cilindros o rotativos. La mayoría de los motores no pueden arrancar por sí solos simplemente porque no pueden producir suficiente potencia en un solo golpe de potencia para superar su momento de inercia. La inyección directa y una mejor sincronización podrían ayudar un poco, pero realmente se necesita motores más ligeros para aumentar la relación entre la energía generada en un powerstroke al momento de inercia creada por el volante, cigüeñal, engranajes, etc.
Lesa Majestad
55
En realidad, un BIOS en el sentido de la PC NO es necesario. Las computadoras IBM System / 360 y / 370 (y tal vez versiones más recientes) se iniciaron con una sola instrucción cableada que leía un solo registro de un dispositivo seleccionado mediante diales en la consola. Ese registro contenía un programa de arranque (tenía que caber en 80 bytes, una tarjeta perforada) que cargaba un programa de arranque más complejo, que cargaba el sistema operativo desde el disco. Supongo que el 'BIOS' fue esa única instrucción programada para ejecutar cuando presionó el botón derecho (llamado IPL o carga inicial del programa).
Ex Umbris
2
Está confundiendo "computadora" y "PC" en su pregunta. Es por eso que las respuestas son confusas y a veces contradictorias.
rds

Respuestas:

41

Un BIOS es una pieza de código dependiente del hardware almacenada en la propia placa base. Cada placa base diferente necesita un BIOS personalizado escrito para ello, por lo que sería imposible tener un BIOS / OS genérico todo en uno (aunque el BIOS es técnicamente solo un código almacenado, por lo que teóricamente podría escribir un sistema operativo para una placa base en particular) . Como mencionó, el propósito del BIOS es hacer lo siguiente:

Cuando se inicia la PC, el primer trabajo para el BIOS es la autocomprobación de encendido, que inicializa e identifica dispositivos del sistema como la CPU, RAM, tarjeta de video, teclado y mouse, disco duro, unidad de disco óptico y otro hardware

Tenga en cuenta que aún puede iniciar una computadora sin ningún almacenamiento externo, razón por la cual el BIOS es un requisito para una computadora. En otros términos, el BIOS proporciona una interfaz de software común para permitir que un programa informático almacenado se comunique con varios dispositivos de hardware conectados a la placa base.

Por ejemplo, si tengo dos placas base diferentes con dos controladores SATA diferentes, el BIOS me permite escribir un código que puede funcionar con ambos, sin mi conocimiento de cómo la placa base envía comandos al dispositivo SATA. Solo tengo que decirle a la computadora "leer el sector X de este dispositivo SATA", y el BIOS es responsable de enviar esos comandos al hardware.

Donde realmente obtiene la información del "sector de lectura X" es un programa almacenado contenido en el BIOS, que generalmente dirige a la computadora a comenzar a leer desde un cargador de arranque almacenado en una ubicación común. Estas ubicaciones comunes son acordadas por varios desarrolladores de software y hardware, y generalmente se proporcionan al público para permitir una mayor compatibilidad entre sistemas.

Una vez que se establece un nivel básico de interfaz (una vez más, la interfaz lógica a través del software), el propio sistema operativo crea una interfaz común con sus diversos dispositivos de hardware (generalmente mediante el uso de "controladores de dispositivo"), y el sistema operativo puede controlar el hardware.


Finalmente, debe tenerse en cuenta que el BIOS también se usa para realizar modificaciones en las configuraciones de hardware de la computadora y almacenarlas en la EEPROM incorporada (para que su computadora recuerde los cambios la próxima vez que la inicie). Sin embargo, como dije anteriormente, una vez que se carga el sistema operativo, tiene el control total de la computadora.

Esto permite a los fabricantes de placas base desarrollar software que le permite realizar estos cambios desde su sistema operativo, en lugar de tener que reiniciar en el BIOS. Nuevamente, esto depende mucho del hardware y el software, pero demuestra que toda la interfaz de la computadora es relativa. El BIOS es exactamente lo que su nombre implica: un sistema básico de entrada / salida, para permitir una interfaz de software común para que un programa más avanzado ("sistema operativo") tome el control de la máquina.

Penetración
fuente
2
Cuando inicia la computadora, el BIOS se ejecuta como código de máquina en el procesador. Puede pensarlo así, pero en realidad no está "apagado", simplemente cambia para ejecutar el sistema operativo. Cuando inicia la computadora, el BIOS le dice a la computadora que comience a ejecutar el código de la máquina almacenado en la ubicación X. En términos más comunes, el BIOS solo inicializa su hardware y le indica a la computadora dónde continuar ejecutando el código.
Avance
13
El BIOS / OS todo en uno NO es imposible. No sé por qué todos aquí siguen diciendo esto. Tener cada parte en dispositivos / almacenamiento separados no significa que no sean parte de la misma entidad lógica. Las computadoras anteriores a la PC de IBM tenían todo en uno, es decir, BIOS fue fabricado y desarrollado por la misma que desarrolló el núcleo del sistema operativo. De hecho, las actualizaciones del sistema operativo a veces incluían actualizaciones del BIOS.
m0skit0
3
@Oliver En realidad, con ACPI, las funciones del BIOS se usan rutinariamente después del arranque del sistema operativo.
derobert
1
El BIOS permite que el sistema operativo (capa de software) interactúe con el hardware. El BIOS y el sistema operativo tienen diferentes propósitos. Son dos partes de un todo. Uno no reemplaza a otro.
Ben Richards
1
@Breakthrough: depende de quién fabrica el hardware;) En el caso de las PC de IBM, la evolución lógica fue de fabricantes independientes de BIOS y SO debido a la multiplicidad de tipos de hardware. Esto no sucedió en los viejos tiempos. Es por eso que la PC fue una revolución (afortunada, excepto por tener M $ sin razón ...) que cambió todo el mercado de la informática.
m0skit0
7

Su sistema operativo está en su disco duro, si enciende su computadora, mágicamente no comenzará a leer desde ese disco duro. Es el BIOS el que carga el cargador de arranque desde el disco duro , además de realizar algunas pruebas y permitirle configurar ciertas configuraciones del BIOS.

Su sistema operativo no puede hacer eso porque está en el disco duro y no en su ROM.

Por lo tanto, necesita un BIOS o una tecnología similar (pero diferente) como EFI ...

Es posible colocar parte del sistema operativo en la ROM (responsable de cargar el gestor de arranque del sistema operativo) por el fabricante; sin embargo, esto no es ampliamente aplicable y hay un BIOS o EFI disponible de todos modos.

Tamara Wijsman
fuente
1
Estás mezclando dos conceptos diferentes. El BIOS es independiente del sistema operativo, es decir, el BIOS podría ser parte del sistema operativo. Por ejemplo, si está hecho por el mismo fabricante y solo funciona con ese sistema operativo, como los bootstrappers de la consola de juegos.
m0skit0
55
"El BIOS es independiente del sistema operativo, es decir, el BIOS podría ser parte del sistema operativo". ¿Eh? La contradicción es muy contradictoria, jajaja.
Avance
2
Las consolas de juego son computadoras, al igual que Atari, Amiga y Macs antiguas, por lo que definitivamente es relevante. @Breakthrough: eso no es contradictorio. Significa que el BIOS no tiene nada que ver con el sistema operativo y, por lo tanto, puede ser parte (o no) de él.
m0skit0
@TomWijsman Eres el único trolling aquí. Las consolas de juegos son un subconjunto de computadoras. Si es posible que algunas consolas lo hagan, entonces es posible para algunas computadoras. Además, no use negrita así como así. Es inapropiado.
luiscubal
1
@TomWijsman tiene razón, si las consolas de juegos pueden hacerlo, también pueden hacerlo las computadoras. Además, siempre y cuando no sea una pregunta o respuesta, no veo ningún problema con que esté fuera de tema. Los comentarios son comentarios, después de todo; nada más y nada menos. (No hay comentarios sobre el tema audaz, para cada uno lo suyo, aunque eso se ocupa más de la terminología.)
Avance
6

No hay razón lógica real. Es más una cuestión de legado e historia.

  1. No hay requisito de que una computadora deba tener un BIOS instalado. Es legado de IBM PC. Aunque esto resultó ser una buena idea

  2. Tener el sistema operativo haciendo eso realmente no cambiaría nada porque aún haría algo como lo hace el BIOS. Por supuesto, el sistema operativo debería estar en una ROM, no en un dispositivo de E / S. El problema puede surgir por problemas de monopolio cuando un generador de sistemas operativos decide hacer que su BIOS sea incompatible con otros sistemas operativos. Tener fabricantes de BIOS separados de los sistemas operativos mejora la libertad sobre qué software podría ejecutarse.

m0skit0
fuente
1
¿Por qué no puede funcionar como BIOS? Da una explicación de por qué. Solo tiene que poner bootstrapper en una ROM y ya está. No me refiero a tenerlo completamente en ROM, y aun así funcionaría si la ROM es lo suficientemente grande (por supuesto, para ejecutarlo necesitaría cargar partes en la RAM, pero esto también lo hace el BIOS actual).
m0skit0
3
Él dijo "computadora", no PC. Y sí, es aplicable. De hecho, fue así antes que la PC de IBM (Atari, Amiga ... el BIOS es parte del sistema operativo).
m0skit0
2
Tonto, solía escribir software para computadoras integradas que no tenían BIOS ni SO, solo código de aplicación. ¿O no estamos hablando de todas las computadoras, solo de las que la mayoría de la gente piensa?
jwernerny
2
¿No es aplicable a gran escala? Mira cuántos Ataris, Amigas y Macs había antes de la PC.
m0skit0
2
El iPhone es una computadora y no creo que tenga un BIOS. Incluso antes de la era digital ... una computadora es una máquina programable que realiza operaciones y genera el mismo resultado para una entrada determinada, ¿verdad? Un telar Jacquard es una computadora, y ciertamente no tiene un BIOS (incluso no tiene un sistema operativo).
rds
5

Se requiere algo para iniciar el sistema operativo. Si el sistema operativo podría caber en alguna memoria no volátil, entonces podría iniciarse directamente, pero con sistemas operativos con todas las funciones como Windows, OSX o Linux, esto no es posible.

Lo que se necesita es un pequeño "SO" liviano que se pueda cargar en el encendido que hace las cosas básicas como la memoria y el acceso al disco y luego carga el sistema operativo. Si bien esto podría ser parte del sistema operativo en sí y no una entidad separada, hay otras razones por las que es posible que desee que otro proceso comience primero:

  1. Actualizaciones: si el SO se solucionó de esta manera, sería difícil actualizarlo si se necesitaran parches de seguridad. Se puede hacer: las actualizaciones de firmware se realizan todo el tiempo a dispositivos como enrutadores, etc., pero estos tienen sistemas operativos relativamente simples instalados.
  2. Flexibilidad: una computadora es una máquina de uso general y el mismo hardware puede ejecutar varios sistemas operativos diferentes. Tener un BIOS que luego carga el sistema operativo desde el disco significa que puede elegir cuál ejecutar, incluso puede ir tan lejos como tener varios instalados uno al lado del otro.

El proceso se conoce como bootstrapping .

ChrisF
fuente
1
Entonces, ¿la respuesta es porque tenemos muchos sistemas operativos diferentes? Quiero decir, si tenemos un solo modelo de sistema operativo para un hardware específico, ¿eliminaríamos la necesidad de un BIOS?
Diogo
1
No veo por qué no es posible que Microsoft hace un BIOS ...
m0skit0
1
No necesita todo el sistema operativo para caber en la memoria no volátil (que puede ser por cierto, solo necesita suficiente ROM: P). Solo necesitas el bootstrapper para estar allí.
m0skit0
1
@ m0skit0 Microsoft no puede hacer un BIOS ya que tendría que hacer un BIOS diferente para cada placa base en la que quiera que se ejecute su software. :)
Avance
1
Además, @ChrisF, colocar un sistema operativo en ROM socava el punto completo de un sistema operativo en primer lugar. Puede tener sentido usar la ROM para ejecutar algunos programas almacenados en el procesador directamente (lo que produciría un rendimiento mucho mejor), pero el objetivo de un sistema operativo es rechazar explícitamente este tipo de operación y proporcionar una interfaz de software común para hazlo
Avance
4

El concepto PC BIOS deriva de CP / M, un sistema operativo popular en las computadoras basadas en el bus Z-80 "S-100" de 8 bits antes de que la PC de IBM se hiciera cargo.

CP / M esperaba que las funciones dependientes del hardware estuvieran en una ROM (BIOS). Otra parte, cargada del disco por el gestor de arranque, era el software que soportaba el sistema de archivos CP / M (BDOS) y luego el último procesador de comando o "shell" (CCP). El hardware que CP / M debía soportar no era mucho: una unidad de disco, una pantalla, un puerto serie o dos (puertos COM o AUX) que podrían tener impresoras o módems conectados.

El BIOS de la PC realizó una función básica de arranque similar a la que hizo CP / M, y DOS utilizó las funciones del BIOS para realizar entradas y salidas básicas, como se esperaba. Los programadores terminaron pasando por alto estas funciones porque eran lentas. Esto llevó a los fabricantes de clones de PC a mediados de los años 80 a recrear la plataforma en su conjunto (tan fácil como IBM documentó la PC original muy bien por dentro y por fuera), en lugar de simplemente proporcionar un BIOS con interfaces compatibles, aunque también tenían que hacerlo.

En este punto, podemos decir que, para un sistema operativo moderno, el BIOS no es realmente necesario más allá del arranque del sistema. Sin embargo ...

Comenzando a principios de los 90, la noción de administración de energía se apoderó y el BIOS se encargó de esto. APM funciona bien con un sistema operativo de una sola tarea como DOS, pero no con sistemas operativos multitarea como Windows o Linux. Alrededor de este tiempo, el 386 estaba en plena vigencia, la CPU Intel que soportaba la multitarea real. DOS y el BIOS no se actualizaron en respuesta a las nuevas capacidades de esta CPU, principalmente porque todas las CPU Intel todavía se ejecutarán en el modo de compatibilidad heredado de 16 bits para el que se diseñó el PC-BIOS original. Por lo tanto, los sistemas operativos modernos ignoran / omiten toda la funcionalidad de entrada / salida similar a CP / M del BIOS, excepto posiblemente durante las primeras etapas de arranque.

Finalmente, se desarrolló ACPI, en su mayoría parte de la BIOS, que admitía la administración de energía y la configuración de cosas (a menudo portátiles) específicas de la plataforma. ACPI también maneja el estado final de cambio de energía de hibernación, suspensión o apagado.

Así que en estos días es ACPI y su sucesor, EFI, que mantiene algo como el BIOS una necesidad de las PC. El concepto general es que ACPI sea la interfaz entre la plataforma de cosas o la placa base específica y el sistema operativo, por lo que una compilación separada del sistema operativo no tiene que estar hecho para cada tipo diferente de placa base.

Las placas de desarrollo que albergan CPU ARM que ejecutan Linux (así como hardware de teléfonos celulares) tienen este problema. Por lo general, vendrán con un firmware solo para el gestor de arranque, como U-boot, pero prácticamente el sistema operativo debe admitir cada placa como una plataforma separada.

LawrenceC
fuente
3

En cierto sentido, tienes razón. El BIOS y el sistema operativo en parte hacen lo mismo. La separación en BIOS y OS es únicamente por flexibilidad.

El BIOS generalmente es creado por un fabricante de hardware. El hardware debe garantizar que exista una funcionalidad básica , por ejemplo, que se pueda leer una unidad de disco y que se muestre una pantalla básica para diagnósticos y errores. De ahí el nombre "Sistema básico de entrada y salida".

Esto se puede hacer, hasta cierto punto, sin mayor conocimiento de los componentes reales realmente presentes en el sistema específico, ya que todos tienen que soportar un cierto estándar pequeño de BIOS. Esto permite a los proveedores crear un sistema completo a medida. El BIOS solo tiene que hacer lo suficiente para iniciar el sistema operativo. Hay algunas convenciones sobre dónde están estos puntos de partida, por lo que solo intenta uno tras otro. Esto también permite el uso de diferentes sistemas operativos en el mismo hardware. (hay flexibilidad, de nuevo)

Una vez que el sistema operativo (o al menos su gestor de arranque) no es encontrado e iniciado por el BIOS, el BIOS mismo queda en gran parte obsoleto. El sistema operativo moderno utiliza muy poco o nada del BIOS funcionalmente después de la carga.

Si desea hacer que el sistema operativo haga todo el trabajo, tendría que colocar el sistema operativo en un lugar donde el hardware pueda acceder a él sin la ayuda preliminar de un software (ROM). Esto puede ser posible para algunos sistemas cerrados, donde la flexibilidad no es una preocupación. Si piensa en incorporar soporte de hardware en otro hardware, básicamente está creando una especie de BIOS nuevamente ...

Otra preocupación es el tamaño y el costo de la memoria. Los sistemas operativos con todas las funciones son grandes e intentar introducir un sistema operativo de varios gigabytes en la ROM es costoso, además de los problemas de seguimiento de parchearlo y actualizarlo.

Entonces, no, no hay una razón técnica, sino muchas prácticas, especialmente para la plataforma flexible de PC.

Oliver
fuente
3

Para ejecutar un programa en una PC moderna, ya debe tener un programa en ejecución que sepa cómo operar el hardware y cargar programas en la memoria. Este problema de huevo y gallina se resuelve implantando un programa básico en el hardware mismo.

Este sistema básico de entrada / salida (BIOS) es muy pequeño y de alcance muy limitado, pero proporciona una base suficiente para que los cargadores de arranque de la segunda etapa, como GRUB o NTLDR , puedan cargarse y ejecutarse. Estos cargadores de segunda etapa son más sofisticados que el programa BIOS, lo que les permite proporcionar una base más sólida para el sistema operativo adecuado para cargar y asumir el control.

Andrew Lambert
fuente
Buena explicación no técnica.
Caracol mecánico
1

Si una CPU tiene la capacidad de direccionar un disco duro directamente, sin depender de BIOS, o EFI u otro código en ROM (o NVRAM o lo que tenga), entonces, en teoría, tal CPU podría cargar un sistema operativo desde el disco a la RAM y comenzar ejecutándolo

En realidad, en teoría, tal CPU podría incluso ejecutar instrucciones sin cargarlas en la RAM. No hay una razón teórica de que una computadora no pueda usar un disco duro como almacenamiento primario. Pero esto sería muy, muy lento.

Esto significaría tener un código adicional en la CPU para acceder al disco y conectar algunos conceptos sobre discos, como tablas de partición y sistemas de archivos en la CPU. Las CPU en estos días son lo suficientemente grandes como para hacer esto, pero no sería un enfoque muy flexible o eficiente para diseñar una CPU.

david25272
fuente
Solía ​​ser que las computadoras se ejecutaban directamente desde el disco / tambor, sin una cantidad significativa de RAM.
Daniel R Hicks
-1

¡No lo necesita!

Lo que a menudo se llama BIOS es un conjunto de 3 cosas.

  • Un cargador de arranque
  • Una herramienta de configuración: ahora en su mayoría obsoleta, excepto el orden de arranque y el reloj. La mayoría del resto debe ser automático o establecido por el fabricante.
  • El BIOS: una biblioteca de rutinas de entrada y salida para ayudar al sistema operativo a comunicarse con el hardware. Lamentablemente, la BIOS es de 16 bits, está desactualizada y no puede ser utilizada por los sistemas operativos modernos, por lo que se ignora en gran medida.
ctrl-alt-delor
fuente
El cargador de arranque es parte del BIOS.
Daniel R Hicks
@Daniel He reescrito para aclarar, gracias.
ctrl-alt-delor