Estoy familiarizado con el funcionamiento del sistema X11, donde los clientes se conectan mediante un socket al proceso del servidor y envían operaciones al servidor de Windows para realizar ciertas operaciones en su nombre.
Pero no entiendo (y no pude encontrar buenos documentos) que describa cómo una aplicación GUI interactúa con el sistema de ventanas en Mac OS X. Algunas de las preguntas que tengo incluyen:
- ¿Cómo recibe una aplicación eventos del sistema de ventanas?
- ¿La aplicación necesita registrarse con el kernel o con algún servidor del sistema de ventanas?
- ¿Cómo solicita el sistema de ventanas que una aplicación actualice su pantalla?
- ¿Cómo desencadena una aplicación una operación de re-visualización?
- ¿Existe un protocolo basado en socket o algún otro sistema RPC para el sistema de ventanas?
- ¿El sistema de ventanas o la aplicación tienen acceso directo al hardware?
- ¿Cuáles son las operaciones disponibles entre las aplicaciones cliente y el sistema de ventanas?
fuente
El "¿Qué es el cacao?" La sección de la Guía de Fundamentos de Cocoa tiene un montón de excelentes ilustraciones de la arquitectura de abajo hacia arriba.
fuente
El mejor recurso para las partes internas de OS X son las partes internas de Mac OS X de Amit Singh . Es asombrosamente detallado, pero desafortunadamente solo cubre OS X hasta 10.4. Google books tiene una vista previa .
La documentación de Apple para OS X también es un buen recurso, y obviamente está más actualizada.
fuente
XQuartz es el proyecto de código abierto del sistema X.org X Window que se ejecuta en Mac OS X. Su wiki de desarrollador y su lista de correo deberían ayudarlo con sus preguntas, parece que necesita a alguien profundamente involucrado en el proyecto para responderlas.
fuente
En versiones anteriores de MacOS, el levantamiento fue realizado por QuickDraw; en OS X, que ha sido reemplazado por Cocoa ...
Sin embargo, no es simplemente paralelo a X11. Por ejemplo, X11 no incluye audio, pero Cocoa sí.
fuente