Framebuffer

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

Se le llama framebuffer a una categoría de dispositivos gráficos, que representan cada uno de los píxeles de la pantalla como ubicaciones en la memoria de acceso aleatorio. También se le llama así en el área de los sistemas operativos, a los dispositivos que usan o aparentan usar dicho método de acceso a dispositivos gráficos.

Modos de visualización[editar]

Un framebuffer cgsix de Sun.

Los framebuffers usados en ordenadores personales muchas veces tienen un conjunto de "modos" bajo los cuales el framebuffer puede operar. Estos modos reconfiguran automáticamente el hardware para mostrar diferentes resoluciones, profundidades de color, diseños de memoria y tasas de refresco.

En el mundo de Unix (las máquinas y los sistemas operativos) estas convenciones normalmente fueron evitadas en favor de una manipulación directa de la configuración del hardware. Esta manipulación era mucho más flexible de forma que cualquier resolución, profundidad de color y ratio de refresco podía conseguirse - limitándose únicamente por la memoria disponible por el framebuffer.

Un efecto colateral de este método era que el visualizador podía ser llevado más allá de sus capacidades. En algunos casos provocando daños al hardware de visualización.[1] Los monitores CRT modernos corrigen este problema introduciendo circuitos de protección "inteligentes". Cuando se cambia de modo de visualización, el monitor intenta obtener una señal de sincronización en la nueva frecuencia de refresco. Si el monitor no es capaz de obtener una señal de sincronización, o si la señal está fuera del rango de sus limitaciones de diseño, el monitor ignora la señal de framebuffer y seguramente muestre un mensaje de error al usuario.

Los monitores de cristal líquido tienden a contener circuitos de protección similares, pero por razones diferentes. Como éstos tienen que muestrear digitalmente la señal de visualización, cualquier señal que esté fuera de su rango no puede ser visualizada físicamente en el monitor.

Hardware[editar]

En los dispositivos gráficos tipo framebuffer, todos y cada uno de los píxeles desplegados en cualquier instante determinado en la pantalla, están almacenados en una porción de la memoria principal de la computadora en forma de octetos binarios. Debido a que las pantallas poseen diferentes capacidades de despliegue de colores (lo que se conoce como profundidad de color), la cantidad de información necesaria para representar un píxel varía. Las pantallas generalmente admiten 8, 15, 16 ó 24 bits de profundidad de color lo que equivale a 256, 32.768, 65.536 ó 16.777.216 colores respectivamente. Para cambiar la imagen presente en la pantalla, basta con escribir las direcciones de memoria dedicadas al píxel que se quiere modificar.

La zona de memoria dedicada al framebuffer es habitualmente accesible para la unidad central de procesamiento como una zona cualquiera de la memoria de acceso aleatorio para lectura y escritura, salvo que ésta se reserva exclusivamente para el despliegue de imágenes, y es común que se le asigne un rango mínimo y máximo de direcciones fijo. La memoria del framebuffer es lineal, contigua y direccionable como cualquier otro trozo de la memoria de acceso aleatorio; de modo que para seleccionar un píxel dado hay que conocer su dirección, y para ello, calcular el desplazamiento adecuado a partir de la dirección de inicio de la memoria del framebuffer.

De tal modo que el ordenador modifica efectivamente las imágenes desplegadas en pantalla modificando el contenido de la zona de memoria citada anteriormente, cosa que cabe perfectamente en la definición comúnmente aceptada de lo que es un framebuffer.

Sistemas operativos[editar]

El framebuffer es un dispositivo virtual del sistema operativo que se presenta ante las aplicaciones de diferentes maneras en función del sistema de que hablemos, aunque generalmente aparece como un archivo o un bloque de memoria de acceso aleatorio reservado en la computadora, y que puede ser accedido en lectura/escritura por uno o más procesos; en este archivo o zona de memoria especial cualquier escritura modifica directamente las imágenes desplegadas en el dispositivo de vídeo, para que de esa manera los programas puedan mostrar información en pantalla sin preocuparse de los detalles de implantación, ni de la interacción real entre el ordenador y el dispositivo de vídeo.

Sin embargo, la idea de framebuffer se asocia más bien con aquellos dispositivos del sistema que son visibles o accesibles a las aplicaciones de usuario. En algunos sistemas operativos puede ocurrir que el acceso a la memoria del dispositivo de vídeo esté oculto a las aplicaciones, y que toda modificación de las imágenes desplegadas en pantalla se efectúe por medio de una API (como ocurre por ejemplo, en el caso de los sistemas operativos Windows).

Véase también[editar]

Referencias[editar]

  1. http://tldp.org/HOWTO/XFree86-Video-Timings-HOWTO/overd.html XFree86 Video Timings HOWTO: Overdriving Your Monitor