c graphics framebuffer

¿Puedo escribir bytes directamente en la memoria de video en Linux, o hay una mejor manera de obtener datos en la pantalla?



graphics framebuffer (1)

Le estoy enseñando a mi hijo a programar "de la manera correcta / difícil", así que comenzamos con C, como hombres reales :)

Imprimir texto en la consola es divertido, pero aún recuerdo la emoción de cambiar mi viejo i386 al modo 320x200x256 y dibujar algunos rectángulos de colores ... en el día fue tan fácil como invocar int 10h y luego simplemente escribe bytes a [A000:0000] para dibujar píxeles en la pantalla.

Sin embargo, con el Linux moderno, tal acceso de bajo nivel al hardware parece ser más complicado (por razones obvias). He analizado brevemente mmap -ing /dev/fd0 como se describe here . Resulta que no hay ningún dispositivo /dev/fb0 en mi Ubuntu 13.04. También svgalib uso de svgalib ; sin embargo, su código de ejemplo no muestra nada en mi monitor.

Entonces, la pregunta es: ¿hay formas fáciles de obtener acceso directo a la memoria de video en Linux moderno que no requiera mucha configuración del sistema y código repetitivo? No tiene que ser un acceso a pantalla completa: abrir una ventana X y dibujar píxeles también estaría bien, siempre y cuando se haga escribiendo los datos directamente en la memoria.


En lugar de acceder directamente a la memoria de la pantalla (que está llena de más escollos de los que se puede creer), debe considerar el uso de Simple DirectMedia Layer para sus gráficos (¡y mucho más!) Y dejar que el sistema operativo se encargue de dibujarla en la pantalla.