Sistema de Ventanas X


El Sistema de Ventanas X conocido en inglés como X Window System, es el sistema encargado de mostrar al usuario un entorno gráfico en los sistemas Unix y es independiente del sistema operativo, en otras palabras es el encargado de dibujar los fondos, iconos, ventanas y menús en las aplicaciones ejecutadas. Si no existiera el Sistema de Ventanas X, la única interacción usuario-computador sería por medio de la consola o línea de comandos. Las implementaciones principales para Unix son Xfree86 y X.org. La versión actual del protocolo es la llamada X11, por ser la número 11. Este sistema fue desarrollado a mediados de los 80’s por el Instituto Tecnológico de Massachusetts (MIT, Massachusetts Institute of Technology) y está basado en la arquitectura cliente-servidor.

**Imagen obtenida de la página: http://gersoft.wordpress.com/2009/02/18/servidor-x/

El modelo o arquitectura cliente-servidor, está basado en un protocolo de red conocido como XProtocol el cual opera transparente a la red, en donde el servidor X se comunica con varios clientes X. Este protocolo consiste en que un servidor X solicita una serie de comandos básicos para generar las ventanas (con sus respectivos parámetros como tamaño, posición, etc.) o controlar eventos. La serie de comandos básicos anteriormente mencionada son las entradas que hace el usuario ya sea desde el teclado, mouse o pantalla táctil. Los clientes X acceden al XProtocol mediante el uso de una librería llamada Xlib, la cual facilita el trabajo del programador de clientes X, ya que no tiene que lidiar con el código binario del XProtocol.

Una de las características principales del XProtocol es la portabilidad. Otro punto de vista a tomar es que el cliente X y el servidor X pueden ser ejecutados en la misma o en diferentes máquinas, posiblemente con diferentes arquitecturas y sistemas operativos. Incluso esta comunicación entre el cliente X y el servidor X puede hacerse por medio de Internet de una forma segura, sobre una sesión encriptada de la red. Otra de las alternativas que se puede realizar con el XProtocol, es que un cliente X puede realizar la función como un servidor X, proporcionando servicios a otros clientes. Esto es conocido como X Nesting traducido al español esto significa Anidado X.

En resumen la terminología del modelo cliente-servidor, no es más que la terminal de usuario siendo el servidor X y las aplicaciones siendo los clientes X (aunque también es válida la relación cliente-servidor anteriormente mencionada entre varias máquinas físicas). Puede que esto cause algunas confusiones a los usuarios que están empezando a conocer el Sistema de Ventanas X, porque puede que los términos no encajen a la perfección y puede que el usuario los entienda al revés.


Implementaciones en otros Sistemas Operativos

Es bastante común asociar el Sistema de Ventanas X con Unix, aunque también existen servidores X dentro de otros entornos gráficos. El sistema operativo OpenVMS de Hewlett-Packard incluye, como su ambiente de escritorio estándar, una versión del Sistema de Ventanas X con el CDE (Common Desktop Environment) conocida como DECwindows. El Mac OS X v10.3 (Panther) y el Mac OS X v10.4 (Tiger) de Apple incluyen X11.app, basado en XFree86 4,3 y X11R6.6, con una mejor integración de Mac OS X, en el Mac OS X v10.5 (Leopard) X.org Apple incluyó el X.org (X11R7.2 Codebase) en vez del XFree86 (X11R6.8). Los servidores de terceros bajo el Mac OS 7, 8 y 9 incluyeron el eXodus de White Pine Software y el MacX de Apple.

Para Microsoft Windows, no existe un soporte para el Sistema de Ventanas de X comercializado, pero tiene la ventaja de que existen muchas implementaciones de terceros, así como de software libre, por ejemplo: Cygwin/X, Xming y WeirdX; al igual que de productos propietarios tales como: Xmanager, Exceed, MKS X/Server, Reflection X, y X-Win32.


Principios

Los principios que Bob Scheifler y Jim Gettys definieron en 1984 acerca de X, los cuales fueron obtenidos y copiados textualmente de la página “X Window System - Wikipedia, la enciclopedia libre” con dirección “http://es.wikipedia.org/wiki/X_Window_System”:
  • No añadan nueva funcionalidad a menos que un implementador no pueda completar una aplicación real sin ella.
  • Es tan importante decidir qué no es el sistema, como decidir qué es. No respondan a las necesidades de todo el mundo; en lugar de eso, hagan el sistema extensible para que las necesidades adicionales puedan cubrirse en una manera compatible ascendente.
  • La única cosa peor que generalizar a partir de un ejemplo es generalizar a partir de ningún ejemplo en absoluto.
  • Si un problema no se entiende totalmente, probablemente es mejor no proporcionar ninguna solución en absoluto.
  • Si ustedes pueden conseguir el 90 por ciento del efecto deseado para el 10 por ciento del trabajo, utilicen la solución más simple.
  • Aíslen la complejidad tanto cuanto sea posible.
  • Proporcionen un mecanismo en vez de una política. En particular, pongan la interface de política en las manos de los clientes.
El primer principio fue modificado durante el diseño del X11: "No añadan nueva funcionalidad a menos que ustedes sepan de alguna aplicación real que la requiera".


Ventajas

  • Cambia la interacción del usuario con el sistema operativo, de línea de comandos a un entorno gráfico.
  • El Sistema de Ventanas X no es un gestor de ventanas, pero sí necesita de uno, entonces el usuario puede instalar el gestor de ventanas que prefiera.
  • El Sistema de Ventanas X es estrictamente un sistema gráfico, de tal modo que un cliente X podría estar enviando un gráfico a una pantalla, a una impresora o a cualquier otro hardware sin darse cuenta, flexibilizando la salida gráfica.
  • El Sistema de Ventanas X ofrece portabilidad, esto hace que sea utilizado como base de la mayoría de entornos de escritorio de GNU/Linux, como GNOME, KDE y Xfce.


Desventajas

  • La mayor desventaja, es el hecho de no tener un único gestor de ventanas, esto perjudica a los programadores de clientes X, que desean hacer uso de los recursos de los gestores de ventanas y deben elegir un gestor de ventanas específico para programar y contar que el usuario tenga por los menos las bibliotecas de dicho gestor de ventanas instalado.


Páginas Recomendadas



Referencias


RAID (Redunt Array of Inexpensive-Independent Disks


Principalmente el acrónimo de RAID era Redunt Array of Inexpensive Disks (Arreglo Redundante de Discos Baratos), actualmente es Redunt Array of Independent Disks (Arreglo Redundante de Discos Independientes), aunque tenga varios acrónimos, en sí RAID es un sistema de almacenamiento que usa un método de combinación de dos o más discos duros, que en conjunto forman un único dispositivo. Los datos se escriben de forma redundante en varias unidades. Los dos acrónimos mencionados anteriormente, pueden causar un poco de confusión con el concepto de RAID, ya que “Barato” e “Independiente” son dos palabras distintas, pero generalmente hablando, se tomará como que cualquier sistema que implemente los conceptos básicos de RAID, para combinar espacio físico en un disco duro para mejorar rendimiento, confiabilidad y capacidad es un sistema RAID.

Existen varias divisiones de RAID, llamadas niveles RAID, las cuales tienen diferentes características para proporcionar tolerancia a fallos, un buen rendimiento y un bajo costo. Aunque hay que tomar un aspecto negativo de RAID, ya que todos los sistemas RAID pierden una parte de la capacidad de almacenamiento de los discos duros, para conseguir la redundancia o almacenar los datos.


¿Pará que se usa RAID?

RAID es usado principalmente por servidores y estaciones de trabajo, ya que RAID protege la información contra algún fallo en la unidad de disco duro. En caso de que ocurriese un fallo en un disco duro, RAID mantiene el servidor en funcionamiento, hasta que se cambie la unidad defectuosa.

Los RAID también pueden tomarse en cuenta para computadoras personales más avanzadas, ya que el valor de los discos duros ha ido disminuyendo y existe una mayor disponibilidad de las opciones RAID en los chipsets de las tarjetas madre, el RAID puede usarse para tareas intensivas de almacenamiento del usuario, como edición de audio y vídeo.


¿Cómo usar RAID?

RAID puede ser implementado por hardware o por software. Además, existen sistemas RAID híbridos basados en software y hardware específico.
  • RAID por Software: El encargado de gestionar los discos duros en el RAID por Software es el sistema operativo por medio de un controlador de disco normal. Aunque es considerada una forma lenta de utilizar el RAID, actualmente con la salida de procesadores más potentes, este RAID puede llegar a ser mejor que el RAID por hardware.
  • RAID por Hardware: Para implementar RAID basado en hardware, es necesario tener una controladora RAID específica, ya sea una tarjeta de expansión independiente o integrada en la tarjeta madre, que realice la administración de los discos duros. Utilizando RAID por Hardware puede existir un mejor rendimiento y puede que el soporte del sistema operativo sea más sencillo.


Ventajas y Desventajas de RAID

Las ventajas que ofrece un sistema RAID son las siguientes:
  • RAID mejora la tolerancia a fallos.
  • RAID mejora la integridad.
  • RAID mejora el rendimiento.
  • RAID mejora la capacidad.
Mientras que las desventajas que un sistema RAID tiene son las siguientes:
  • RAID no protege los datos (virus, borrado accidental, modificaciones, etc.).
  • RAID no simplifica la recuperación de un desastre.
  • RAID no mejora el rendimiento de las aplicaciones.
  • RAID no facilita el traslado a un sistema nuevo.


Niveles de RAID

Existen varios niveles de RAID, entre los cuales están los siete más importantes que fueron aprobados por el RAID Advisory Board (RAB). Los niveles de RAID fueron creados para atender las diferentes necesidades del usuario (rendimiento, capacidad, velocidad, coste, etc.). Cada nivel de RAID maneja una combinación de las ventajas mencionadas anteriormente, aunque ningún nivel maneja todas las ventajas de una manera efectiva, en pocas palabras no hay un nivel de RAID mejor que el otro.
  • RAID 0: La más alta transferencia, pero sin tolerancia a fallos (Disk Striping).
  • RAID 1: Redundancia. Más rápido que un disco y más seguro (Mirroring).
  • RAID 2: Acceso paralelo con discos especializados. Redundancia a través del código Hamming.
  • RAID 3: Sistemas de discos en paralelo con disco de paridad para corrección de errores (Striping).
  • RAID 4: Sistemas de discos independientes con disco de control de errores.
  • RAID 5: Acceso independiente con paridad distribuida.
  • RAID 6: Acceso independiente con doble paridad.


Páginas Recomendadas



Referencias

RAID - Wikipedia, la enciclopedia libre
http://es.wikipedia.org/wiki/RAID

Tecnologías avanzadas de almacenamiento
http://web.mit.edu/gora/MacData/afs/athena/project/rhel-doc/4/RH-DOCS/rhel-isa-es-4/s1-storage-adv.html

Que es RAID
http://www.smdata.com/queesraid.htm

Niveles de RAID
http://www.smdata.com/NivelesRAID.htm

Tecnología RAID - Historia y Niveles MadBoxpx.com
http://www.madboxpc.com/contenido.php?id=1183&pag=3

VNM : Tipos - Arreglos RAID, Ventajas y Desventajas
http://www.vnmhost.net/tips/modules.php?name=News&file=article&sid=273