Xorg(Xサーバー)の役割とアーキテクチャ、そして他のソフトウェアとの相互作用

Xorg(Xサーバー)の役割とアーキテクチャ、そして他のソフトウェアとの相互作用

私は何年もの間Linuxユーザーでしたが、それでもWindowsとMacシステムのディスプレイで使用されているソフトウェアとXがどのように比較されているのかを理解するのが困難です。

私はそれがクライアント/サーバーベースのソフトウェアであることを知っていますが、特に私を混乱させることは、ディスプレイを提供するためにウィジェットツールキットと連携する方法と相互に対話する方法です。

私は、Mac用のCocoaフレームワークを例に挙げます。フレームワークのオープンソース実装であるGnuStepがありますが(私が推測する限り)Xで実行されます。そうですか?しかし、MacではXを使わないようです。

LinuxでXorgに代わるものはありますか?たとえば、GnuStepを実行するために他のものを使用できますか?

ウィンドウマネージャとデスクトップ環境は、Xで使用するために特別に書かれていますか、それとも他のディスプレイソフトウェアで使用できますか?

ベストアンサー1

最初の確認Linuxデスクトップについて学ぶ

私は何年もの間Linuxユーザーでしたが、それでもWindowsとMacシステムのディスプレイで使用されているソフトウェアとXがどのように比較されているのかを理解するのが困難です。

私はそれがクライアント/サーバーベースのソフトウェアであることを知っていますが、特に私を混乱させることは、ディスプレイを提供するためにウィジェットツールキットと連携する方法と相互に対話する方法です。

私は、Mac用のCocoaフレームワークを例に挙げます。フレームワークのオープンソース実装であるGnuStepがありますが(私が推測する限り)Xで実行されます。そうですか?しかし、MacではXを使わないようです。

ツールキット(GTK、Qt...)は通常互いに対話しません。これは単なるライブラリであるため、(ほとんど)プロセスごとに分離されます。もちろん、描画コマンドを送信し、入力内容を読み取り、Xサーバーと対話します。ただし、その一部は単一のバックエンド(X11)に限定されません。たとえば、GTK、Qt、GNUstepにはMS Windowsのバージョンもあります。

これらのツールキットは、基本的な描画インターフェイスの上で統合APIレイヤーとして機能します。 X11では、ボタン描画要求を一連の単純なオブジェクト(四角形、影など)に変換します。たとえば、最近のGTKバージョンでは、次のようになります。他を介して実装された抽象化レイヤプロバイダです。カイロ)。 WindowsまたはMacでは、デフォルトのAPIを使用して、たとえば「GTKボタン」を「Windowsボタン」に変換でき、たとえばフレームバッファデバイスでは個々のピクセルに直接変換できます(おそらくCairoのように再変換)。ラスターエンジン)。たとえば、Qtはおおよそ次のようになります。15種類のバックエンド

アプリケーションと通信するためにさまざまなツールキットを使用するデスクトップ環境について話している場合、これはまったく異なる話です。最近では、Dバス通常はXセッション内で使用され、GUIアプリケーションが他のアプリケーションとメッセージを送受信できるようにします。

LinuxでXorgに代わるものはありますか?たとえば、GnuStepを実行するために他のものを使用できますか?

代替案は(John Siuが答えで述べたものに加えて)次のとおりです。ウェイランド。しかし、これを使用できるアプリは多くない。出身地

ウィンドウマネージャとデスクトップ環境は、Xで使用するために特別に書かれていますか、それとも他のディスプレイソフトウェアで使用できますか?

ほとんどのタイムウィンドウマネージャはXプロトコルのみを理解し、Xサーバーの下(または見ている側面に応じてその上で)実行する必要があります。ほとんど良いものがないからです(X11とその実装にはより良いことがいくつかありますが)。

おすすめ記事