0

GUI はオペレーティング システム内でどのように構築されますか。Ubuntu の GTK+ と Java JFrame の 2 つの例を使用してみましょう。ある種のグラフィカル ユーザー インターフェイスを使用するオペレーティング システムでは、ウィンドウを表示できるようにするために何らかのシステム コールを提供する必要があると考えていました。たとえば、あるバージョンの Ubuntu をマシンにインストールした場合、ソフトウェアをダウンロードしなくても、システム コールを実行してウィンドウを表示できるはずです。そうではないように見えますが、そうではありません。ボタンなどでウィンドウを作成できるようにするGTK +のSDKをインストールしてダウンロードする必要があります。Linux システム上で実行されている Java 仮想マシンがあることを理解しています。しかし、実際にウィンドウを表示するために、Java 仮想マシンはどのように呼び出しを行うのでしょうか? GUI とともに、ユーザーが操作するイベントが発生します。Java レベルでは、JVM がすべての下位レベルの呼び出しを処理し、OnClick() イベントなどを取得します。JVM は実際にこれらの呼び出しをどのように呼び出して処理するのでしょうか? GDK+と同じ?これは幅広い質問であり、さまざまな回答があることを理解していますが、どんな助けでも大歓迎です。

4

1 に答える 1

2

Linuxを例にとってみましょう。いくつかのレイヤーがあります:

  • カーネル(Linux)およびオペレーティングシステム(GNU)-グラフィックスを含むハードウェアの操作方法を知っています。
  • ウィンドウシステム(X)-グラフィック関数を使用してウィンドウを描画します。
  • デスクトップ(Gnomeなど)-ウィンドウの境界線などのグローバルスタイルを適用します。
  • (通常)GTKなどのツールキット-ウィジェット、ウィジェットの描画方法、およびウィジェットのスタイル設定方法について知っています。
  • あなたの申請。

Windowsでは、カーネル、OS、ウィンドウシステム、デスクトップ、ウィジェットがすべて一緒にバンドルされています。この場合、ツールキットはおそらく独自のウィジェットを描画しませんが、Windowsから直接ウィジェットを使用します。

いずれの場合も、ツールキットはアプリケーションをプラットフォーム固有の詳細から隔離し、自動的に正しいことを行います。

于 2012-09-06T10:49:07.913 に答える