Sistema operativo GNU/Linux básico Plan Evaluación Continuada N° 4 Jorge Alberto Arocha Muñoz
ENUNCIADOS: PARTE A.1.- XFree86/X.org: En los inicios el proyecto era el proyetco a partir del cual se construía el entorno gráfico de GNU/Linux, nació y se desarrolló en el MIT como uno de los primeros grandes proyectos de SL; posteriormente apareció X.org como una escisión de XFree86 y su evolución ha sido tan fructífera que Debian lo utiliza para el sistema gráfico de la versión Etch. ¿Cual fue la causa de la escisión? ¿Son los dos proyectos de SL? ¿Comparten código? En febrero de 2004 al momento de liberar la versión 4.4.0 fué modificada la licencia con la cual se distribuia XFree86, la cual hasta el momento había utilizado la misma licencia X11 conocida también como MIT siendo libre y compatible con la GPL, la modificación fue la inclusión de una clausula de publicidad que de alguna forma restringía las libertades requeridas para ser compatible con la GPL, por esta razón un grupo de desarrolladores de XFree86 y de empresas fomentaron la bifurcación del proyecto, los dos son software libre pero es de resaltar la incompatibilidad que se presenta con la GPL; teniendo en cuenta que X.org es una bifurcación del proyecto original XFree86 si comparten código. 2.- Arquitectura-red: el concepto de servidor y el de clientes en las X puede llevar a confusión inicialmente: ¿quien es cada uno de ellos? ¿qué papeles juegan? ¿podría ejecutarse el servidor en una máquina distinta de la de un cliente? si tuvieran distinta potencia de recursos (cpu, memoria,etc) ¿en cuál ejecutaríamos el servidor y en cúal el cliente? si yo estoy en casa y quiero usar remotamente un programa el cual está instalado en la universidad ¿qué deberé lanzar en mi ordenador personal: un cliente o un servidor? y la máquina de la universidad ¿qué papel juega, cliente o servidor?
Aplicación. Aplicación. X – Cliente X – Cliente
Aplicación. Aplicación.
X – Cliente – Cliente y AtiendeXservidores servidores y seAtiende comunica con se comunica con aplicaciones. aplicaciones. Eventos (mouse, Cómo despliega teclado, etc) X – Servidor X –monitor Servidor– Gestiona Gestiona monitor – mouse – teclado (E/S) mouse – teclado (E/S)
Sistema operativo GNU/Linux básico Plan Evaluación Continuada N° 4 Jorge Alberto Arocha Muñoz
Dentro de la arquitectura X Windows los conceptos cliente/servidor pueden resultar confusos porque no se tienen en cuenta desde la óptica tradicional, en la cual un servidor por lo general es un software que brinda unos recursos y se accesa remotamente ejecutando desde nuestro lado un software que al igual que nosotros sería el cliente del aplicativo; en el caso que nos ocupa el servidor se ejecuta de nuestra parte, en nuestra máquina, y se encarga de procesar los eventos del mouse, teclado y la salida hacia el monitor, es el servidor porque gestiona estos recursos y los hace disponibles para los clientes, que lo pueden acceder ya sea localmente o remotamente través de la red, estos clientes se encargan de recibir los eventos de mouse y teclados pasarlo a la respectiva aplicación y devolver la salida procesada al servidor para que sea desplegada en el monitor, tal como se puede observar en la anterior gráfica. Como se menciono anteriormente el cliente y el servidor pueden correr sobre la misma o diferentes máquinas, las cuales pueden tener distintas plataformas de hardware y sistema operativo, lo que le da gran independencia y flexibilidad al sistema, para trabajar en sistemas tanto heterogéneos como homogéneos. Si se dispone de distinta potencia en las máquinas el servidor debe ejecutarse en la de menor potencia y el cliente junto con los aplicativos en la de mayor potencia, este es el principio de los clientes livianos (thin client). Para ejecutar un programa que se encuentra en el servidor de la universidad debo ejecutar en el equipo de mi casa un servidor X y en el de la universidad debe correrse un cliente X. 3.- Arquitectura X: teniendo en cuenta que las X no forman parte del sistema o núcleo de GNU/Linux (¿por qué motivos?) y que las forman un conjunto muy grande de software (aplicaciones, librerías, etc.), para poder sacar buen partido de ellas hay que conocer un poco sus bases y su arquitectura interna: describid los componentes fundamentales de ellas y como se relacionan entre ellos, para lo cual tened presentes términos como servidor gráfico, gestor de ventanas, aplicaciones gráficas, gestores gráficos de sesión, sesiones X,etc. Las X no forman parte del núcleo de Linux porque realmente no hacen parte del sistema operativo como tal, su objetivo es brindar un ambiente gráfico independiente, con base en esto las X hacen referencia a una arquitectura o “especificación” de la cual existen varias implementaciones de las cuales uno puede decidir cual de ellas usar, estas implementaciones brindan un conjunto de aplicaciones para gestionar el entrono gráfico a bajo nivel. Como ya se ha visto básicamente la arquitectura del sistema X es cliente/servidor, en el cual un servidor gráfico (llamado servidor X) se encarga de gestionar los eventos del teclado y mouse, y de la salida gráfica; de otra parte está el cliente X que recibe los eventos y los procesa, estos clientes son aplicaciones gráficas que utilizan la información suministrada por el servidor gráfico procesándola y enviando lo que se va desplegar en el monitor. Para dar un aspecto uniforme a las ventanas y control a las operaciones básicas que hacen referencia al dibujo de las ventanas se usa el gestor (administrador) de ventanas, en Linux es un cliente X mas lo cual permite disponer de mas de un gestor de ventanas, este software se encarga entre otras cosas de agregar los títulos a las ventanas y en general simplificar el manejo de las ventanas; con esta flexibilidad existen varios gestores de ventanas: ● ● ● ●
Fvwm twm fvwm95 fvwm2
Sistema operativo GNU/Linux básico Plan Evaluación Continuada N° 4 Jorge Alberto Arocha Muñoz ● ● ● ● ● ● ● ● ●
afterstep Kwin Metacity Metisse MWM (Motif Window Manager). OLWM/OLVWM quartz-wm Sawfish etc.
Una sesión X es la ejecución de un cliente y servidor X, es decir Cliente X + Servidor X, por lo general se puede iniciar con el comando startx pero es mejor usar un administrador de pantallas (gestor gráfico de sesión) como xdm, gdm, etc. que permite iniciar la sesión X y administrarlas.
4.- Paquetes del sistema básico de las X. Explicad cómo se integra el software de las X en el proyecto Debian, por paquetes y metapaquetes, en Etch. Para ello usad alguno de los métodos para obtener información del contenido de los paquetes, sus dependencias, sugerencias, etc. Podéis empezar por el paquete x-window-system-core e ir tirando del hilo. El metapaquete x-window-system-core por lo general no se instala en Debian Etch, es un metapaquete que se proporciona para brindar compatibilidad hacia atrás con el antiguo servidor X que era Xfree86, así que a menos que algún software lo requiera no se instalará. Paquete / Metapaquete
Arquitectura X
Descripción Este metapaquete es el que implementa la arquitetura X en debian Etch actualmente, proporciona las bibliotecas X, servidor X, un conjunto de fuentes y un grupo de clientes de X y utilidades básicas. Está compuesto por el paquete xorg.
x-window-system
Servidor X Clientes X
x-display-manager
Este es un metapaquete que provee de un gestor de pantallas, dependiendo del Gestor de pantallas o ambiente gráfico que se instale gestor gráfico de sesión. finalmente se instalará en el se encuentran paquetes como: wdm, gdm y kdm.
x-window-manager
Este metapaquete provee los administradores de ventanas, entre los Gestor o administrador paquetes que lo componen estan: de ventanas. sawfish, metacity, kde-sessionmanager, etc.
5.- Configuración del sistema básico. Exponed si ha ido bien la configuración y arranque del sistema básico de las X que ha hecho el proceso de instalación de Debian Etch. Si no habido suerte, podéis probar con: dpkg-reconfigure (para reconfigurar paquetes), update-aleternatives, mdetect (para la deteción del mouse), read-edid (para el reconocimiento de pantallas), discover
Sistema operativo GNU/Linux básico Plan Evaluación Continuada N° 4 Jorge Alberto Arocha Muñoz (para la identificación de tarjetas gráficas), etc. Id probando si hay suerte en arrancar las X mediante el comando startx. Durante la instalación que se realizó se configuró y arrancó el ambiente gráfico sin problemas. 6.- Gestores gráficos de sesión: instalad, probad y comparad creando una tabla que refleje las características comunes y diferentes de tres gestores de sesión como pueden ser xdm, gdm o wdm. Los gestores gráficos de sesión “display managers” son los que inician la sesión gráfica como sucede comúnmente en el mundo del software libre existen varias implementaciones para la misma solución, lo que instale y probé fueron los sugeridos en el enunciado y realmente superficialmente no se nota diferencia, excepto en la parte estética y las opciones de los menú. 7.- X window managers: instalad, usad y comentad algunos de los window manager disponibles, como pueden ser los que hay en http://www.plig.org/xwinman/. Debeis reflejar en una tabla las principales características de como mínimo tres de ellos. Al igual que en el punto anterior no se nota gran cambio al usar uno u otro, excepto en la parte estetica y en los efectos, por ejemplo me gusta usar compiz por los efectos 3D y demás. En cuanto a la parte técnica se puede ver este resumen: Kwin
Metacity
Compiz
Xfwm
Lenguaje
C++
C++ y C
C
C++ y C
Librerías
Qt
GTK
OpenGL
GTK
Licencia
GPL
GPL/LGPL
MIT
GPL/LGPL
Títulos y botones Si personalizables
Si
Si
Si
Conf. gráfica
Si
Si
Si, sumistrada por Si terceros
Shortcuts
Si
Si
Si
Si
Temas presonalizable
Si
Si
Si
Si
8.- Desktop managers: explicad qué son, qué pretenden, si siguen los estándares de la arquitectura de las X, etc. Instalad, usad y comparad KDE y Gnome. ¿Cómo está el estado del arte? En este punto me he confundido un poco, “destokp managers” o “desktop environments”, por lo que se lee en los apuntes son lo mismo pero en la mayor parte de la literatura y de internet he encontrado con que se usa el termino “desktop environment” incluso KDE es el acrónimo de K Desktop Environment lo mismo que CDE es Common Desktop Environment, citado en el material suminstrado; en este orden de ideas el “destokp manager” o “desktop environment” es un conjunto de librerías, programas de diversa utilidad que se ofrecen en un solo ambiente gráfico que es consistente en todas las interfaces, de manera amigables y sencilla para el usuario y desde el punto de vista del desarrollador estandarizar y unificar políticas para el desarrollo de aplicaciones dentro de este ambiente, está un nivel por encima de las X y funciona sobre un gestor de ventanas, en el caso de GNOME es independiente y puede ser cualquiera o en el caso de KDE que necesariamente debe ser kwm. En mi experiencia personal he usado ambos escritorios
Sistema operativo GNU/Linux básico Plan Evaluación Continuada N° 4 Jorge Alberto Arocha Muñoz por tiempos diferentes y se puede decir que ambos ofrecen lo mismo de formas un poco diferentes y con una apariencia distinta, son los mas usados actualmente en las distribuciones mas populares. 9.- Por último, instalad alguna aplicación extra, podéis empezar por vino y rdesktop para acceder remotamente (con una sesión gráfica) a otros equipos con GNU/Linux o Windows. No hace falta otra máquina real, podéis utilizar máquinas virtuales. Exponed vuestra experiencia. En el desarrollo normal del trabajo en repetidas ocasiones se deben accesar equipos remotos, especialmente servidores, a través de la red de datos de la cual se dispone, ya sea a nivel local o en sitios geográficamente distantes, por lo general uso SSH por estar acostumbrado a los comandos de consola, por la velocidad y por aquello de que “a los servidores no se les debe instalar ambiente gráfico por seguridad”; aún así, en ciertas ocasiones se encuentra ante situaciones como la necesidad de accesar remotamente a un servidor con Windows® o utilizar una aplicativo gráfico remotamente en una máquina *nix , en estas situaciones definitivamente no es la solución SSH y es cuando son muy útiles aplicativos como VNC(Vino), que implementa un protocolo propio para exportar la interfaz gráfica mediante una arquitectura cliente/servidor, incluso se puede accesar a traves de un navegador web, por otra parte esta rdesktop que es la implementación de un cliente para el protoclo RDP de windows permitiendo tener acceso a máquinas Windows® desde GNU/Linux. Ambos esquemas los he usado permitiendo apreciar sus ventas y problemas, un caso por ejemplo: la configuración de una consola de antivirus McAfee en Windows 2003 Server® desde mi desktop linux en ciudades distintas, como ventajas encuentro la flexibilidad y disponibilidad de medios para realizar el trabajo de una forma sencilla y eficiente, de otra parte a manera de problemas se puede tener la velocidad, ya que a nivel local en una red LAN esta no incide la lentitud del esquema pero cuando se pasa por canales de datos lentos el trabajo puede llegar a ser imposible, además existen consideraciones de seguridad que se deben tener en cuenta, porque de lo contrario si se configuran erradamente o a la ligera puede ser una gran vulnerabilidad para la máquina sobre la cual está instalado. Siempre me ha parecido especialmente interesante la solución planteada por VNC ya que prácticamente supera la barrera al poder exportar un escritorio en cualquier* plataforma a un cliente en cualquier otra. * Entiéndase cualquier otra entre Windows® y *nix. PARTE B.–
Desktop Managers: KDE vs Gnome. ¿Qué hay además de las diferencias estéticas? ¿Quién está detrás de cada uno? ¿Estamos limitados únicamente a estos dos escritorios?
En la actualidad existen varios escritorios para escoger el que mas se adapte a las necesidades y gustos particulares de cada usuario, entre ellos estan: • • • •
XFCE: http://www.xfce.org/ ROX: http://roscidus.com/desktop/ ETOILE: http://etoileos.com/ EDE: http://equinox-project.org/
Los dos mas populares son KDE y GNOME, de los cuales tenemos los sguientes datos generales: GNOME Fundador
Miguel de Icaza, Mexicano y
KDE Matthias Ettrich, Alemán.
Sistema operativo GNU/Linux básico Plan Evaluación Continuada N° 4 Jorge Alberto Arocha Muñoz Federico Mena, Mexicano. Inicio
Agosto de 1997
Octubre de 1996
Objetivo
Crear un ambiente de escritorio Crear un ambiente gráfico para completamente especialmente sistemas *nix. para sistemas GNU/Linux.
Licencia
GPL
La librerías tienen LGPL
X Window Manager
Metacity o cualquiera.
Kwin
X Display Manager
GDM
KWM
Arquitectura
Basado en BONOBO (CORBA)
Programación orientada a objetos
Leng. Programación
C en su mayoría
C++ en su mayoría
Toolkit Usado
GTK+ GTK2+
Qt
En la actualidad los proyectos son desarrollados por grupos volunrios, por ejemplo los desarrolldores de Gnome se reunen anualmente para discutir el estado actual del proyecto y su futura dirección en una reunión denominada GUADEC, los dos escritorios han mantenido una sana rivlidad que los ha motivado a ir mejorando, cada uno tiene sus partidarios y sus críticos lo cual hace interminable la discusión GNOME vs KDE, especialmente porque considero que juegan muchos aspectos subjetivos como por ejemplo la sensación y comodidad, el aspecto estético, etc.