miércoles, 4 de diciembre de 2013

Entorno Grafico de Linux



Entorno grafico de Linux
El entorno gráfico mas utilizado en Unix y GNU/Linux: XWindow

XWindow es un sistema estandarizado para manejo de aplicaciones gráficas en Unix y es el utilizado por GNU/Linux.

Posee una arquitectura muy peculiar pensada no sólo para usar aplicaciones gráficas locales, sino que también remotas, además de brindar una gran flexibilidad al entorno y en definitiva al usuario del mismo.

El sistema XWindow se compone de varias partes bien definidas y estandarizadas, pero los conceptos mas notables y útiles de entender son:

    funciona en modalidad cliente-servidor
    posee los denominados manejadores de ventanas
    las aplicaciones utilizan librerías de widgets
    existen entornos integrados de escritorio

Modalidad cliente-servidor

Mediante ésta modalidad, un usuario utilizando el sistema XWindow puede correr no solamente aplicaciones en su computadora, sino que también puede correr aplicaciones en otra computadora y manejarlas de la misma manera a como lo hace con las aplicaciones ejecutándose localmente.

El servidor es el encargado de manejar el hardware (pantalla, teclado, mouse, etc.).

Los clientes son las aplicaciones que el usuario utiliza, éstas se conectan al servidor utilizando los servicios brindados por éste y la conexión puede ser remota o en la misma computadora.

La abstracción del hardware brindada por el servidor permite utilizar aplicaciones ejecutadas en plataformas completamente diferentes, incluso diferentes sistemas operativos, implementaciones de XWindow y hardware.

Nótese el potencial que brinda esto, ya que por ejemplo puede utilizarse para ahorrar dinero ejecutar aplicaciones en un computador de alta performance y tener terminales baratas, sencillas y prácticas para manejar dichas aplicaciones; y ésta solución también brinda mayor facilidad de administración, ya que la misma se puede centralizar en el computador central (el cual desde el punto de vista de XWindow actúa cómo cliente y las terminales serían los servidores).
Los manejadores de ventanas

Éstos se encargan de manejar la posición y tamaño de las ventanas de las aplicaciones, así como también el "foco", el cambio de una ventana a otra, y varias otras cosas mas, relacionadas con las ventanas.

Los manejadores de ventanas son clientes especiales, ya que puede correrse en un momento dado solamente uno por cada servidor.

Por lo general los manejadores de ventanas soportan varias características avanzadas como por ejemplo varios escritorios virtuales, decoraciones muy vistosas y configurables, algunos soportan menús para lanzar aplicaciones e íconos en el escritorio, etc. Los escritorios virtuales dividen la pantalla en partes o escritorios, donde se puede tener por cada escritorio un conjunto de ventanas dado, y se puede cambiar de escritorio a escritorio tan fácilmente como cambiarse de una aplicación a otra.
Las aplicaciones y las librerías de widgets

XWindow provee una librería de programación estándar llamada XLib, la cual es muy básica y no fue pensada para hacer aplicaciones directamente sobre ella (si bien las hay), sino mas bien para ser usada por otras librerías de mas alto nivel de abstracción y proveer de las funciones básicas de comunicación, dibujado, etc. de XWindow.

Por lo tanto las aplicaciones son desarrolladas sobre librerías que proporcionan los denominados "widgets" y otras utilidades.

Los widgets son los controles con los cuales el usuario interactúa con las aplicaciones, es decir, son las cajitas de texto, las etiquetas, los botones, etc., y que juntos forman la interface de las aplicaciones.

Existen muchas librerías de widgets y por lo tanto hay varios estilos de interfaces y muchos programas se ven diferentes a otros debido a que usan una librería de widgets diferente. Sin embargo hay algunas librerías de widgets que son mas comúnmente usadas, pero éstas por lo general permiten una amplia configuración de la visualización y el comportamiento al usuario, y por eso si uno observa el entorno gráfico de dos usuarios, por lo general encontrará diferencias.

Que halla tal variedad y flexibilidad no es algo malo, sino que esto permite al usuario estar a gusto con su entorno gráfico, y hasta identificarse con él.
Los entornos integrados de escritorio

Éstos van mas allá de un manejador de ventanas y una librería para crear aplicaciones sobre ella; proveen un conjunto de aplicaciones, librerías y otros sistemas, para lograr mayor integración entre sus aplicaciones y mayor integración de éstas con el entorno.

Algunos de los aspectos que definen los entornos integrados de escritorio son:

El funcionamiento del drag&drop (ej. cuando se arrastra un archivo de imagen sobre un procesador de texto).
La intercomunicación entre aplicaciones.
Extensiones al manejador de ventanas para que soporte mas cosas y se integre mejor con las aplicaciones.
Arquitectura de aplicaciones formadas por componentes embebidos (ej. embeber una planilla de cálculo en un procesador de texto).
Configuración centralizada y compartida (ej. se cambia un seteo y se refleja en todas las aplicaciones).
Manejo de sesiones (éste punto también puede ser realizado por algunos manejadores de ventanas u otros programas y consiste en apagar el sistema en un estado dado y al reiniciarlo que vuelva al estado en que se encontraba, es decir, con todas las aplicaciones con las cuales el usuario estaba trabajando abiertas y con los documentos o datos que estaban manejando).
otras cosas que redundan en una mayor integración entre las aplicaciones y el entorno (ej. íconos estándar, teclas de acceso rápido estándar, etc.).
Procesos de Linux
Los procesos son programas que se ejecutan en un momento dado. Cuando usamos un sistema operativo de GNU/Linux como Ubuntu por ejemplo (o cualquier otro, también dentro de windows y mac puede aplicarse) existen una serie de procesos que se están ejecutando constantemente y que son los que hacen al sistema operativo utilizable.
Los procesos en GNU/Linux son organizados de forma jerárquica, cada proceso es lanzado por un proceso padre y es denominado proceso hijo. De está forma, todos los procesos en GNU/Linux son hijos de init ya que este es el primer proceso que se ejecuta al iniciar el ordenador y init es padre de todos los procesos. Si se mata al proceso padre, también desaparecerán los procesos hijos.

No hay comentarios:

Publicar un comentario