Sobre el proyecto
Sophia es un servidor de visualización y compositor experimental construido alrededor de un motor basado en transacciones, con un frontend X11 nativo. Su idea central es que la geometría de la ventana y los píxeles se confirman juntos como una única transacción visual, de modo que un cliente detenido deja el último estado confirmado en pantalla hasta que un reemplazo esté listo.
El proyecto sigue una división de responsabilidades al estilo Unix. El motor posee la entrada física, el grafo de escena, la programación de fotogramas, las confirmaciones visuales, el renderizado y la salida de visualización. El frontend X11 (escrito en Rust en sophia-x-authority) acepta conexiones X11, gestiona recursos, aplica reglas de protocolo y traduce el estado del cliente en transacciones del motor. La gestión de ventanas, la interfaz de shell y las transferencias entre aplicaciones son manejadas por procesos separados que se comunican mediante protocolos versionados.
Componentes clave:
- Motor Sophia: autoridad del compositor para entrada, grafo de escena, prueba de impacto, seguimiento de daños, programación de fotogramas, confirmaciones visuales atómicas y escaneo.
- Frontend del servidor X Sophia: recursos X11, selecciones, capturas y comprobaciones de protocolo; emite transacciones de superficie verificadas por espacio de nombres.
- WM Sophia: propone diseño y enfoque a través de sophia_wm_v1 usando nodos de diseño opacos y manejadores de superficie, sin acceso a XIDs, títulos, PIDs o contenido del portapapeles. Hagia es el gestor de ventanas de referencia.
- Shell Sophia: suministra paneles, lanzadores y conmutadores a través de sophia_shell_v1, solicita espacio a lo largo de los bordes de la pantalla y recibe metadatos saneados a través del intermediario. Narthex es la referencia de shell descriptor.
- Portales Sophia: intermediarios para compartir portapapeles, arrastrar y soltar, y captura de pantalla entre espacios de nombres, requiriendo autorización para cada destinatario específico.
El aislamiento de espacios de nombres es un punto central del diseño. Las aplicaciones confiables pueden compartir un espacio de nombres y usar el modelo de objetos X11 tradicional, mientras que las aplicaciones que necesitan aislamiento se ejecutan en espacios de nombres separados donde las búsquedas de recursos entre espacios fallan de forma segura. Los portales autorizan transferencias específicas sin abrir ningún espacio de nombres al acceso general.
La documentación incluye una guía para construir gestores de ventanas, shells o entornos de escritorio en Sophia, un índice de especificaciones de arquitectura, protocolo, configuración y seguridad, y un cuaderno de desarrollo con investigaciones y decisiones de diseño. El trabajo actual se rastrea en todo.md.
Estado: Sophia es un prototipo de investigación. X11 es el protocolo de aplicación actual y el frontend Rust implementa un subconjunto del mismo; la compatibilidad de aplicaciones y la validación de extremo a extremo aún están en progreso. Otros frontends de protocolo, incluido Wayland, son trabajo futuro. El proyecto está licenciado bajo BSD 3-Cláusulas.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.