I am familiar with how the X11 system works, where clients connect via a socket to the server process and send operations to the window server to perform certain operations on their behalf.
But I do not understand (and I could not find good documents) describing how a GUI application interacts with the window system on Mac OS X. Some of the questions that I have include:
- How does an app receive events from the windowing system?
- Does the app need to register with the kernel, or some windowing system server?
- How does the windowing system request that an app update its display?
- How does an app trigger a re-display operation?
- Is there a socket-based protocol, or some other RPC system to the windowing system?
- Does the windowing system, or the application, have direct hardware access?
- What are the operations available between client apps and the windowing system?