El Sistema X Window. Primera parte: Generalidades
Julio 28 de 2.004
Por Manuel Alejandro Cerón Estrada.
Contenido |
Introducción
En los primeros años de los computadores, la comunicación entre el software y los usuarios se realizaba enteramente a modo de comandos en una terminal virtual o incluso algunos métodos más complicados como tarjetas perforadas. Sin embargo, a mediados de la década de los setenta, los ingenieros del [http://www.parc.xerox.com/ Centro de Investigaciones de Palo Alto (PARC por sus siglas en ingles)] de Xerox, crearon un nuevo y revolucionario sistema de interacción entre el usuario y la maquina. Se trataba de la Interfaz Gráfica de Usuario (GUI por sus siglas en inglés), el cual se basaba en la utilización de “ventanas” e “iconos” para la representación de aplicaciones y un “ratón” y un “puntero” para manejarlas [1]. Gracias a esto, el manejo de los computadores se hizo increíblemente más fácil e intuitivo.
En los ochenta, las GUI empezaron a llegar a los usuarios reales de la mano de Apple con su computador personal Lisa y posteriormente Macintosh. Rápidamente los desarrolladores de Unix se dieron cuanta de que necesitaban un sistema de GUI para su sistema operativo. No obstante, debido a que los sistemas Unix por lo general corrían en computadores de alto rendimiento, servidores y poderosas estaciones de trabajo, aquel sistema debía ir mucho más allá de las GUI planeadas para computadores personales como las de Apple o Microsoft. Fue así como nació e [http://www.x.org Sistema X Window] [2] o simplemente X.
El Sistema X Window comenzó su desarrollo en el [http://www.mit.edu Instituto Tecnológico de Massachussets (MIT),] con el apoyo de IBM y DEC. X es básicamente un conjunto de programas, librerías, protocolos y controladores que conforman todo lo necesario para poder usar GUIs en Unix. Fue diseñado para ser flexible y robusto. Algunas de las características más importantes de X son su independencia del sistema operativo, su portabilidad, su diseño en forma de cliente servidor y por supuesto el hecho de ser software libre.
Independencia completa del sistema operativo.
A diferencia de los sistemas de GUI de Apple o Microsoft, X fue diseñado para estar aislado completamente del núcleo del sistema operativo, lo que resulta en una mejor estabilidad, ya que si por algún motivo X tiene un fallo o simplemente “se cuelga”, el sistema en general no se ve afectado. También resulta en una mayor versatilidad, debido a que es posible reiniciar X sin reiniciar el sistema operativo, en incluso instalar diferentes versiones e implementaciones en un mismo núcleo.
Portabilidad.
X se puede portar fácilmente a cualquier plataforma que soporte ANSI C y POSIX [3]. Debido a esto es posible encontrarlo en diferentes sistemas operativos y arquitecturas de hardware, desde un una poderosa estación gráfica de [http://www.sgi.com/ Silicon Graphics] hasta una PC. Gracias a esta característica de X, fue posible la creación de implementaciones para PC basados en procesadores x86 (Xfree86) e incluso para sistemas operativos como Microsoft Windows (Cygwin/X) y MacOS X ([http://www.apple.com/macosx/features/x11/ X11 for MacOS X])
Arquitectura cliente-servidor.
Unix siempre ha estado orientado a redes. El Sistema X Window no podía pasar por encima de esto y es por eso que X esta diseñado para poder trabajar en redes mediante un sistema de cliente-servidor. De esta manera, un servidor X se encarga de manejar el hardware necesario para una GUI: la tarjeta de vídeo, el ratón y el teclado; y brindar una interfaz para poder trabajar sobre estos dispositivos. Un cliente X en cambio es cualquier aplicación gráfica, la cual debe conectarse a un servidor X para poder mostrarse en la pantalla. Para esto, la aplicación cliente hace uso de Xlib', que es el conjunto de librerías de programación que contienen lo necesario para tal labor. La intercomunicación entre el cliente y el servidor de X se realiza gracias a un protocolo de red llamado Protocolo X, el cual puede trabajar sobre otros de bajo nivel como TCP/IP.
Por lo general en un sistema de escritorio GNU/Linux, tanto el cliente como el servidor de X se ejecutan en la misma máquina, y el proceso de comunicación entre los dos se realiza de forma completamente transparente. Sin embargo, también es posible ejecutar el cliente y el servidor en equipos diferentes con lo cual se obtiene una enorme flexibilidad. Por ejemplo es posible utilizar remotamente, en un computador cliente, un programa con GUI que se esté ejecutando en otro computador (servidor). Incluso ambos computadores pueden tener hardware y sistemas operativos distintos debido a que el cliente no necesita saber nada de lo que maneja el servidor.
X es Software Libre
Desde la versión 11 de X [4], desarrollada en el MIT, este sistema ha estado cubierto bajo una licencia de software libre compatible con la [http://www.gnu.org/licenses/gpl.es.html Licencia Pública General de GNU (GPL por sus siglas en inglés)]. Gracias a esto, el Sistema X Window se convirtió rápidamente en un entandar en cuestión de interfaces gráficas en sistemas Unix, ya que toda la industria podía participar activamente en el proyecto. Sin embargo, la licencia de X11 no tiene copyleft, lo que significa que los trabajos derivados pueden ser distribuidos bajo otros términos. Esto ha causado que muchas empresas desarrolladoras de sistemas Unix creen versiones propietarias de X. No obstante, el corazón de X todavía sigue siendo uno de los proyectos más importantes de software libre.
Referencias
[1]Este conjunto es comúnmente denominado WIMP (Windows, Icons, Mouse and Pointer. En inglés.)
[2] Muchas personas tienden a llamarlo incorrectamente “X Windows”. La comunidad de X prefiere que no se use este termino para evitar confusiones con el sistema operativo Microsoft Windows.
[3] Portable Operating System Interface - POSIX es un estándar de la IEEE que define una serie de funciones de programación que requieren ayuda del sistema operativo. Prácticamente casi todos los sistemas operativos tipo Unix, incluido GNU/Linux cumplen con el entandar POSIX, de ahí la 'X' al final. Más información al respecto en: http://standards.ieee.org/regauth/posix/
[4] El Sistema X Window vio la luz en su
versión 10. Después de la versión 11, el proyecto
cambió la numeración de sus versiones en forma de
“Relaces”. Así por ejemplo, actualmente estamos en la
versión 11 Relace 6 de X o simplemente X11R6
El contenido del material publicado por nuestros columnistas es responsabilidad de sus autores.
Para saber más sobre la programación y naturaleza de nuestros artículos y columnas, haga clic aquí.