¿El BIOS se considera un sistema operativo? [cerrado]

11

Esta pregunta viene a la mente cuando se trata de matrices RAID, pero no es necesariamente aplicable al tema.

¿Cómo es que el BIOS puede leer desde un disco duro para cargar efectivamente el sistema operativo, cuando muchos sistemas operativos necesitan controladores para poder hacer lo mismo? ¿El BIOS tiene una lista de controladores que extrae de uno de los principales sistemas operativos como Windows o Linux?

Chad Harrison
fuente
2
Los administradores de la SU no son constructivos
Stumbler

Respuestas:

10

En primer lugar, el BIOS es el sistema básico de entrada / salida, no técnicamente un sistema operativo ... En cuanto a la carga de RAID y tal, lo que sucede durante el arranque es que la máquina consulta cualquier tarjeta adicional preguntando si tienen un BIOS para cargar. La tarjeta del Sr. RAID grita "Ya, primero tengo algo que hacer", luego enciende su "BIOS" (en este caso, un sistema operativo), hace algunos cálculos por sí mismo, luego pasa el control al BIOS principal ("Oye, Ya terminé, aquí está toda la información que necesita saber sobre una necesidad de saber, ¿sabes? ").

Una vez que el BIOS principal vuelve a tener el control, puede pasar como diciendo "Ahhh, veo que el Sr. RAID tiene un volumen de arranque, lo revisaré si es posible, luego probaré mis otros trucos".

Entonces, no "técnicamente" es el BIOS un sistema operativo, pero es un sistema de Entrada / Salida para prepararse para el sistema operativo real

Lucas canadiense
fuente
11
" él enciende su" BIOS "(en este caso, un SO) ". Las extensiones de BIOS o BIOS simplemente no son un SO. El propósito principal de un sistema operativo es la gestión de recursos . El BIOS, como programa de arranque independiente, no se molesta en mantener ninguna información de asignación de recursos. No hay rutinas abiertas () o cerradas () proporcionadas por el BIOS para restringir el acceso al hardware. Cualquier código de ejecución puede utilizar las funciones de lectura / escritura del BIOS. El BIOS no cumple con el propósito básico del sistema operativo.
aserrín
@sawdust ¿qué hay de habilitar o deshabilitar dispositivos a bordo? Eso restringiría el acceso al hardware.
Bon Gart
@BonGart: la activación / desactivación de BIOS es simplemente una herramienta de configuración que sustituye la instalación o eliminación física del dispositivo. Es una acción de todo el sistema y está vigente hasta una reconfiguración o falla del dispositivo. En realidad, me refería a los conceptos del sistema operativo para la sincronización y la exclusión, como mutexes y semáforos que pueden controlar / restringir en el proceso y / o el nivel de hilo. O, por ejemplo, una cola de impresión; El programa de spool del sistema operativo es el propietario de la impresora y no permite el uso directo de esa impresora. Debe enviar su trabajo de impresión a la cola de impresión, que pone en cola las solicitudes de impresión.
aserrín
10

El BIOS , literalmente un "sistema básico de entrada / salida", es un conjunto de pequeños programas codificados en la placa base de una computadora (generalmente almacenados en una EEPROM ). Estos programas incluyen la capacidad de modificar configuraciones, escribir texto y tomar la entrada del usuario desde dispositivos básicos de E / S (la placa base tiene que emularlos para dispositivos avanzados de mouse / teclado VGA y USB), y lo más importante, proporciona la funcionalidad para buscar e iniciar sistemas operativos presentes en cualquier dispositivo de almacenamiento atacado.

Por sí solo, el BIOS no es un sistema operativo. El BIOS es un pequeño programa para cargar realmente un sistema operativo. Si bien es posible en algunos sistemas operativos invocar los diversos subsistemas del BIOS, esto requiere que la CPU vuelva al modo real, ya que el BIOS no proporciona soporte de memoria virtual, cambio de tareas (y, por lo tanto, la capacidad de ejecutar programas ), o el soporte del controlador del dispositivo (y, por lo tanto, no puede acceder directamente al hardware fuera del rango accesible del mapa directo, ni a nada que no esté cubierto en las llamadas de interrupción del BIOS ).

Como dijo Linus Torvalds :

No es que yo alguna vez afirme que el BIOS tampoco es maravilloso, pero al menos todo el mundo sabe que el BIOS es solo un cargador de arranque, y no intenta hacer nada más.

La mayor ventaja de un BIOS es que es tan inconveniente y obviamente pasado de moda, que tienes que estar loco para querer hacer algo serio en él, no tienes idea de que sea un marco grandioso para otra cosa. que "solo carga el sistema operativo y sal de ahí".

Finalmente, debe tenerse en cuenta que un BIOS es significativamente diferente de una UEFI ( Interfaz de firmware extensible unificada ), esta última está significativamente más cerca de proporcionar una interfaz básica del sistema operativo (que proporciona controladores de dispositivos y soporte de aplicaciones). Todavía es cuestionable si incluso el UEFI puede considerarse un verdadero sistema operativo por sí mismo, aunque está significativamente más cerca de ser considerado un sistema operativo que un BIOS.

cp2141
fuente
2

Para lidiar con los muchos comentarios y puntos planteados, he editado la respuesta una vez más.

¿Es el BIOS un sistema operativo?

Bueno, si un sistema operativo se define como un software que permite a un usuario interactuar con el hardware de una "computadora", entonces sí ... técnica y literalmente es un sistema operativo.

¿El cambio de tareas define qué hace un sistema operativo?

Teniendo en cuenta que MS-DOS era un sistema operativo válido, y hasta la versión 5 no se admitía el cambio de tareas, el cambio de tareas no afecta si el software es un sistema operativo o no.

¿La virtualización de la memoria define qué hace un sistema operativo?

Nuevamente, usando MS-DOS como ejemplo, aunque podría agregarse soporte para la virtualización de memoria ejecutando extensores durante el proceso de carga, no fue necesario usarlos. Por lo tanto, la virtualización de la memoria tampoco es un requisito previo de lo que constituye un sistema operativo.

Si está almacenado en el firmware, ¿es un sistema operativo?

Algunos argumentarían que un enrutador no usa un sistema operativo. Por ejemplo, parece haber dudas sobre si DD-WRT se considera un sistema operativo. ¿Hay dispositivos que almacenan un sistema operativo en firmware? Los teléfonos modernos, iPods y más almacenan sistemas operativos complejos que pueden tener programas agregados en el firmware. Entonces, solo porque un SO está cargado en el Firmware, esto no excluye que el software en cuestión sea considerado un Sistema Operativo.

Si no puede agregar programas, no es un sistema operativo.

Aléjese de un teléfono inteligente moderno. Mira un teléfono celular desechable barato. Tiene un sistema operativo almacenado en el firmware, pero no puede agregar programas. Se ejecuta como es, y solo con la funcionalidad que se ofrece. Navega por los menús como lo haría con cualquier otro sistema operativo, elige lo que quiere hacer (jugar, etc.) y con una buena cantidad de ellos desde hace unos años, no tenían la capacidad de agregar ningún software adicional.

Si no es moderno, ¿no es un sistema operativo?

El punto en la historia en el que se creó y lanzó el sistema operativo no tiene relación con si es o no un sistema operativo.

Por lo tanto, el BIOS puede no ser bonito y puede no ofrecerle una funcionalidad extrema. Sin embargo, sigue siendo un sistema operativo.

Bon Gart
fuente
3
La definición de sistema operativo en wikipedia es cuestionable en sí misma. (Escuché algunas otras) Pero, de todos modos, se está perdiendo totalmente [...] el suministro de servicios comunes para programas de computadora , lo que creo que es esencial para un sistema operativo.
Baarn
1
Me inclino más hacia el firmware que el sistema operativo. Una BIOS no tiene inteligencia, solo se comunica con el hardware a un nivel muy bajo y pasa esa información al sistema operativo. Sin embargo, UEFI está cambiando el juego.
Moab
1
Es una línea muy fina entre firmware y sistema operativo, subjetiva como el infierno.
Moab
1
OK, me rindo, es un biOS, ahora puedes cortarme la cabeza ... ;-)
Moab
2
@BonGart a BIOS carece de soporte de memoria virtual y programación de tareas, y por lo tanto, carece de la capacidad de ejecutar programas (es decir, no puede ejecutarse simultáneamente con ninguna otra cosa). Si bien estoy de acuerdo en que proporciona soporte básico de E / S, es un pequeño programa y no un sistema operativo ... ¿O clasificaría el pequeño fragmento de código en mi microcontrolador que recibe una contraseña y enciende un LED (proporcionando así I básico / O soporte) un sistema operativo también?
Avance
2

Lo que es o no es un "sistema operativo" es una cuestión de juicio. Podría decirse (y argumentaba esto en 1980), la PC / MS DOS original no era un "sistema operativo" (a pesar de su nombre), ya que proporcionaba solo servicios de E / S (y un analizador de comandos tosco) y ninguna verdadera instalación de administración del sistema. .

OTOH, muchas implementaciones de BIOS ahora incluyen algún grado de función de hipervisor que gestiona los recursos del sistema de una manera bastante sofisticada.

En cuanto a cómo el BIOS logra cargar desde el disco, etc., sin controladores, por convención / estándar, los dispositivos "de arranque" incluyen un conjunto de operaciones que se pueden usar sin tener que configurar una infraestructura de administración sofisticada. En algunos casos, esto es solo la capacidad de leer algunos sectores en una ubicación relativamente fija, pero eso es todo lo que se necesita en la mayoría de los casos.

Daniel R Hicks
fuente
Entonces, enciende la computadora, carga MS-DOS y luego puede ejecutar programas. Dices que MS-DOS no era un sistema operativo ... ¿dónde estaba el sistema operativo entonces? Parece que está diciendo que MS-DOS no es lo que considera un sistema operativo real, incluso si técnicamente funcionaba como uno (y por lo tanto era uno).
Bon Gart
1
Solía ​​haber muchas computadoras sin "sistema operativo", solo un "ejecutivo en tiempo de ejecución" o algo así que proporcionara servicios de archivos y un analizador de comandos. Nunca los llamaron "sistemas operativos".
Daniel R Hicks
2
@bonGart "¿ dónde estaba el sistema operativo entonces? ", no es necesario tener un sistema operativo, es decir, un administrador / asignador de recursos, para ejecutar programas en una computadora. Las primeras computadoras (o simples) (incluidos los micros que ejecutan CP / M) simplemente tenían un programa de cargador residente, y el programa cargado tenía acceso completo a todos los recursos de la computadora. No hubo contención por los recursos, por lo tanto, no se necesita un sistema operativo.
aserrín
@sawdust - Correcto. Y un paso más allá del "cargador de programas residentes" fue una biblioteca de tiempo de ejecución residente (cinta de papel, disquete y funciones de teclado / pantalla, tal vez impresora) y un "monitor" o "ejecutivo" o algo así que detectaría cuándo un programa terminó de cargar el siguiente. DOS no era mucho más sofisticado que estos.
Daniel R Hicks