GNU/Linux >> Linux の 問題 >  >> Linux

Linux – Linuxのディスプレイはどのように機能しますか?

Linuxのディスプレイシステムは複数のテクノロジーを使用しています 、プロトコル、拡張機能、アプリケーション、サーバー(デーモン)、ドライバー、および概念ウィンドウシステムを実現するための 例:
Xorg、Wayland、X11、OpenGL、RandR、XrandR、画面解像度、DPI、ディスプレイサーバーなど

全体像がわからない場合、その多数は圧倒的または混乱を招く可能性があります。 Linuxのディスプレイシステムの両側には複数のドキュメントがありますが、グローバルに正確にどのように機能しますか?

承認された回答:

Linuxディスプレイ

Linuxのディスプレイシステムは、複数のテクノロジー、プロトコル、拡張機能、アプリケーション、サーバー(デーモン)、ドライバー、および概念を使用して、ウィンドウシステムを実現します。たとえば、Xorg、Wayland、X11、OpenGL、RandR、XrandR、画面解像度、DPI、ディスプレイサーバー、など。これを完全に理解するには圧倒される可能性がありますが、それぞれの側面は特定の目的のためのものであり、同時に使用されるわけではありません。

Xプロトコル

X Window System、 X11 (Xバージョン11)は、Unixライクなオペレーティングシステムで一般的なビットマップディスプレイ用のウィンドウシステムです。Xは、GUI環境の基本的なフレームワークを提供します。ディスプレイデバイスでウィンドウを描画および移動し、マウスとキーボードを操作します。 Xはユーザーインターフェイスを義務付けていません。これは個々のプログラムによって処理されます。そのため、Xベースの環境の視覚的なスタイルは大きく異なります。プログラムが異なれば、根本的に異なるインターフェースを提示する可能性があります。 Xは、1984年にマサチューセッツ工科大学(MIT)のプロジェクトアテナで始まりました。Xプロトコルは1987年9月からバージョン11(したがって「X11」)になっています。X.OrgFoundationは、現在のリファレンス実装でXプロジェクトを主導しています。 、X.Org Server、MITライセンスおよび同様の許容ライセンスの下で無料のオープンソースソフトウェアとして利用可能。

Xの実装

ほとんどのLinuxディストリビューションはX.Orgサーバーを使用します これは、X.OrgFoundationが管理するXWindow System(X11)用のディスプレイサーバーの無料のオープンソース実装です。 Xorg / Xだけでは、その Xorg に対して、スケーリングやレンダリングなどの複数の提供機能をサポートしていません。 拡張機能を使用します XFixes、RandRなど(RandRは xrandrによって管理されます) たとえば、パン、解像度、スケーリングのセットアップ、GLX(OpenGL拡張)、レンダリング、またはコンポジットを使用して、ウィンドウ階層のサブツリー全体をオフスクリーンバッファーにレンダリングし、アプリケーションはそのコンテンツを取得できます。バッファリングして好きなように実行すると、オフスクリーンバッファを親ウィンドウに自動的にマージできますまたは コンポジットマネージャーと呼ばれる外部プログラムによってマージされました 一部のウィンドウマネージャーのように、自分で合成を行う 行う;例えば。 Compiz、Enlightenment、KWin、Marco、Metacity、Muffin、Mutter、Xfwm。その他の「非合成」の場合 」ウィンドウマネージャー、スタンドアロンのコンポジットマネージャーを使用できます。例:Picom、Xcompmgr、Unagi。 Xorgがサポートする拡張機能 次のようにリストできます: xdpyinfo -display :0 -queryExtensions | awk '/^number of extensions:/,/^default screen number/'

一方、ウェイランド Xorg / X11のよりシンプルな代替品として意図されており、開発と保守が容易ですが、2020年の時点で、Waylandに対するデスクトップのサポートはGnome以外ではまだ完全には準備されていません(KDE KwinとWaylandのサポートなど)。ディストリビューション側では、FedoraはデフォルトでWaylandを使用します。 WaylandとXorgは同時に動作できることに注意してください。これは、使用する構成によっては当てはまる場合があります。 XWaylandは、Waylandプロトコルで実行されるXサーバーを実装するX.Orgサーバーコードベース上の一連のパッチです。パッチは、Waylandへの移行中にX11アプリケーションとの互換性のためにWayland開発者によって開発および保守され、2014年にX.Orgサーバーのバージョン1.16でメインライン化されました。ユーザーがWeston内からXアプリケーションを実行すると、 XWaylandがリクエストを処理します。

関連:MacOSにアップデートした後、Catalina MAMPはネットワークマウントのrootでは機能しなくなりましたか?

スコープ全体

ディスプレイサーバー またはウィンドウサーバーは、他のオペレーティングシステム、ハードウェア、および相互にクライアントの入出力を調整することを主なタスクとするプログラム(XorgやWaylandなど)です。ディスプレイサーバーは、ネットワーク透過または単にネットワーク対応の通信プロトコルであるディスプレイサーバープロトコルを介してクライアントと通信します。たとえば、X11とWaylandはディスプレイサーバーの通信プロトコルです。

図に示されているように、ウィンドウマネージャー はデスクトップ環境のもう1つの重要な要素であり、グラフィカルユーザーインターフェイスのウィンドウシステム内のウィンドウの配置と外観を制御するシステムソフトウェアです。ほとんどのウィンドウマネージャーは、デスクトップ環境の提供を支援するように設計されています。これらは、グラフィックハードウェア、ポインティングデバイス、およびキーボードに必要な機能サポートを提供する基盤となるグラフィカルシステムと連携して機能し、ウィジェットツールキットを使用して作成および作成されることがよくあります。 KDEはウィンドウマネージャーとしてKWinを使用します(2020年の時点でWaylandのサポートは制限されています)。同様に、Gnome 2はMetacityを使用し、Gnome3はウィンドウマネージャーとしてMutterを使用します。

ウィンドウマネージャーのもう1つの重要な側面は、コンポジターです。 またはコンポジットウィンドウマネージャー 、これは、ウィンドウごとにオフスクリーンバッファをアプリケーションに提供するウィンドウマネージャです。ウィンドウマネージャは、ウィンドウバッファを画面を表す画像に合成し、その結果を表示メモリに書き込みます。コンポジットウィンドウマネージャーは、バッファーされたウィンドウで追加の処理を実行し、ブレンド、フェード、スケーリング、回転、複製、曲げとゆがみ、シャッフル、ぼかし、アプリケーションのリダイレクト、ウィンドウの多数のディスプレイの1つへの変換などの2Dおよび3Dアニメーション効果を適用できます。および仮想デスクトップ。コンピューターグラフィックステクノロジーにより、ドロップシャドウ、ライブプレビュー、複雑なアニメーションなどの視覚効果をリアルタイムでレンダリングできます。画面はダブルバッファリングされているため、更新中にちらつきません。最も一般的に使用されるコンポジットウィンドウマネージャーには、Linux、BSD、Hurd、OpenSolaris-Compiz、KWin、Xfwm、Enlightenment、Mutterなどがあります。それぞれに独自の実装があります。たとえば、KDEのKWinのコンポジター アニメーション速度、ティアリング防止(vsync)、ウィンドウサムネイル、スケーリング方法などの多くの機能/設定があり、 OpenGLv2/OpenGLv3またはXRenderを使用できます。 レンダリングバックエンドとして Xorgと一緒に。 (XRender / Renderは、XRandR / RandRと混同しないでください。)

OpenGL(Open Graphics Library) は、2Dおよび3Dベクターグラフィックスをレンダリングするためのクロス言語、クロスプラットフォームのアプリケーションプログラミングインターフェイス(API)です。 APIは通常、グラフィックスプロセッシングユニット(GPU)と対話して、ハードウェアアクセラレーションによるレンダリングを実現するために使用されます。 OpenGLは、Xorg、Wayland、またはそれを実装する任意のアプリケーションで使用できるレンダリングライブラリです。 OpenGLのインストールは、glxinfo | grep OpenGL

ディスプレイの解像度 または、コンピューターモニターまたはディスプレイデバイスの表示モードは、表示できる各次元の個別のピクセルの数です。通常、幅×高さとして引用され、単位はピクセル単位です。たとえば、1024×768は、幅が1024ピクセル、高さが768ピクセルであることを意味します。 xrandr 新しいディスプレイ解像度を追加またはレンダリング/シミュレートするために使用できます。

DPI 1インチあたりのドット数を表し、空間印刷/表示の尺度 、特に1インチ(2.54 cm)の範囲内で一列に配置できる個々のドットの数。コンピューターの画面にはドットはありませんが、ピクセルはあります。密接に関連する概念は1インチあたりのピクセル数またはPPIであるため、DPIはPPIの概念で実装されます。デフォルトの96 DPI測定値は、垂直方向および水平方向に96×96を意味します。さらに、X DPI(dot per inch)設定は、テキストのスケーリングのみを目的としていますか? QAは非常に有益です。

関連:ダクトテープがケーブルでうまく機能しないのはなぜですか?

メモ

いくつかのKDEのGUIツール: systemsettings5>表示、kcmshell5 xserver およびkinfocenter

参照

リンクとソース: 1、2、3、4、5、6、7、8、9、10、11、12。


Linux
  1. Linux –負荷平均は最新のCPUでどのように機能しますか?

  2. Ssh – Tcp-keepaliveはSshでどのように機能しますか?

  3. これが Linux サーバーの動作方法です

  1. 仮想化 Linux サーバーのインストール方法

  2. ngrok はファイアウォールの背後でどのように機能しますか?

  3. Linux でスタック割り当てはどのように機能しますか?

  1. Webサーバーとは何ですか?Webサーバーはどのように機能しますか?

  2. LinuxでSFTPクライアントを操作する方法–10sftpコマンド

  3. 「ls」コマンドは Linux/Unix でどのように機能しますか?