¿Cómo controla el BIOS los dispositivos de E / S sin ningún tipo de controladores?
Por ejemplo, cómo se muestra una imagen mientras la computadora se inicia si el BIOS no tiene controladores para la tarjeta gráfica.
¿Existe algún tipo de controlador genérico que sea estándar en todos los BIOS y hardware que permita al BIOS realizar funciones básicas sin importar qué hardware esté instalado?
Cualquier ayuda sería apreciada.
Gracias.
Do you have a specific problem your trying to solve?
Sí, están tratando de resolver el problema de encontrar una respuesta a la pregunta que hicieron. ¬_¬Respuestas:
Estándares Todos los componentes implementan una interfaz básica, y el BIOS está programado para usarla. Por supuesto, debido a que es una interfaz básica (eso es lo que significa 'B' en BIOS), no puede aprovechar las capacidades completas del hardware; eso queda para que el software lo implemente a través de controladores que pueden acceder al hardware directamente.
Originalmente, los fabricantes de BIOS crearon un conjunto de API que se esperaba que los dispositivos usaran si querían ser compatibles. Lo hicieron a través de " interrupciones ", que es una forma en que un dispositivo, bueno, interrumpe el programa para hacerle saber que algo sucedió y viceversa.
En el caso de la pantalla previa al arranque, el firmware del adaptador de video implementa VESA (Video Electronics Standards Association), que es un estándar creado para simplificar el acceso al hardware de la pantalla. El BIOS sabe cómo acceder al hardware de video utilizando las funciones estándar proporcionadas. Es algo similar a cómo se implementó DirectX como una API de nivel superior para el hardware, de modo que los programadores no tuvieron que dar cuenta de cada configuración de hardware.
Más o menos. No es un controlador, sino una API estándar ; Un conjunto de funciones de programación que se pueden utilizar para hacer cosas básicas como inicializar un dispositivo o datos de entrada y salida.
Si los fabricantes quieren vender sus productos, deberán asegurarse de que al menos implementen las API estándar para que sean compatibles. De esa forma, el sistema puede detectar el hardware y, en el caso de dispositivos críticos para el arranque, pueden acceder a ellos a un nivel básico hasta que se pueda cargar un controlador de software que sepa cómo acceder a ellos por completo.
fuente
El BIOS en una PC estaba destinado a cumplir una función similar a la BIOS en un sistema CP / M de 8 bits, popular antes de que la PC se hiciera cargo a mediados de los años 80. El BIOS tenía la intención de contener un gestor de arranque mínimo y rutinas de bajo nivel dependientes del hardware para realizar entradas y salidas a algunos dispositivos (pantalla, disco, cinta, puerto COM). El conocimiento para hacer esto se incorporó a la ROM: no se necesita un controlador y, por supuesto, no se necesita hardware adicional compatible con esta ROM. (Cosas como la administración de energía y ACPI llegaron mucho más tarde, en los años 90, después de que la PC se había establecido como una plataforma ubicua).
(El "sistema de archivos" CP / M estaba en un componente cargado fuera del disco llamado BDOS; asimismo, el conocimiento del sistema de archivos FAT y sus interfaces está en (al menos uno de) dos archivos ocultos MSDOS.SYS o IO.SYS, no parte de la ROM del BIOS.)
Sin embargo ... El BIOS de la PC, a diferencia de CP / M, admitía la noción de "ROMS de opción" que podría incluirse en una tarjeta de expansión. Entonces había al menos un mecanismo mínimo para extender el BIOS. Las tarjetas de video que comienzan con CGA (MDA, el predecesor de CGA, puede que también lo haya hecho) tendrían una ROM opcional que extendía o agregaba funciones de E / S a la interfaz del BIOS. (Esta es la razón por la que ve un mensaje de NVidia antes de que se inicie su BIOS). También lo hicieron los controladores duros y las tarjetas SCSI. Todos estos todavía lo hacen. Muchas tarjetas de red antiguas tienen un socket para una ROM de arranque.
Tenga en cuenta también que los fabricantes de clones de PC que surgieron en los años 80 decidieron rápidamente no proporcionar solo una interfaz de BIOS compatible, sino que terminaron teniendo que copiar la plataforma de la PC en su conjunto, incluido todo el hardware de bajo nivel, como el chip del temporizador , interrumpir el controlador, etc. (Esto fue relativamente fácil ya que poco de esto era propiedad de IBM). Esto se debió a que el BIOS tardó en hacer las cosas y los programadores accedieron al hardware directamente, particularmente para los juegos.
Por lo tanto, entre las ROM opcionales y este consenso del hardware estándar que forma la plataforma para PC, así como el hecho de que se ha mantenido compatible con versiones anteriores a lo largo de la evolución de la PC, algo que desee utilizar la pantalla sin un controlador puede:
Todo el hardware de la pantalla de la PC aún funciona en modo "compatible con VGA" durante el arranque. El adaptador original IBM VGA tenía modos compatibles con las tarjetas EGA, CGA y MDA anteriores. Todo esto significa que algo que se ejecuta desde el BIOS o fuera de un sistema operativo puede suponer que todavía puede leer y escribir la misma memoria conectada a la pantalla ahora que en 1985, por convención.
fuente