犬でも分かるLinux GUI(1): えっ、X Window Systemじゃないの?

LinuxでGUIを使うとしたら、X(X Window System)だよね、と思っていたのだけれど、最近ではどうも違うらしい。Waylandにいつの間にか変わったらしい。。良い機会なので調べてみました。

そもそも X Window Systemとは..

Linuxの前のUNIXの時代から、UNIX系OSのGUIはX Window Systemが主流でした。X Window Systemの正式名称は、「X」または「X Window System」であって、X Windowという呼び方は間違いなんだよ、ということを聞いたことがあります。「X11」という呼び方でもOKなのだそうです。

でも、今や「X」と言ったら、旧称ツイッターのSNSの方を思い浮かべる人のほうが多いでしょう。そのくらいX Window Systemは影が薄くなっちゃった感じです。
理由の一つは、RHELやRockyをGUIで使用すると、GNOMEというデスクトップ環境が起動しているので、ユーザはGNOMEという名前は意識するけど、その裏で動いているX Window Systemは意識していないからでしょう。

X(以降はX Window SystemをXと記載します)は大まかに言うと、Xサーバ、Xクライアント、Xプロトコルで構成されるクライアント・サーバ形式のGUIシステムです。面白いことに、Xではユーザの手元で動作するのがXサーバで、リモートホストで動作させるのがXクライアントとなっています。常識的なクライアント-サーバの接続イメージとは逆なのです。ユーザが端末としてPCを使用しているのであれば、そのPCにXサーバソフトをインストールすることで、リモートホストで実行したXのクライアントアプリが、手元のXサーバソフトに表示できるようになります。

GNOMEもXクライアントに分類されますが、デスクトップ画面の表示、ユーザのログイン制御、メニューの表示というようなデスクトップ環境を提供する特殊なクライアントです。ユーザは、GNOMEが提供するメニューを通じて、様々なXクライアントアプリを起動することができます。

Xの歴史

Xの最初のバージョン、すなわちX1がリリースされたのが1984年、その後バージョンアップが進み、最後のバージョンX11がリリースされたのが1987年だそうです。その後はリリースアップだけが進んで、最後のリリースとなるX11R7.7は2012年に出ました。

Xを最初に開発したのは、マサチューセッツ工科大学(MIT)で、その後、Xコンソーシアムが立ち上がります。更にその後に、The Open Group、X.Org Foundationに管理を引き継ぐことになります。
X.Orgはこの組織のことだったんですね。
また、現在では、Xサーバのことを、X.Org Server または Xorg とも呼ぶようです。へえ~。

いつのまにかWaylandに移行していた..

さて、RHEL系Linnuxの標準のデスクトップ環境はGNOMEですが、RHEL7/CentOS7まではGNOMEはX11(Xorg)で動作していました。しかし、RHEL8/Rocky8からは、デフォルトのGUIサーバはX11(Xorg)からWaylandに変わり、GNOMEもWaylandを使用するのがデフォルトになりました。

Waylandは、ディスプレイサーバとクライアント間の通信方式を記述した通信プロトコル、及びそのプロトコルを実装したライブラリなのだそうです。 すなわち、Xではありません。

どういうことかと言うと、XのクライアントアプリのひとつだったGNOMEが、X11(Xorg)じゃなくてWaylandに移行したということのようです。調べてみると、RHELのGUIサーバとデスクトップは以下のように遷移していった模様。

OSバージョンGUIサーバデスクトップ
RHEL7/CentOS7標準はX11(Xorg)。Waylandは利用可能だが標準ではなかった。GNOME3.8→3.28。X11(Xorg)で動作。
RHEL8/Rocky8Waylandが標準。X11(Xorg)も引き続きサポート。GNOME3.28。標準ではWaylandで動作。ログイン画面で、GNOME Standard (wayland)とGNOME Classic (X11)を選択可能。
RHEL9/Rocky9Waylandが標準。X11(Xorg)はレガシーサポート扱い。GNOME40→43.4。標準ではWaylandで動作。ログイン画面で、GNOME on WaylandとGNOME on X11を選択可能。
RHEL10/Rocky10
Waylandが標準。Xorgサーバが削除された。WaylandがXorgサーバを置き換えており、Xのクライアントアプリは、Xwayland経由で動作可能。
GNOME47。Waylandのみ。Xwaylandを使用して、XのクライアントアプリをGNOME Waylandセッション内で利用可能。

RHEL10/Rocky10では、X11からWaylandに完全移行したということです。ユーザが気がつかないうちに下克上されてんじゃん、X11(泣)。そして、GNOMEもWaylandに寝返った。。。

Waylandのほうが、負荷が軽い、描画の遅延が少ない、セキュリティも強い、というのが理由のようです。

さて、Xのレガシーアプリの対応のために、Xwaylandというソフトウェアが提供されています。Xwaylandは、Waylandクライアントとして動作するXサーバなのだそうです。すなわち、

Xのクライアントアプリ → Xwayland(Xサーバの代わり) → Wayland(GUIサーバ)

という連携で動作するということですね。
Xwaylandは、RHEL8/Rocky8から完全にサポートされており、WaylandセッションでXのクライアントアプリを実行するために使用されています(xorg-x11-server-Xwaylandパッケージが必要)。

まとめ

RHEL7/CentOS7以前から、GUI環境を使用しているユーザは、X Window Systemを使っているという気になっていたけれど、RHEL8/Rocky8以降では、実はX Window Systemではなく、Waylandを使っていたということです。これからLinuxでGUIを使うときは「Waylandを使っている」と言いましょう(笑)。まあ、デスクトップを指して「GNOMEを使っている」と表現するほうが良いのかもしれませんけどね。

広告主へのリンク

おウチでLinuxをやるなら、ミニPCがコスパ良いでーす。私はこの3台を使っています。

このブログにおける関連リンク

犬でも分かるLinux GUIシリーズ

コメント

タイトルとURLをコピーしました