b'\n_START_ARTICLE_\nFramebuffer\n_START_PARAGRAPH_\nSe le llama framebuffer a una categor\xc3\xada de dispositivos gr\xc3\xa1ficos, que representan cada uno de los p\xc3\xadxeles de la pantalla como ubicaciones en la memoria de acceso aleatorio. Tambi\xc3\xa9n se le llama as\xc3\xad en el \xc3\xa1rea de los sistemas operativos, a los dispositivos que usan o aparentan usar dicho m\xc3\xa9todo de acceso a dispositivos gr\xc3\xa1ficos.\n_START_SECTION_\nHistoria\n_START_PARAGRAPH_\nLos inform\xc3\xa1ticos discutieron durante mucho tiempo las ventajas del uso de este dispositivo, pero no fueron capaces de producir una m\xc3\xa1quina con suficiente memoria a un coste econ\xc3\xb3micamente viable. En el a\xc3\xb1o 1969, Michael A. Noll de los Laboratorios Bell implement\xc3\xb3 una pantalla digitalizada con una memoria de fotograma intermedia. M\xc3\xa1s tarde, el sistema de Bell Labs fue ampliado para mostrar una imagen con una profundidad de color de tres bits en un monitor de televisi\xc3\xb3n en color est\xc3\xa1ndar. Hasta una pantalla antes escaneada se llev\xc3\xb3 a cabo en el Laboratorio Nacional de Brookhaven. Los avances en la memoria de circuito integrado en la d\xc3\xa9cada de 1970 produjeron un coste m\xc3\xa1s pr\xc3\xa1ctico para crear framebuffers capaces de almacenar una imagen de video est\xc3\xa1ndar._NEWLINE_El a\xc3\xb1o 1972, Richars Shoup desarroll\xc3\xb3 el sistema SuperPaint en Xerox PARC. Este sistema ten\xc3\xada 311,040 bytes de memoria y era capaz de almacenar 640 por 480 p\xc3\xadxeles de datos de 8 bits de profundidad de color. La memoria se dispersa a trav\xc3\xa9s de 16 placas de circuitos, cada uno cargado con m\xc3\xbaltiples 2-kilobit fichas de registro de desplazamiento. Este dise\xc3\xb1o requiere que el framebuffer total deba de ser implantado como un registro e desplazamiento de 307.200 bytes, que se movi\xc3\xb3 en sincronizaci\xc3\xb3n con la se\xc3\xb1al de salida de televisi\xc3\xb3n. El principal inconveniente de este sistema era que la memoria no era de acceso aleatorio._NEWLINE_Shoup tambi\xc3\xa9n fue capaz de usar el framebuffer SuperPaint para crear un sistema de captura de v\xc3\xaddeo digitales. Mediante la sincronizaci\xc3\xb3n de la se\xc3\xb1al de salida de se\xc3\xb1al de entrada, Shoup era capaz de sobreescribir cada p\xc3\xadxel de datos a medida que iba movi\xc3\xa9ndose. Shoup tambi\xc3\xa9n experiment\xc3\xb3 con la modificaci\xc3\xb3n de se\xc3\xb1ales de salida usando las tablas de colores. Estas tablas de colores permiten que el sistema SuperPaint produjera una amplia variedad de colores fuera de la gamma de los datos de 8 bits limitada que conten\xc3\xada. Este esquema ser\xc3\xada m\xc3\xa1s tarde convertido en alguna cosa comuna en los framebuffers inform\xc3\xa1ticos._NEWLINE_En 1974, Evans & Sutherland lanz\xc3\xb3 el primer uso comercial de este dispositivo, que costaba sobre 15.000$. Fue capaz de producir una resoluci\xc3\xb3n de hasta 512 por 512 p\xc3\xadxeles en escala de grises de 8 bits, y se convirti\xc3\xb3 en una gran ayuda para los investigadores gr\xc3\xa1ficos que no ten\xc3\xadan los recursos para construir su propio dispositivo. El Instituto Tecnol\xc3\xb3gico de Nueva York m\xc3\xa1s tarde cre\xc3\xb3 el primer sistema de 24 bits usando tres de los frambuffers de Evans & Shuterland. Cada uso de este dispositivo se conectaba a una salida de color RGB (uno para el rojo, otro para el verde y otro para el azul), con un miniordenador Digial Equipment Corporaci\xc3\xb3n PDP 11/04, teniendo un control de los tres dispositivos en uno._NEWLINE_En 1975, la compa\xc3\xb1\xc3\xada brit\xc3\xa1nica Quantel produjo la primera emisi\xc3\xb3n a todo color framebuffer comercial: el Quantel DFS 3000. Fue usado por primera vez en la cobertura televisiva de los Juegos Ol\xc3\xadmpicos de Montreal 1976 para generar una inserci\xc3\xb3n de imagen en imagen de la antorcha ol\xc3\xadmpica, mientras que en la resta de la imagen aparec\xc3\xada el corredor entrando en el estadio. _NEWLINE_La r\xc3\xa1pida mejora de la tecnolog\xc3\xada de circuitos integrados hizo posible que muchos de los ordenadores personales de la d\xc3\xa9cada de 1970 (como el Apple ll) dispusiesen de framebuffers a color. Aunque al principio se burlaron de los malos resultados en comparaci\xc3\xb3n con los dispositivos gr\xc3\xa1ficos m\xc3\xa1s sofisticados usados en los ordenadores como el Atari 400, con el tiempo los framebuffers se convirtieron en el est\xc3\xa1ndar para todos los ordenadores personales. Hoy en d\xc3\xada, casi todos los ordenadores con capacidades gr\xc3\xa1ficas utilizan este dispositivo para la generaci\xc3\xb3n de la se\xc3\xb1al de v\xc3\xaddeo. _NEWLINE_Los framebuffers tambi\xc3\xa9n se hicieron populares a las estaciones de trabajo de gama alta y a las placas del sistema de juegos electr\xc3\xb3nicos a lo largo de la d\xc3\xa9cada de 1980. SGI, Sun Microsystems, HP, DEC e IBM usaron framebuffers para sus ordenadores de trabajo. Estos framebuffers eran en general de una calidad mucho m\xc3\xa1s alta que la que se pod\xc3\xada encontrar en la mayor\xc3\xada de los ordenadores personales, y si se utilizaban regularmente a la televisi\xc3\xb3n, la impresi\xc3\xb3n, el modelaje para el ordenador y a los gr\xc3\xa1ficos en 3D. Los framebuffers tambi\xc3\xa9n fueron utilizados por Sega por sus juegos de arcade de alta gama, que tambi\xc3\xa9n eran de una calidad m\xc3\xa1s alta que en los ordenadores personales. _NEWLINE_Los ordenadores Amiga, con un dise\xc3\xb1o de gran rendimiento de los gr\xc3\xa1ficos, crearon en la d\xc3\xa9cada de 1980 un vasto mercado de las tarjetas gr\xc3\xa1ficas basadas framebuffer. Digno de menci\xc3\xb3n fue la tarjeta gr\xc3\xa1fica en Amiga A2500 Unix, que fue en 1991 la primera computadora para poner en pr\xc3\xa1ctica un programa de servidor X11 como un servidor para alojar entornos gr\xc3\xa1ficos y la interface gr\xc3\xa1fica OPEN LOOK, de un usuario de alta resoluci\xc3\xb3n (1024x1024 o 1024x768 a 256 colores). La tarjeta gr\xc3\xa1fica por A2500 Unix fue llamada A2410 (tarjeta gr\xc3\xa1fica TIGA Lowell) y era una tarjeta e gr\xc3\xa1ficos de 8 bits basado en el Texas Instruments TMS34010 de 50 MHz. Fue un completo coprocesador de gr\xc3\xa1ficos inteligentes. La tarjeta gr\xc3\xa1fica por Amiga A2410 fue co-desarrollada con la Universidad de Lowell. _NEWLINE_Otras tarjetas gr\xc3\xa1ficas notables basadas en los framebuffers Amiga fueron: la tarjeta gr\xc3\xa1fica Impact Vision IV24 de GVP; la DCTV, un adaptador de gr\xc3\xa1ficos externo y con sistema de captura de v\xc3\xaddeo; la tarjeta gr\xc3\xa1fica Firecracker 32-bit; la tarjeta Harlequin, ColorBurst; el framebuffer externo HAM-E. La tarjeta gr\xc3\xa1fica externa Graffiti est\xc3\xa1 a\xc3\xban disponible en el mercado. _NEWLINE_La mayor\xc3\xada de framebuffers Atari ST (Mega modelo STE), y Atari TT fueron creados para a ranura del conector VME de m\xc3\xa1quinas de Atari dedicada a las tarjetas de expansi\xc3\xb3n de v\xc3\xaddeo: el adaptador de gr\xc3\xa1ficos Leonardo 24-bits VME, la tarjeta gr\xc3\xa1fica CrazyDots II VME de 24 bits, la tarjeta gr\xc3\xa1fica Spektrum TC, la tarjeta gr\xc3\xa1fica NOVA ET4000 VME SVGA (capaz de tener resoluciones de hasta 1024x768 a 256 colores o 800x600 a 32768 colores), el dise\xc3\xb1o del cual proviene del mundo ISA/PC.\n_START_SECTION_\nModos de visualizaci\xc3\xb3n\n_START_PARAGRAPH_\nLos framebuffers usados en ordenadores personales muchas veces tienen un conjunto de "modos" bajo los cuales el framebuffer puede operar. Estos modos reconfiguran autom\xc3\xa1ticamente el hardware para mostrar diferentes resoluciones, profundidades de color, dise\xc3\xb1os de memoria y tasas de refresco._NEWLINE_En el mundo de Unix (las m\xc3\xa1quinas y los sistemas operativos) estas convenciones normalmente fueron evitadas en favor de una manipulaci\xc3\xb3n directa de la configuraci\xc3\xb3n del hardware. Esta manipulaci\xc3\xb3n era mucho m\xc3\xa1s flexible de forma que cualquier resoluci\xc3\xb3n, profundidad de color y ratio de refresco pod\xc3\xada conseguirse - limit\xc3\xa1ndose \xc3\xbanicamente por la memoria disponible por el framebuffer. _NEWLINE_Un efecto colateral de este m\xc3\xa9todo era que el visualizador pod\xc3\xada ser llevado m\xc3\xa1s all\xc3\xa1 de sus capacidades. En algunos casos provocando da\xc3\xb1os al hardware de visualizaci\xc3\xb3n.\xe2\x80\x8b Los monitores CRT modernos corrigen este problema introduciendo circuitos de protecci\xc3\xb3n "inteligentes". Cuando se cambia de modo de visualizaci\xc3\xb3n, el monitor intenta obtener una se\xc3\xb1al de sincronizaci\xc3\xb3n en la nueva frecuencia de refresco. Si el monitor no es capaz de obtener una se\xc3\xb1al de sincronizaci\xc3\xb3n, o si la se\xc3\xb1al est\xc3\xa1 fuera del rango de sus limitaciones de dise\xc3\xb1o, el monitor ignora la se\xc3\xb1al de framebuffer y seguramente muestre un mensaje de error al usuario. _NEWLINE_Los monitores de cristal l\xc3\xadquido tienden a contener circuitos de protecci\xc3\xb3n similares, pero por razones diferentes. Como \xc3\xa9stos tienen que mostrar digitalmente la se\xc3\xb1al de visualizaci\xc3\xb3n, cualquier se\xc3\xb1al que est\xc3\xa9 fuera de su rango no puede ser visualizada f\xc3\xadsicamente en el monitor.\n_START_SECTION_\nHardware\n_START_PARAGRAPH_\nEn los dispositivos gr\xc3\xa1ficos tipo framebuffer, todos y cada uno de los p\xc3\xadxeles desplegados en cualquier instante determinado en la pantalla, est\xc3\xa1n almacenados en una porci\xc3\xb3n 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\xc3\xb3n necesaria para representar un p\xc3\xadxel var\xc3\xada. Las pantallas generalmente admiten 8, 15, 16 o 24 bits de profundidad de color lo que equivale a 256, 32.768, 65.536 o 16.777.216 colores respectivamente. Para cambiar la imagen presente en la pantalla, basta con escribir las direcciones de memoria dedicadas al p\xc3\xadxel que se quiere modificar._NEWLINE_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 \xc3\xa9sta se reserva exclusivamente para el despliegue de im\xc3\xa1genes, y es com\xc3\xban que se le asigne un rango m\xc3\xadnimo y m\xc3\xa1ximo 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\xc3\xadxel dado hay que conocer su direcci\xc3\xb3n, y para ello, calcular el desplazamiento adecuado a partir de la direcci\xc3\xb3n de inicio de la memoria del framebuffer._NEWLINE_De tal modo que el ordenador modifica efectivamente las im\xc3\xa1genes desplegadas en pantalla modificando el contenido de la zona de memoria citada anteriormente, cosa que cabe perfectamente en la definici\xc3\xb3n com\xc3\xbanmente aceptada de lo que es un framebuffer.\n_START_SECTION_\nSistemas operativos\n_START_PARAGRAPH_\nEl framebuffer es un dispositivo virtual del sistema operativo que se presenta ante las aplicaciones de diferentes maneras en funci\xc3\xb3n 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\xc3\xa1s procesos; en este archivo o zona de memoria especial cualquier escritura modifica directamente las im\xc3\xa1genes desplegadas en el dispositivo de v\xc3\xaddeo, para que de esa manera los programas puedan mostrar informaci\xc3\xb3n en pantalla sin preocuparse de los detalles de implantaci\xc3\xb3n, ni de la interacci\xc3\xb3n real entre el ordenador y el dispositivo de v\xc3\xaddeo._NEWLINE_Sin embargo, la idea de framebuffer se asocia m\xc3\xa1s 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\xc3\xaddeo est\xc3\xa9 oculto a las aplicaciones, y que toda modificaci\xc3\xb3n de las im\xc3\xa1genes desplegadas en pantalla se efect\xc3\xbae por medio de una API (como ocurre por ejemplo, en el caso de los sistemas operativos Windows).'