目標
- ウィンドウシステム(Window System) について理解する
- X11(X.Org)について理解する
- Wayland について理解する
ウィンドウシステム(Window System)
ウィンドウシステムとは、ディスプレイ上で複数のアプリケーションをウィンドウ(枠)で表示し、マウスやキーボードによる入力をそれぞれに適切に割り当てる仕組みです。この仕組みは、OSとアプリケーションの間に位置し、「画面描画」や「入力の制御」を担っています。
主な機能は次の通りです。
- ウィンドウの管理 … 各アプリを別ウィンドウに分け、位置・サイズを制御
- グラフィックス描画 … ボタンやテキスト、画像などの描画処理
- 入力の配信 … マウスやキーボードの入力を正しいアプリへ渡す
- マルチタスク制御 … 複数アプリを同時に操作可能にするための調整
- ネットワーク越しの描画 … 離れたコンピュータでGUIを操作可能(例:X11)
ウィンドウシステムの構成要素には次のものがあります。
- ディスプレイサーバ … ハードウェアとアプリの間をつなぐ中核プログラム
- ウィンドウマネージャ … ウィンドウの枠やタイトルバー、装飾の管理
- ツールキット(GTK, Qtなど)… GUIアプリ開発用ライブラリ(ボタンや入力欄など)
- GUIアプリ … ユーザーが操作するアプリケーション
代表的なWindow System
名前 | 特徴 | 使用例 |
---|---|---|
X11(X Window System) | 歴史が長く、ネットワーク越しのGUI表示が可能 | Linux、UNIX系(古いGNOME/KDEなど) |
Wayland | X11の後継。より軽量・セキュア | 新しいLinuxディストリビューション(Ubuntu 22.04以降など) |
Quartz(macOS) | macOS専用。洗練されたグラフィックエンジン | macOSのGUI環境全体 |
Windows GDI / DWM | Windowsのウィンドウ描画基盤 | 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の違い
項目 | X11 | Wayland |
---|---|---|
開発時期 | 1980年代 | 2010年代 |
アーキテクチャ | 古い、複雑、拡張が困難 | シンプル、安全、高速 |
リモート表示 | 強力(ssh -X など) | PipeWire や RDP などのソフトで対応 |
互換性 | 既存アプリは完全対応 | 一部アプリに問題が出る場合もあり |
Ubuntuでのサポート | 依然として利用可能 | 現在は標準(GNOME Waylandセッション) |
Ubuntuで利用中のウィンドウシステム(Window System)を調べるには次のコマンドを利用します。
echo $XDG_SESSION_TYPE
出力が「x11」であれば、「X11(X.Org)」を、「wayland」であれば、「Wayland」を使用中です。
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)
- キーボードレイアウトやマウスの動作
- ディスプレイの解像度やリフレッシュレート
xorg.confファイルの場所
ファイルの場所は次のディレクトリ内にあります。
/etc/X11/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サーバーが使う「ファイルやパスの場所」を指定する |
Module | Xサーバーが起動時に読み込む「追加機能(モジュール)」を指定する |
InputDevice | キーボードやマウスなど「入力機器」の設定(古い形式、最近は InputClass に分割される) |
Monitor | モニタの「名前、解像度範囲、リフレッシュレート」などの設定 |
Device | 使用する「GPU(グラフィックカード)」やそのドライバの指定 |
Screen | 使用する「モニタとGPUの組み合わせ」「色数(ビット数)」や「解像度」を指定する |
作成・編集方法
xorg.confが存在するかを確認して、存在しない場合は「自動作成」か「手動作成」かを選びます。
ファイルの存在を確認します。
ls /etc/X11/xorg.conf
自動作成:nvidia-xconfigコマンドを利用(例:NVIDIAの設定ツールを使う場合)
sudo nvidia-xconfig
nvidia-xconfigコマンド の役割
- /etc/X11/xorg.conf ファイルの自動生成・更新
- NVIDIAドライバ用の設定を含む xorg.conf を新規作成、もしくは既存のファイルをバックアップして更新します。
- 特に Device セクションに NVIDIAドライバ(nvidia)を指定した設定を追加します。
- NVIDIAドライバに必要なオプションの追加
- NVIDIA GPUを正しく動作させるためのオプション(例: ドライバ名、バスID、オプションフラグなど)を記述します。
- 例えば Option “NoLogo” “true” や Option “Coolbits” “4” などの設定を追加できます。
- モニタやスクリーンの基本設定
- 画面設定(Screenセクション)やモニタ設定(Monitorセクション)のテンプレートも作成します。(詳細なモニタの解像度などは自動設定に任せることが多いです。)
手動作成:sudo nano /etc/X11/xorg.conf(vimやnanoエディタを利用して作成・編集)
sudo nano /etc/X11/xorg.conf
バックアップ方法
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
今回は以上になります。

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

