Mac OS X Windowsシステムのアーキテクチャは何ですか?

Mac OS X Windowsシステムのアーキテクチャは何ですか?

私はクライアントがソケットを介してサーバープロセスに接続し、Windowsサーバーにタスクを送信するのではなく、特定のタスクを実行するX11システムの仕組みをよく知っています。

しかし、GUIアプリケーションがMac OS XのWindowsシステムとどのように対話するかについての説明がわかりません(良い文書も見つかりません)。私の質問のいくつかは次のとおりです。

  • アプリケーションはWindowsシステムからイベントをどのように受け取りますか?
  • アプリケーションをカーネルまたは一部のWindowsシステムサーバーに登録する必要がありますか?
  • Windowsシステムはアプリケーションにディスプレイの更新をどのように要求しますか?
  • アプリは再表示タスクをどのように実行しますか?
  • ソケットベースのプロトコルやWindowsシステム用の他のRPCシステムはありますか?
  • Windowsシステムやアプリケーションはハードウェアに直接アクセスできますか?
  • クライアントアプリケーションとWindowsシステムの間で何ができますか?

ベストアンサー1

私がこれまでに収集した内容は次のとおりです。

アプリケーションは一部のプライベートAPIを介してWindowServerプロセスと通信し、WindowServerプロセスは実際にハードウェアイベント(マウス、キーボード)を取得し、これらのイベントをクライアントアプリケーションに渡します。 (これはまだ一般的な質問です。どのプロトコル(もしあれば)を使用するのか、MachポートとMIGを使用するのか、またはいくつかのソケットベースのAPIを使用しているのかはわかりません。)

ここにいくつかの情報があります:

https://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/OSX_Technology_Overview/GraphicsTechnologies/GraphicsTechnologies.html#//apple_ref/doc/uid/TP40001067-CH273-SW1

WindowServerはQuartzシンセサイザです。通常、アプリケーションはCoreGraphics API(CGXXX関数)に公開されているQuartz2D APIを使用します。アプリケーションは、CoreGraphics「コンテキスト」(CGContext)を生成し、そこに描画します。大きなビットマップで完了したら、コンテキストをプッシュするのか、X11のようにサーバーにジョブを送信するのかは、まだ開いている質問です。

WindowServerプロセスの特定の側面を制御するための制限されたAPIがあります。通常、設定アプリで実行される構成設定の種類ですが、公開されたカーボンに加えて、アプリケーションが実際にグラフィック要求を転送したりサーバーからメッセージを送信したりする方法についてのドキュメントはありません。 /ココアAPI。

おすすめ記事