12-LPIC「level1」

LPIC|level 1【GUI】

目標

  • ウィンドウシステム(Window System) について理解する
  • X11(X.Org)について理解する
  • Wayland について理解する

UbuntuのGUI(グラフィカルユーザーインターフェース)ではデフォルトのWindow Systemとして長らくX11が利用されてきました。ただし、現在はWaylandに変わっています。

ウィンドウシステム(Window System)

ウィンドウシステムとは、ディスプレイ上で複数のアプリケーションをウィンドウ(枠)で表示し、マウスやキーボードによる入力をそれぞれに適切に割り当てる仕組みです。この仕組みは、OSとアプリケーションの間に位置し、「画面描画」や「入力の制御」を担っています。

主な機能は次の通りです。

  • ウィンドウの管理 … 各アプリを別ウィンドウに分け、位置・サイズを制御
  • グラフィックス描画 … ボタンやテキスト、画像などの描画処理
  • 入力の配信 … マウスやキーボードの入力を正しいアプリへ渡す
  • マルチタスク制御 … 複数アプリを同時に操作可能にするための調整
  • ネットワーク越しの描画 … 離れたコンピュータでGUIを操作可能(例:X11)

ウィンドウシステムの構成要素には次のものがあります。

  • ディスプレイサーバ … ハードウェアとアプリの間をつなぐ中核プログラム
  • ウィンドウマネージャ … ウィンドウの枠やタイトルバー、装飾の管理
  • ツールキット(GTK, Qtなど)… GUIアプリ開発用ライブラリ(ボタンや入力欄など)
  • GUIアプリ … ユーザーが操作するアプリケーション

代表的なWindow System

名前特徴使用例
X11(X Window System)歴史が長く、ネットワーク越しのGUI表示が可能Linux、UNIX系(古いGNOME/KDEなど)
WaylandX11の後継。より軽量・セキュア新しいLinuxディストリビューション(Ubuntu 22.04以降など)
Quartz(macOS)macOS専用。洗練されたグラフィックエンジンmacOSのGUI環境全体
Windows GDI / DWMWindowsのウィンドウ描画基盤Windows 10/11

X11からWaylandへの変遷

Ubuntuではバージョン16以前ではGUIの中核技術として「X11」が利用されてきました。ただし、その後はWaylandへと移行しています。

バージョンデフォルトのディスプレイサーバ備考
Ubuntu 16.04以前X11(X.Org)長年の標準
Ubuntu 17.10〜Wayland(新技術)GNOMEとともにWayland採用。ただし切替可能
Ubuntu 22.04 LTS以降WaylandがデフォルトX11も選択可能(ログイン画面で切替)

X11とWaylandの違い

項目X11Wayland
開発時期1980年代2010年代
アーキテクチャ古い、複雑、拡張が困難シンプル、安全、高速
リモート表示強力(ssh -X など)PipeWire や RDP などのソフトで対応
互換性既存アプリは完全対応一部アプリに問題が出る場合もあり
Ubuntuでのサポート依然として利用可能現在は標準(GNOME Waylandセッション)

Ubuntuで利用中のウィンドウシステム(Window System)を調べるには次のコマンドを利用します。

echo $XDG_SESSION_TYPE

出力が「x11」であれば、「X11(X.Org)」を、「wayland」であれば、「Wayland」を使用中です。

Window Systemはログイン時に設定から切り替えることも可能です。

Xサーバ・Xクライアント

X Window System(X11)は、GUIを表示するためのクライアント/サーバモデルを採用しています。ただし、このモデルでは一般的な「クライアント=ユーザー、サーバ=サービス提供側」の概念とは逆になるため注意が必要です。

区分内容
Xサーバ(X Server)ディスプレイ、キーボード、マウスなどの入出力デバイスを管理するソフトウェア。
ユーザーの画面側(=表示側)で動作。
Xクライアント(X Client)実際のアプリケーション本体。GUIの描画命令を出す側(=動作側)。
別のPCやローカルで動作可能。

/etc/X11/xorg.confファイル

/etc/X11/xorg.conf は、LinuxなどのUnix系システムにおいて、X Window System(X11) の設定ファイルです。このファイルを使って、Xサーバーの動作に関するさまざまなパラメータ(ディスプレイ、グラフィックカード、マウス、キーボードなど)を手動で構成することができます。

xorg.conf は、以下を制御するための設定を行います。

  • グラフィックデバイス(Device)
  • モニタ(Monitor)
  • 画面(Screen)
  • 入力デバイス(InputDevice)
  • キーボードレイアウトやマウスの動作
  • ディスプレイの解像度やリフレッシュレート

現代のLinuxディストリビューション(Ubuntu、Fedora、Archなど)では、Xサーバー(Xorg)はハードウェアを自動検出し、最適な設定を動的に行うようになっています。そのため、通常は xorg.conf ファイルがなくても X は問題なく起動・動作します。現在、xorg.conf ファイルは次の特殊なケースで利用されます。

ケース目的・例
特定のGPUドライバ利用NVIDIAのプロプライエタリドライバ(nvidia)で細かく設定したいとき
複数モニタの手動制御自動設定ではうまく行かないデュアルディスプレイ環境
入力デバイスの詳細設定キーボードレイアウトやマウス感度を手動調整
高度な設定仮想ディスプレイ、カスタム解像度、VSync制御など

xorg.confファイルの場所

ファイルの場所は次のディレクトリ内にあります。

/etc/X11/xorg.conf

現在のXサーバーでは、自動設定が主流であり、xorg.confファイルは存在しない場合が多いです。ただし、特別な設定が必要なときには作成して使用することができます。

基本的な構成例

以下は基本的な構成です。

Section "Device"
    Identifier "Intel Graphics"
    Driver     "intel"
EndSection

Section "Monitor"
    Identifier "Monitor0"
    HorizSync  30-83
    VertRefresh 56-75
EndSection

Section "Screen"
    Identifier "Screen0"
    Device     "Intel Graphics"
    Monitor    "Monitor0"
    DefaultDepth 24
    SubSection "Display"
        Depth     24
        Modes     "1920x1080" "1280x1024"
    EndSubSection
EndSection
セクション名説明
ServerLayoutどの入力装置や画面設定を使うかをまとめて指定する「全体構成」
Filesフォントや色の情報など、Xサーバーが使う「ファイルやパスの場所」を指定する
ModuleXサーバーが起動時に読み込む「追加機能(モジュール)」を指定する
InputDeviceキーボードやマウスなど「入力機器」の設定(古い形式、最近は InputClass に分割される)
Monitorモニタの「名前、解像度範囲、リフレッシュレート」などの設定
Device使用する「GPU(グラフィックカード)」やそのドライバの指定
Screen使用する「モニタとGPUの組み合わせ」「色数(ビット数)」や「解像度」を指定する

作成・編集方法

xorg.confが存在するかを確認して、存在しない場合は「自動作成」か「手動作成」かを選びます。

ファイルの存在を確認します。

ls /etc/X11/xorg.conf


自動作成:nvidia-xconfigコマンドを利用(例:NVIDIAの設定ツールを使う場合)

sudo nvidia-xconfig

nvidia-xconfigコマンド の役割

  1. /etc/X11/xorg.conf ファイルの自動生成・更新
    • NVIDIAドライバ用の設定を含む xorg.conf を新規作成、もしくは既存のファイルをバックアップして更新します。
    • 特に Device セクションに NVIDIAドライバ(nvidia)を指定した設定を追加します。
  2. NVIDIAドライバに必要なオプションの追加
    • NVIDIA GPUを正しく動作させるためのオプション(例: ドライバ名、バスID、オプションフラグなど)を記述します。
    • 例えば Option “NoLogo” “true” や Option “Coolbits” “4” などの設定を追加できます。
  3. モニタやスクリーンの基本設定
    • 画面設定(Screenセクション)やモニタ設定(Monitorセクション)のテンプレートも作成します。(詳細なモニタの解像度などは自動設定に任せることが多いです。)

手動作成:sudo nano /etc/X11/xorg.conf(vimやnanoエディタを利用して作成・編集)

sudo nano /etc/X11/xorg.conf
  • 誤った設定はXが起動しなくなる原因になります。編集前にバックアップを取ることをお勧めします。
  • Xサーバーが起動しない場合(GUIが使えない場合)、Ctrl+Alt+F3~F6などで仮想端末に切り替えて(CUIに切り替えて)、設定を修正する必要があります。

バックアップ方法

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

今回は以上になります。

「Linux」おすすめ書籍6選【初心者・脱初心者用】| 現役エンジニア&プログラミングスクール講師「Linux」初心者の方がLinuxの操作や仕組みを理解するためのお勧めの書籍について取り上げています。また中級者として更に進んだ学習ができる書籍についても1冊取り上げています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST