¿Por qué X Server es un servidor en lugar de una biblioteca con un conjunto de funciones predefinidas?

¿Por qué X Server es un servidor en lugar de una biblioteca con un conjunto de funciones predefinidas?

Recientemente me enfrenté por primera vez al concepto de "X Window Server". Después de leer mucho sobre él y luchar por comprender la mayoría de sus conceptos básicos, principalmente porque nací en la "era de la informática moderna", sin haber tocado nunca una "terminal real" o "PC no lo suficientemente potentes para ejecutar un Cliente X", Me confundí con algo:

¿Por qué X Server es un servidor en lugar de una biblioteca con un conjunto de funciones predefinidas?

Podría aprender mucho de algunas preguntas formuladas anteriormente aquí, especialmente estas:

Entendí que X Server fue diseñado inicialmente para soportar también la comunicación a través de redes, ya que algunas computadoras antiguas no eran lo suficientemente potentes para ejecutar elementos gráficos. ¿Es esta la única razón por la que X Server fue diseñado para actuar como servidor? ¿Recibir "solicitudes" a través de una red y responder con "elementos gráficos"?

¿Hay alguna otra razón por la que X Server actúa como servidor incluso localmente? Probablemente me falta algún detalle y eso es exactamente lo que estoy tratando de entender para "conectar" todo lo que he aprendido hasta ahora.

Si es posible, ¿podrían darme también un ejemplo real de cómo se comunicaban los terminales con los servidores X Window en el pasado? Todo lo que puedo imaginar es un edificio lleno de computadoras terminales (con nada más que una pantalla de terminal negra) y con una sola computadora capaz de ejecutar interfaces gráficas. ¿La gente solía compartir esta computadora para comunicarse con las terminales para realizar tareas pesadas?

¡Gracias!

Respuesta1

Parece que tiene un gran malentendido con respecto a los terminales.

Había terminales de texto y terminales X11. Los terminales X11 ejecutaban un servidor X. A esto también se le llamó cliente ligero.

También puede tener una estación de trabajo que ejecute un servidor X. Se conectaría a un servidor de procesos. Una poderosa máquina en el sótano.

Otras ventajas son:

  • Es sólo un proceso (con acceso al hardware de gráficos, al teclado y al dispositivo señalador), pero sólo un proceso. Esto tiene ventajas. Puede tener uno sin acceso al hardware de gráficos, al teclado ni al dispositivo señalador. También podría ser un servidor VNC, creando un puente X11-vnc. Podría usarse para pruebas (hacer que un proceso de robot lo controle, en lugar de un humano).
  • Es un proceso separado: actualicé mi computadora a código múltiple. Utiliza estos núcleos, sin necesidad de cambios en el software (hasta unos pocos núcleos).
  • Si tiene varios monitores, teclados y ratones, desde el punto de vista arquitectónico es fácil convertirlos en asientos separados (terminales).
  • Facilita la implementación del cambio de usuario.
  • No dar a otros procesos acceso al hardware. Como lo haría con el enfoque de biblioteca, es más seguro (Note X11 tiene algunos problemas de seguridad que podrían resolverse con un rediseño).
  • El administrador de ventanas también es un proceso separado. Esto permite la elección de entornos de escritorio. Entonces, un proceso para el servidor X11, uno para el administrador de ventanas, uno para el administrador de pantalla (servicio de inicio de sesión), uno para esto y aquello. Lo hace flexible, puede cambiar su entorno de escritorio sin siquiera cerrar sesión.

Respuesta2

Es un servidor porque proporciona y coordina un servicio de visualización en una sola pieza de hardware (conceptualmente una estación de trabajo) que puede tener múltiples teclados, otros dispositivos de entrada y múltiples pantallas.

Múltiples procesos pueden conectarse a él, ya sea local o remotamente, y negociar el espacio de la pantalla, el enfoque de entrada, las ranuras del mapa de colores y otros recursos. Los procesos no pueden negociar entre sí directamente ni conciliar sus demandas dispares. El servidor X Windows proporciona el servicio que hace que todos los procesos del cliente crean que tienen acceso a todas las funciones de la estación de trabajo.

información relacionada