| Artículos | 01 JUL 2003

El display virtual

Tags: Histórico
Alvaro Ortiz.
Prácticamente desde el principio nuestro pequeño UNIX utilizable en casa comenzó a dar muestras de carácter propio con detalles que, sin ser de especial utilidad, evidenciaban su distanciamiento de la corriente principal. Personalizaciones como la del Display virtual, mayor que el tamaño de pantalla, muestran el carácter de Linux. Por supuesto, además de banalidades, siempre contamos con utilidades potentes como diff.

Un Display mayor que la pantalla
La implementación del sistema gráfico Xwindow que mejor conocemos en Linux es Xfree86, actualmente en su serie 4. A través de su fichero de configuración, /etc/X11/XF86Config-4, podemos realizar todos los ajustes que queramos sobre nuestro entorno gráfico o de escritorio. Este fichero se divide en secciones o bloques según el aspecto de que se trate. Cada sección empieza por la cláusula Section, seguida del nombre de la sección, y acaba con la cláusula EndSection. Sencillo. Así, por ejemplo, encontraremos bloques como los siguientes:

Section “Pointer“
Protocol “PS/2“
Device “/dev/psaux“
EndSection
...
Section “Keyboard“
Protocol “Standard“
...
EndSection
Estos dos ejemplos cortados hacen referencia al comportamiento del ratón y del teclado en el escritorio. Las secciones, a su vez, pueden tener subsecciones. Pues bien, para lo que nos interesa (obtener un display mayor que la pantalla física), la sección a tener en cuenta será Screen (pantalla) y, en concreto, su subsección Display (visualización). Podemos tener varias Screen, así que debemos fijarnos en la que se corresponda con nuestra tarjeta gráfica. En ella tendremos varias Display, pues definiremos el display virtual en todas ellas, obviamente mayor que el tamaño máximo.

Device “Screen“
Driver “accel”
Device “GeForce3”
Monitor “Generic Multisync”
Subsection “Display”
Depth 8
Modes “640x480” “800x600”
Viewport 0 0
Virtual 1024 768
EndSubsection
Subsection “Display”
Depth 16
Modes “640x480” “800x600”
Viewport 0 0
Virtual 1024 768
EndSubsection
EndSection

Si nuestra combinación tarjeta+monitor lo permite, comprobaremos que arrastrando el ratón hacia las esquinas la pantalla se desplaza más allá del límite.

Cambiar de resolución
Habiendo visto ya secciones relativas al aspecto visual, como pueden ser las distintas Screen, comprobamos que tenían definidas varias posibles subsecciones Display. Cada una de ellas es utilizada para una profundidad de color. Esto es la cantidad de bits que se utilizan para codificar el color de cada uno de los 640 x 480 ó 800 x 600 o más píxeles de pantalla. Obviamente, a mayor número de bits, mayor definición de color. Las profundidades habituales son 1 (blanco y negro), 8 (256 colores), 16, 24 y 32 con millones de posibles tonos más allá de lo que nuestro ojo puede percibir. Si en XF86Config tenemos definidas varias de estas posibles profundidades y resoluciones de pantalla, desde el escritorio podemos ir cambiando entre ellas con la combinación de teclas Ctrl+Alt+’+’ (tecla + del teclado numérico). De esta forma, si nos hemos pasado con alguna de las resoluciones y vemos las cosas demasiado pequeñas o demasiado grandes, no es necesario que vayamos a editar XF86Config para cambiar el orden de preferencia de los displays, modos y profundidades; bastará con pulsar esta combinación de teclas para ir rotando entre todas las posibilidades.

Utilidad de texto: diff
Una de las utilidades que más útil resultará a los propios desarrolladores del kernel es diff; para hallar diferencias entre dos ficheros de texto. Por ejemplo, para encontrar las modificaciones que se le han hecho a un fichero de código fuente, si tenemos la versión original y la nueva, ejecutaremos simplemente:
diff codigoViejo.cpp codigoNuevo.cpp
El nombre del fichero y su extensión (C++) son obviamente un ejemplo. La salida que este comando produce será algo del tipo:

1c1
< Esto es sólo un archivo
---
> Esto es más que un archivo
4,5c4,5
< de una ejecución del comando
< diff (diferenciador)
---
> del comando diff (diferenciador)

La salida sólo muestra las líneas con diferencias entre fichero1 y fichero2. Primero las enumera (1c1, 4,5 c 4,5) y luego las escribe precedidas por el carácter < si se trata del primer argumento pasado a diff, o por el carácter > si se trata del segundo. Los caracteres --- muestran la separación entre líneas de uno y otro y fichero.
Si fichero1 y fichero2 son grandes, ejecutar diff en un terminal puede ser un engorro. Mejor será invocar a diff desde emacs, para así aprovecharnos de toda su potencia para estudiar cómodamente los resultados. Así que en una ventana emacs pulsaremos Alt+X y veremos que la línea de comandos (parte inferior) queda en espera de que le indiquemos un comando. Entonces tecleamos diff y tras esto emacs nos pedirá primero el fichero nuevo (new file) y el original (original file). El comando no utiliza los mismos caracteres para marcar diferencias si se ha ejecutado desde un terminal o desde emacs. Desde emacs, las líneas diferenciadas se suelen marcar con el carácter ! al principio. En algunas versiones se utiliza + y - para indicar una línea que es totalmente diferente, ya que en un fichero existe y en otro no.

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información