X11 / X-Linuxデスクトップソフトウェア、これがどのように適合するか理解していない

StackOverflow https://stackoverflow.com/questions/636316

  •  10-07-2019
  •  | 
  •  

質問

最近、Linuxの使用を開始しました(私が働いている場所はMicrosoftのショップなので、C#でコーディングするだけで、MS製品を扱うなど)。

私は、Linuxのいくつかの基本的なものがどのように結び付いているかを高レベルで理解しようとしています。 www.linfo.org

を読んでいます。

とにかく、Xが何なのかよくわかりません。

この記事を読むと、Xはその上にあるレイヤーであるように思えますオペレーティングシステム(OS上にある1つのXサーバー??)とXクライアントアプリケーションがXサーバーにリクエストを送信します。 KDE、Xfce、Gnomeはディスプレイマネージャーだと思いますが、Xサーバークライアントですか?

すべてが置かれている場所はかなり混乱しています。

どんな説明でも大歓迎です!

役に立ちましたか?

解決

すべて非常にモジュール式で柔軟です。ただし、これは複雑になります。

" Xサーバー"ディスプレイデバイスを駆動します。クライアントにグラフィックサービスを提供します。これらのサービスは次のように非常に単純です。

"Give me a window frame to draw in"

"Put this bitmap here"

"Draw a horizontal black line 100px wide"

"Render the text 'hello' at (100,100)"

"Tell me if any mouse clicks or key presses have been aimed at my window frame"

これらすべての単純なサービス用の標準インターフェースを備えた、Xによって提供されるXlibと呼ばれるライブラリがあります。 Xサーバーのディスプレイを使用するプログラムは、最終的にこのクライアントライブラリを使用し、Xクライアントと呼ばれます。 Xlibは、これらのサービスを呼び出すために、ローカルマシン上で、またはLANまたは世界中のTCP / IPを介して、任意のXサーバーに接続する方法を知っています。

別のXクライアントプログラムであるWindow Managerは、「ルックアンドフィール」を担当します。デスクトップの移動-ウィンドウの移動方法や配置方法など。ウィンドウマネージャはすべてのウィンドウ装飾を描画するため、デスクトップをWindowsXP、Mac、またはNeXTSTEPのように見せることができます。

Xの哲学の一部は、「ポリシーではなくメカニズム」を定義することでした。 -意味、彼らはあなたにそれを行うためのツールを提供しますが、それらのツールの使用方法を教えません。そのようなツールの1つにウィンドウマネージャーがあり、これは自由に置き換えることができます。

最近のXアプリケーションの多くは、GnomeやKDEなどのデスクトップ環境を使用するように作成されています。これにより、これらのプログラムに一貫した一連のボタンとコントロールが描画され、Xには従来含まれていなかったが、デスクトップの一部と見なされることが多い、ドラッグアンドドロップへの応答方法や表示方法などの一貫したインターフェイスが提供されます標準のファイル選択ダイアログボックス。

通常、デスクトップ環境は、すべての単純なXクライアント要求を処理し、プログラムがより重要なことを処理できるようにするオブジェクトモデルまたはプログラムインターフェイスを提供します。これらの低レベルの呼び出しを削除すると、別の重要な利点が得られます。プラットフォームに依存しません。

多くのデスクトップ環境にはウィンドウマネージャーが含まれているため、ウィンドウコントロールとボタンのルックアンドフィールは一貫しており、環境によって提供されるデスクトップメタファーと連携します。ただし、通常は切り替えることができます。

Xサーバー(ディスプレイの実行)とXクライアント(ディスプレイの使用を望んでいる)の分離には、いくつかの意味があります:

  • グラフィックスシステムはGUIプログラムとは別個であり、WebブラウザーとWebサーバーとほぼ同じくらい完全に分離されています。

  • したがって、Webプログラムがローカルマシン上のWebサーバーを指す必要がないように、GUIプログラムがローカルマシンに表示されない場合があります。

  • マシンはクライアントを実行するだけで、Xサーバーは別の場所で実行できます。

  • ディスプレイを備えたマシンはクライアントを実行する必要はありません。Xサーバーを実行するだけで、すべてのクライアントは専用マシンで実行できます。これは元のシンクライアントです。大きな中央サーバーで実行される大きなプログラム-ユーザーの目の前にあるデスクの専用ハードウェアによってグラフィカルユーザーインタラクションが処理されます。

  • XプログラムのGUIを表示する場所をGUIプログラムに伝えるには、Xサーバーのネットワークアドレスを知る必要があります。 (これは通常、DISPLAY環境変数を設定することで行われます)

  • 多くの異なるマシンの多くのプログラムを、すべて同じデスクトップに同時に表示できます。カットアンドペーストを含め、すべてシームレスに処理されます。

他のヒント

X11はネットワークプロトコルであり、現在リリース7です(したがってX11R7)。グラフィックと入力情報をカプセル化し、ローカルまたはリモートマシンで実行されているXクライアント(アプリケーションまたはウィンドウマネージャー)を、ローカルスクリーンと入力デバイスを現在駆動しているXサーバーに接続します。

Gnome、KDE、XFCE、LXDEはデスクトップ環境です。これらには、Xサーバーと通信する部分(メタデータ、kwinなど)が含まれますが、アプリケーションが従う必要がある仕様と、アプリケーションが「所属」するために利用可能なライブラリも含まれます。 DEへ。

さらに、XサーバーはLinuxで実行されるもう1つのプログラムであることに注意してください。それについて特別なことは何もありません。グラフィックカードをつかみ、ビデオドライバーを使用してモニターを引き継ぐ方法を知っているだけです。 (理論的には)Xサーバーを実行しなくてもLinuxを非常に快適に実行できます-もちろん、コマンドラインプログラムに限定されます。

それは、Linuxがそれ自体を編成する方法です-ベースのカーネル、それから、より高いレベルのプログラムに機能を提供するプログラムのセット、それ自体がより高いレベルのプログラムに機能を提供します。マシンの(たとえば、一般的なデスクトップ、ソフトウェア開発、Webサーバーなど)です。

カーネルとそのモジュール以外には、「特別な」ものは何もありません。

ウィキペディアには、いくつかの情報があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top