stringtranslate.com

administrador de sesión x

En el sistema X Window , un administrador de sesiones X es un programa de administración de sesiones , un programa que puede guardar y restaurar el estado actual de un conjunto de aplicaciones en ejecución, incluido el administrador de ventanas .

Descripción general

Desde el punto de vista de un administrador de sesiones X, una sesión es un “estado del escritorio” en un momento dado: un conjunto de ventanas con su contenido actual. Más precisamente, una sesión es el conjunto de clientes que gestionan estas ventanas o están relacionados con ellas y la información que permite a estas aplicaciones restaurar el estado de estas ventanas si es necesario.

El efecto más reconocible de utilizar un administrador de sesiones es la posibilidad de cerrar sesión en una sesión interactiva y luego encontrar exactamente las mismas ventanas en el mismo estado al iniciar sesión nuevamente. Para que esto funcione, el programa administrador de sesión almacena los nombres de las aplicaciones que se están ejecutando al cerrar sesión y las inicia nuevamente al iniciar sesión. Además, para que también se restaure el estado de las aplicaciones (lo cual es necesario para restaurar el contenido de Windows), las aplicaciones deben poder guardar su estado de ejecución cuando lo solicite el administrador de sesión y volver a cargarlo cuando se inicien nuevamente.

En general, una sesión se puede guardar o cargar en cualquier momento, incluso si el usuario no inicia ni cierra sesión. También es posible guardar varias sesiones diferentes y cargar una de ellas a elección del usuario. Las sesiones también se pueden especificar proporcionando la lista de aplicaciones que componen la sesión. Como resultado, el usuario tiene la posibilidad de guardar un conjunto de sesiones diferentes, ya sea almacenando el estado de ejecución de las aplicaciones actualmente en ejecución o enumerando explícitamente las aplicaciones que componen una sesión. De esta forma, el usuario puede decidir posteriormente cargar una sesión determinada.

Protocolo XSMP

Para que una sesión incluya el estado de una aplicación, la aplicación debe poder almacenar y cargar su estado actual cuando el administrador de la sesión lo solicite (normalmente al iniciar o cerrar sesión el usuario). Un protocolo llamado X Session Management Protocol (XSMP) especifica cómo interactúan las aplicaciones y los administradores de sesiones. El formato de mensaje XSMP es el mismo que el formato de mensaje de Inter-Client Exchange (ICE). [1] Es de particular importancia que el administrador de ventanas pueda comunicarse con el administrador de sesiones, ya que el administrador de ventanas es responsable de la ubicación de las ventanas y la existencia de los iconos. Las aplicaciones que no pueden almacenar su estado se pueden incluir en una sesión, pero no conservan su estado entre sesiones.

El protocolo

El XSMP es un subprotocolo del Protocolo de intercambio entre clientes . El cliente inicia el protocolo conectándose al administrador de sesión. La ubicación del administrador de sesiones en la red depende del sistema: en un sistema POSIX , el entorno contiene una variable SESSION_MANAGER. Por tanto, cuando se lanza un cliente, su entorno debe contener esta variable con un valor adecuado.

Identificadores

El protocolo tiene en cuenta dos hechos:

  1. para que una sesión se reinicie correctamente, no sólo se deben reiniciar las aplicaciones que se ejecutan en ella, sino que también se deben reiniciar de tal manera que restablezcan su estado anterior;
  2. la misma aplicación puede estar ejecutándose más de una vez en la misma sesión o en una sesión diferente.
Una sesión con dos instancias de xedit abiertas en archivos diferentes

Diferentes instancias de la misma aplicación pueden estar activas al mismo tiempo en la misma sesión o en diferentes sesiones, y lo más probable es que estas instancias tengan diferentes estados de ejecución. Por ejemplo, es posible que el usuario haya iniciado un editor de texto en un archivo /etc/passwd, luego en un archivo letter.txten la misma sesión y luego en un archivo todo.txten otra sesión.

Para que las sesiones se restablezcan correctamente, el administrador de sesiones debe reconocer como diferentes diferentes instancias de la misma aplicación. Por este motivo, el administrador de sesión elige un identificador único para cada instancia de cada aplicación. De esta manera, el administrador de sesión puede distinguir entre el editor de texto que se está ejecutando /etc/passwdy el editor de texto que se está ejecutando todo.txt, incluso si son dos instancias del mismo programa.

Los identificadores deben ser únicos. En particular, deben ser únicos en todas las sesiones administradas por el administrador de sesión: el identificador del editor de texto que se ejecuta /etc/passwdes diferente no sólo del mismo editor de texto que se ejecuta letter.txtsino también del editor de texto que se ejecuta todo.txten otra sesión. El identificador de un cliente sigue siendo el mismo incluso si la sesión se cierra y se reinicia.

Las partes principales del protocolo.

Las partes principales del protocolo de gestión de sesiones son:

  1. el administrador de sesión elige un identificador único para cada cliente
  2. el administrador de sesión solicita a los clientes que guarden su estado
  3. un cliente especifica cómo se debe iniciar nuevamente para restaurar el estado (por ejemplo, la línea de comando que se usará para iniciar el proceso)

El último punto es posible porque el administrador de sesión mantiene un conjunto de propiedades para cada cliente (en la terminología del sistema X Window, una propiedad es simplemente un contenedor de datos). Estos datos pueden ser modificados por el cliente en cualquier momento. Una de estas propiedades se llama RestartCommandy contiene información sobre cómo se debe iniciar nuevamente el cliente.

Cuando el administrador de sesión solicita a un cliente que guarde su estado, la aplicación procede de la siguiente manera:

  1. guarda su estado de tal manera que se pueden distinguir los estados de dos instancias diferentes; esto se puede obtener por ejemplo guardando el estado en un archivo cuyo nombre contenga su identificador
  2. almacena la especificación de cómo se debe iniciar nuevamente en la RestartCommandpropiedad; esta propiedad debe contener el identificador del cliente porque:
    1. la aplicación debe conservar su identificador cuando se inicie de nuevo
    2. el identificador es necesario para restaurar el estado (por ejemplo, es necesario para encontrar el archivo donde está almacenado su estado)

El administrador de sesión mantiene otras propiedades además de RestartCommand. Por ejemplo, una propiedad especifica cómo ejecutar la aplicación si se destruye la sesión.

Estado local y global

Cuando le pide a un cliente que guarde su estado, el administrador de ventanas puede especificar si se debe guardar el estado local o global (o ambos). La diferencia es si el resultado de guardar debe ser visible para las otras aplicaciones o no.

En el caso del editor de texto, guardar el estado global significa guardar el archivo normalmente, para que otras aplicaciones puedan usar la nueva versión del archivo. Guardar el estado local significa que se debe guardar una copia local del archivo para que otras aplicaciones puedan ver el archivo en su versión original.

Un ejemplo

Los siguientes son los pasos principales en la interacción de un administrador de sesión con el editor de texto hipotético xyzcuando esta aplicación se inicia por primera vez en una sesión, luego el usuario cierra sesión y luego vuelve a iniciarla:

  1. la aplicación se conecta al administrador de sesión a través del protocolo de intercambio entre clientes
  2. la aplicación le dice al administrador de la sesión que es la primera vez que se inicia y, por lo tanto, no tiene ningún identificador anterior (y, por lo tanto, ningún estado anterior)
  3. el administrador de sesión responde enviando al cliente su identificador único, por ejemplo 4324;
  4. el administrador de sesión solicita inmediatamente al cliente que guarde su estado local (solo porque el cliente se inició por primera vez)
  5. el cliente almacena la línea de comando xyz -sid 4324como propiedad RestartCommanden el administrador de sesión (esto también depende del sistema: en un sistema POSIX , esta propiedad en realidad contiene la matriz argv )
  6. el cliente almacena su estado localmente; por ejemplo, puede almacenar el nombre del archivo editado y toda la demás información (como la línea actual) en el archivo local..temp-4324
  7. Cuando el usuario cierra sesión, el administrador de sesión envía un mensaje a todos los clientes notificando que deben guardar su estado.
  8. el cliente 4324vuelve a cumplir
  9. Cuando todos los clientes han comunicado al administrador de sesión que su estado está guardado, el administrador de sesión cierra la sesión.

Cuando se le dice al cliente que guarde su estado, puede tener la posibilidad de tener una interacción limitada con el usuario o no (por ejemplo, preguntarle al usuario si desea guardar el archivo editado). De todos modos, el estado se guarda, se lo informa al administrador de la sesión enviando un mensaje apropiado).

Al iniciarse nuevamente la sesión ocurre lo siguiente:

  1. el administrador de sesión reinicia el cliente 4324ejecutando lo que está almacenado en la propiedad RestartCommandasociada con el cliente4324
  2. por tanto, la aplicación se inicia como xyz -sid 4324; De esta manera, la aplicación conoce su identificador.
  3. la aplicación recupera la información de estado del archivo.temp-4324
  4. la aplicación se conecta al administrador de sesión especificando el identificador 4324, para que el administrador de sesión sepa que no se trata de un cliente nuevo sino de uno antiguo que se reinicia

Sesiones de gestión de clientes

Según el protocolo XSMP, un administrador de sesión es un programa arbitrario (servidor) que ejecuta y controla el estado de otras aplicaciones. Como resultado, un cliente puede ser él mismo un administrador de sesiones de otros clientes. Por ejemplo, un cliente de correo puede iniciar un editor de texto con el fin de escribir un correo electrónico y comportarse como un administrador de sesión con respecto al editor. De esta forma, si el cliente de correo se cierra y luego se reinicia nuevamente, puede restaurar el estado del editor de texto. [ cita necesaria ]

Implementaciones

El sistema X Window incluye un administrador de sesión predeterminado llamado xsm. Se han desarrollado otros administradores de sesiones para entornos de escritorio específicos .

KDE

ksmserveres un administrador de sesión predeterminado del entorno de escritorio KDE Plasma 5 . [2] [3]

xfce

xfce4-sessionEl programa es un administrador de sesiones X predeterminado para DE basados ​​en Xfce . Xfce permite crear diferentes sesiones y elegirlas al inicio. [4] [5]

Gnomo

gnome-sessiones un administrador de sesión predeterminado para Gnome DE. Gnome ha soportado XSMP desde v1.x. 2013 GNOME tenía la intención de reemplazar el administrador de sesiones de GNOME XSMP con una interfaz D-Bus en la versión 2.24. [6] Finalmente se decidió combinar ambas interfaces y proporcionar un adaptador (cliente) para aplicaciones heredadas. [7] Sin embargo, en ese momento no tenía todas las funciones ni era utilizado por aplicaciones que no fueran GNOME. [8] A partir de 2021, el código base todavía incluye clientes del administrador de sesiones X.

Soporte entre aplicaciones

Las aplicaciones ejecutables generalmente no incorporan (enlazan con bibliotecas ) soporte para sesiones (interacción con el administrador de sesiones) directamente, sino que lo hacen a través de algún SDK como KDE Plasma o GTK, que proporciona rutinas para la administración de sesiones y el intercambio cliente-servidor. Es posible que algunas aplicaciones no sean compatibles.

Ver también

Referencias

  1. ^ "Protocolo de gestión de sesiones X". www.x.org . Consultado el 2 de diciembre de 2020 .
  2. ^ "Guía del usuario del escritorio KDE: KSMServer". www.linuxtopia.org . Consultado el 5 de octubre de 2021 .
  3. ^ "ksmserver · master · Plasma / Espacio de trabajo Plasma". GitLab . Consultado el 5 de octubre de 2021 .
  4. ^ "xfce: xfce4-session: iniciar [Xfce Docs]". docs.xfce.org . Consultado el 5 de octubre de 2021 .
  5. ^ "xfce: xfce4-session: preferencias [Xfce Docs]". docs.xfce.org . Consultado el 5 de octubre de 2021 .
  6. ^ "Proyectos/Gestión de sesiones/GnomeSession - ¡GNOME Wiki!". wiki.gnome.org .
  7. ^ "Proyectos/Gestión de sesiones/Nueva sesión de Gnome - ¡GNOME Wiki!". wiki.gnome.org . Consultado el 5 de octubre de 2021 .
  8. ^ "Capítulo 6 Gestión de sesiones (Guía de administración del sistema de escritorio GNOME 2.0 para el entorno operativo Solaris)". docs.oracle.com . Consultado el 5 de octubre de 2021 .

enlaces externos