Linux のネイティブ GUI API とは何ですか? 質問する

Linux のネイティブ GUI API とは何ですか? 質問する

Windows (Win32 API) と OS X (Cocoa) はどちらも、ウィンドウ、イベント、その他の OS 関連のものを処理するための独自の API を持っています。Linux の同等のものが何なのか、これまで明確な答えを得たことがありません。

GTK+ と言う人もいますが、GTK+ はクロスプラットフォームです。どうすればネイティブになるのでしょうか?

ベストアンサー1

Linuxでは、グラフィカルユーザーインターフェースはオペレーティングシステムの一部ではありません。ほとんどのLinuxデスクトップで見られるグラフィカルユーザーインターフェースは、と呼ばれるソフトウェアによって提供されています。X ウィンドウ システムは、画面、キーボード、ポインター デバイスを処理するデバイスに依存しない方法を定義します。

X Windowは通信用のネットワークプロトコルを定義しており、このプロトコルを「話す」方法を知っているプログラムであれば、それを使用できます。Cライブラリには、Xlibこのプロトコルを使いやすくするXlibは、ネイティブGUI APIの一種です。XlibはXウィンドウサーバーにアクセスする唯一の方法ではありません。クロスボーダー

ツールキットライブラリなどGTK+(によって使われたグノーム) そしてクォート(によって使われた翻訳Xlib 上に構築された .NET Framework は、プログラミングが簡単なため使用されています。たとえば、アプリケーション間で一貫した外観と操作性を実現したり、ドラッグ アンド ドロップが使いやすくなったり、最新のデスクトップ環境に標準のコンポーネントを提供したりといったメリットがあります。

X が内部的に画面にどのように描画するかは実装によって異なります。X.orgデバイス非依存部分とデバイス依存部分があります。前者はウィンドウなどの画面リソースを管理し、後者はグラフィックカードドライバ(通常はカーネルモジュール)と通信します。通信は直接メモリアクセスまたはシステムコールカーネルに渡されます。ドライバーはコマンドをカード上のハードウェアが理解できる形式に変換します。

2013年現在、新しいウィンドウシステムウェイランドは使用可能になりつつあり、多くのディストリビューションが、ある時点で移行すると述べているが、まだ明確なスケジュールはない。このシステムは OpenGL/ES API に基づいており、将来的には OpenGL が Linux の「ネイティブ GUI API」になることを意味する。GTK+ と QT を Wayland に移植する作業が進行中で、現在人気のアプリケーションとデスクトップ システムの変更は最小限で済む。移植できないアプリケーションは、OS X が Xquartz を通じて X11 アプリケーションをサポートするのと同様に、X11 サーバーを通じてサポートされる。GTK+ の移植は1年以内に完成予定Qt 5 にはすでに Wayland が完全にサポートされています。

さらに事態を複雑にしているのは、Ubuntuが「ミールWayland に問題があると認識しているためです。このウィンドウ システムも OpenGL/ES API に基づいています。

おすすめ記事