Publicado el 29 de Julio del 2020
347 visualizaciones desde el 29 de Julio del 2020
112,5 KB
14 paginas
Creado hace 6a (11/10/2017)
1. Un breve vistazo al escritorio Linux
A diferencia de otras partes del sistema Linux, como el almacenamiento o las redes, no
hay mucha jerarquía de capas involucrada en la creación de una estructura de escritorio.
En vez de eso, cada componente desarrolla una tarea específica, comunicándose con otros
cuando se necesite. Algunos componentes comparten bloques de construcción comunes
(en particular, libererias para utilidades gráficas), y lo pueden hacer a través de capas
de abstracción simples o de un modo más profundo.
Este capítulo ofrece una discusión de alto nivel sobre los componentes de escritorio en
general, pero mirando dos piezas con mayor detalle: El sistema de ventanas X, que es
la estructura básica de la mayoría de escritorios, y D-Bus, un servicio de comunicación
inter-proceso usado en varias partes del sistema. No limitaremos a discutir y dar ejemplos
de algunas utilidades de diagnóstico que, aunque no son muy usadas en el día a día (la
mayoría de interfaces gráficas no requieren ingresar comandos shell a fin de interactuar
con ellas), le ayudarán a entender los mecanismos subyacentes del sistema y quizás
proporcionen algo de entretenimiento. También le echaremos un vistazo a la impresión.
1.1. Componentes del escritorio
Las configuraciones de escritorio de Linux ofrecen mucha flexibilidad. La mayoría de lo
que experimentan los usuarios Linux viene de las aplicaciones o bloques de construcción
de aplicaciones. Si no le gusta una aplicación particular, usualmente puede hallar una
alternativa. Y si lo que está buscando no existe, puede escribirlo usted mismo. Los
desarrolladores de Linux tienden a tener una amplia variedad de preferencias sobre cómo
debería actuar un escritorio, lo cual brinda una gran cantidad de opciones.
A fin de trabajar juntas, todas las aplicaciones necesitan tener algo en común, y la base
de casi todo en la mayoría de escritorios Linux es el servidor X (sistema de ventanas X).
Piense en X como una clase de «núcleo» del escritorio que gestiona todo desde renderizar
ventanas a configurar pantallas para manejar entradas desde dispositivos como teclados y
ratones. El servidor X también es el componente para el que no encontrará un reemplazo
tan fácilmente.
El servidor X es solo un servidor y no dicta la manera en que todo debe actuar o aparecer.
En vez de eso, el cliente X maneja programas de interfaz de usuario. Las aplicaciones
1
básicas del cliente X, como ventanas de terminal y navegadores web, realizan conexiones
al servidor X y dibujan las ventanas. En respuesta, el servidor X indica dónde poner las
vantanas y renderizarlas. El servidor X también devuelve entradas al cliente cuando es
apropiado.
1.1.1. Gestores de ventana
Los clientes X no actúan como aplicaciones de usuario con ventanas; ellos pueden actuar
como servicios para otros clientes o proporcionar otras funciones de interfaz. Un gestor
de ventanas es tal vez el servicio de aplicación cliente más importante porque muestra
cómo poner las ventanas en la pantalla y provee decoraciones interactivas como pequeñas
barras que le permiten al usuario mover y minimizar ventanas. Estos elementos son
centrales para la experiencia de usuario.
Hay varias implementaciones de gestores de ventana. Ejemplos como Mutter/GNOME
Shell y Compiz son más o menos el estándar, mientras que otros estan construidos
dentro de entornos como Xfce. La mayoría de gestones de ventana incluidos en las
distribuciones Linux estándar tienden a maximizar la comodidad del usuario, pero otros
proporcionan efectos visuales específicos o toman un enfoque minimalista. No hay un
verdadero estándar Linux en el gestor de ventanas porque los usuarios tienen preferencias
y requerimientos que cambian constantemente; como resultado, aparecen nuevos gestores
de ventanas todo el tiempo.
1.1.2. Herramientas
Las aplicaciones de escritorio incluyen ciertos elementos en común, como ventanas y
menus, llamados widgets. Para acelerar el desarrollo y proporcionar una apariencia co-
mún, los programadores usan herramientas gráficas para proporcionar estos elementos.
En los sistemas operativos como Windows o Mac OS X, el vendedor proporciona una
herramienta común, y la mayoría de programadores la usan. En Linux, la herramient
GTK+ es una de las más comunes, pero frecuentemente verá widgets construidos en Qt
y otros.
Las herramientas comúnmente consisten en liberías compartidas y ficheros soportados
tal como imágenes e información del tema.
2
1.1.3. Entornos de escritorio
Aunque las herramientas le ofrecen al usuario una apariencia uniforme, algunos deta-
lles del escritorio requieren cierto grado de cooperación entre diferentes aplicaciones.
Por ejemplo, una aplicación podría querer compartir datos con otra o actualizar una
notificación común en la barra de un escritorio. Para satisfacer estas necesidades, las
herramientas y otras librerías se juntan en grandes paquetes llamados entornos de escri-
torio. GNOME, KDE, Unity, y Xfce son algunos de los entornos de escritorio comunes
en Linux.
Las herramientas son la base de la mayoría de entornos de escritorio, pero crear un
entorno de escritorio unificado también incluye numerosos ficheros soportados, tales como
íconos y configuraciones, que conforman los temas. Todo esto se agrupa con documentos
que describen convenciones de diseño, tales como menues de aplicaciones y los títulos que
deben aparecer y cómo han de reaccionar las aplicaciones a ciertos eventos del sistema.
1.1.4. Aplicaciones
En el tope del escritorio estan las aplicaciones, tales como navegadores web o las venta-
nas de terminal. Las aplicaciones X pueden abarcar un amplio rango (desde programas
simples como xclock hasta el navegador web Chrome o la suite LibreOffice). Es-
tas aplicaciones normalmente vienen por separado, pero a menudo usan comunicación
inter-procesos cuando es pertienente. Por ejemplo, una aplicación puede expresar interés
cuando usted adjunta un nuevo dispositivo de almacenamiento o cuando recibe un nuevo
e-mail o mensaje instantáneo. Esta comunicación usualmente ocurre sobre D-Bus.
1.2. Una mirada en detalle al sistema de ventanas X
El sistema de ventanas X (http://www.x.org/) tiene una historia muy larga, con la
distribución base incluyendo el servidor X, librerías de apoyo a clientes, y clientes. Debido
a la aparición de entornos de escritorio como GNOME y KDE, el papel de la distribución
X ha cambiado con el tiempo, con el foco más puesto en la base del servidor que gestiona
el renderizado y los dispositivos de entrada, así como una librería de cliente simplificada.
El servidor X es fácil de identificar en su sistema. Se llama X. Verifiquelo en la lista de
procesos; usualmente lo verá ejecutándose con cierto número de opciones tal como:
3
/usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 - novswitch
En Linux, un servidor X se ejecuta en una terminal virtual. En este ejemplo, el argumento
vt7 nos dice que ha sido llamado por /dev/tty7 (normalmente, el servidor empieza en
la primera terminal disponible). Puede ejecutar más de un servidor X al tiempo en
Linux ejecutándolo en terminales virtuales separadas, pero si lo hace, cada servidor
necesitarán un único identificador de pantalla. Puede cambiar entre los servidores con
las teclas CTRL-ALT-FN o el comando chvt.
1.2.1. Gestores de monitor
Normalmente no se inicia el servidor X con una linea de comando porque el arranque
del servidor no tiene cleintes definidos que se estan ejecutando en el servidor. Si usted
inicia el servidor, sólo tendrá una pantalla en blanco. En vez de eso, lo más común para
iniciar el servidor X es con un gestor de monitor, un programa que inicia el servidor y
pone una caja de logueo en la pantalla. Cuando usted ingresa, el gestor de monitor inicia
un conjunto de clientes, tales como el gestor de ventanas y el de archivos, con los que
usted puede empezar a usar la máquina.
Hay varios gestores de monitor diferentes, como gdm (para GNOME) o kdm (para KDE).
lightdm es el argumento para invocar el servidor X con gestor de monitor a través de
plataforma para empezar sesión tanto en GNOME como en KDE.
Para iniciar una sesión X desde una consola virtual en vez de usar un gestor de monitor,
puede ejecutar el comando startx o xinit. Sin embargo, la sesión obtenidos será muy
simple sin gestor de monitor, porque los mecanismos y ficheros de arranque son diferentes.
1.2.2. Transparencia de red
Una característica de X es la transparencia de red. Debido a que los clientes hablan al
servidor usando un protocolo, es posible ejecutar clientes desde una red a un servidor
ejecutado en una máquina diferente directamente sobre la red, con el servidor X escu-
chando conexiones TCP en el puerto 6000. Los clientes conectados a este puerto pueden
autenticarse, y enviar ventanas al servidor.
4
Desafortunadamente, este método normalmente no ofrece ninguna encriptación y resulta
ser inseguro. Para cerrar esta brecha, varias conexiones desactivan el escucha de red para
el servidor X. No obstante, puede seguir ejecutando clientes X desde una máquina remota
con túneles SSH, conectando el servidor X desde el conector de dominio Unix hasta un
conector en la máquina remota.
1.3. Explorando clientes X
Aunque normalmente no se piensa en trabajar con una interfaz gráfica desde la línea de
comandos, hay varias herramientas que permiten explorar las partes de un sistema de
ventanas X. En particular, puede inspeccionar los clientes que se estan ejecutando.
Una de las herramientas más simples es xwininfo. Cuando la ejecuta sin argumentos,
le pide que haga click en una ventana:
$ xwininfo
xwininfo: Please select the windows about which you
would like information by clicking the
mouse in that window.
Después de hacer click, se imprime una lista de información sobre la ventana, tal como
su localización y tamaño:
xwininfo: Window id: 0x54000024 «xterm»
Absolute upper-left X: 1075
Absolute upper-left Y: 594
--snip--
Note el identificado
Comentarios de: Un breve vistazo al escritorio LInux (0)
No hay comentarios