Estou familiarizado com o funcionamento do sistema X11, no qual os clientes se conectam por meio de um soquete ao processo do servidor e enviam operações ao servidor de janelas para executar determinadas operações em seu nome.
Mas não entendo (e não consegui encontrar bons documentos) descrevendo como um aplicativo GUI interage com o sistema de janelas no Mac OS X. Algumas das perguntas que tenho incluem:
- Como um aplicativo recebe eventos do sistema de janelas?
- O aplicativo precisa se registrar no kernel ou em algum servidor de sistema com janelas?
- Como o sistema de janelas solicita que um aplicativo atualize sua exibição?
- Como um aplicativo aciona uma operação de reexibição?
- Existe um protocolo baseado em soquete ou algum outro sistema RPC no sistema de janelas?
- O sistema de janelas, ou o aplicativo, tem acesso direto ao hardware?
- Quais são as operações disponíveis entre aplicativos clientes e o sistema de janelas?
fonte
O "O que é cacau?" A seção do Guia de fundamentos do cacau contém várias ótimas ilustrações da arquitetura de baixo para cima.
fonte
O melhor recurso para os internos do OS X é o Mac OS X Internals de Amit Singh . É surpreendentemente detalhado, mas infelizmente abrange apenas o OS X até 10.4. O Google Livros tem uma visualização .
A documentação da Apple para o OS X também é um recurso interessante e obviamente está mais atualizado.
fonte
XQuartz é o projeto de código aberto do X.org X Window System que roda no Mac OS X. O wiki e a lista de discussão dos desenvolvedores devem ajudá-lo com suas perguntas, parece que você precisa de alguém profundamente envolvido no projeto para respondê-las.
fonte
Nas versões anteriores do MacOS, o levantamento era feito pelo QuickDraw; no OS X, que foi substituído pelo Cocoa ...
Porém, ele simplesmente não é paralelo ao X11. Por exemplo, o X11 não inclui áudio, mas o cacau inclui.
fonte