| Xウィンドウシステム | |
|---|---|
twm、デフォルトの X11ウィンドウ マネージャー | |
| 原作者 | アテナ計画 |
| 開発者 | X.Org財団 |
| 初回リリース | 1984年6月19日[ 1 ] (1984年6月19日) |
| 安定版リリース | |
| リポジトリ | |
| オペレーティング·システム | Unix、Unixライク、MVS OpenVMS、DOS |
| プラットフォーム | クロスプラットフォーム |
| 前任者 | W ウィンドウシステム |
| タイプ | ウィンドウシステム |
| ライセンス | MITライセンス |
| Webサイト | x |
Xウィンドウ システム( X11、または単にX ) は、 Unix 系オペレーティング システムでよく使用されるビットマップディスプレイ用のウィンドウ システムです。
Xは1984年にマサチューセッツ工科大学(MIT)のプロジェクトAthenaの一環として誕生しました。[ 4 ] Xプロトコルは1987年9月からバージョン11(したがって「X11」)となっています。X.Org FoundationがXプロジェクトを主導しており、現在のリファレンス実装であるX.Org ServerはMITライセンスおよび同様の許容ライセンスの下で無料のオープンソースソフトウェアとして利用可能です。
Xは、アーキテクチャに依存しないリモートグラフィカルユーザーインターフェースと入力デバイス機能を備えたシステムです。ネットワーク端末を使用する各ユーザーは、あらゆる種類のユーザー入力デバイスを使ってディスプレイと対話することができます。
標準ディストリビューションでは、シンプルながらも完全なディスプレイおよびインターフェイス ソリューションが提供されており、ほとんどのUnix 系オペレーティング システムおよびOpenVMS上でグラフィカル ユーザー インターフェイスを構築するための標準ツールキットとプロトコル スタックが提供され、他の多くの現代の汎用オペレーティング システムに移植されています。
Xは、このようなGUI環境を構築するための基本的なフレームワーク、つまりプリミティブを提供します。ディスプレイ上にウィンドウを描画・移動し、マウス、キーボード、タッチスクリーンと対話する機能です。Xはユーザーインターフェースを必須とせず、個々のクライアントプログラムがこれを処理します。プログラムはユーザーインターフェースなしでXのグラフィカル機能を使用することもできます。そのため、Xベースの環境の視覚的なスタイルは大きく異なり、プログラムによってインターフェースが根本的に異なる場合があります。
以前のほとんどのディスプレイ プロトコルとは異なり、X は、一体型または接続されたディスプレイ デバイス上ではなく、ネットワーク接続経由で使用するように特別に設計されました。X はネットワーク透過性を備えています。つまり、ネットワーク (インターネットなど) 上のどこかにあるコンピュータで実行されている X プログラムは、ネットワーク上の別のコンピュータで実行されている X サーバ上にそのユーザー インターフェイスを表示できます。X サーバは通常、Xクライアントにグラフィック リソースとキーボード/マウス イベントを提供します。つまり、X サーバは通常、人間のユーザーの目の前にあるコンピュータ上で実行され、X クライアント アプリケーションはネットワーク上の任意の場所で実行され、ユーザーのコンピュータと通信してグラフィック コンテンツのレンダリングを要求し、キーボードやマウスなどの入力デバイスからイベントを受け取ります。
ユーザーの目の前にあるソフトウェアに「サーバー」という用語が適用されるという事実は、自分のプログラムがリモートコンピュータ上のサービスのクライアントであることに慣れているユーザーにとって、しばしば驚きとなるでしょう。ここでは、リモートデータベースがローカルアプリケーションのリソースとなるのではなく、ユーザーのグラフィックディスプレイと入力デバイスが、ローカルXサーバーによってローカルおよびリモートでホストされているXクライアントプログラムの両方に提供されるリソースとなります。これらのクライアントプログラムは、ユーザーと通信するためにユーザーのグラフィックデバイスと入力デバイスを共有する必要があります。
Xのネットワークプロトコルは、Xコマンドプリミティブに基づいています。このアプローチにより、別のコンピュータで実行されているXクライアントアプリケーションによる2D操作と(GLXなどの拡張機能を介して)3D操作の両方が、Xサーバーのディスプレイ上で完全に高速化されます。例えば、従来のOpenGL(バージョン3.0以前)では、多数のオブジェクトを含むディスプレイリストをリモートXクライアントプログラムによって作成し、Xサーバー内に完全に保存し、ネットワーク経由で単一のglCallList(which)を送信することで各オブジェクトをレンダリングできました。
X はオーディオのネイティブ サポートを提供していません。このニッチを埋めるためのプロジェクトがいくつか存在し、その中には透過的なネットワークサポートも提供するものがあります。

Xはクライアント・サーバーモデルを採用しており、Xサーバーは様々なクライアントプログラムと通信します。[ 5 ]サーバーはグラフィカル出力(ウィンドウ)の要求を受け付け、ユーザー入力(キーボード、マウス、タッチスクリーンなど)を返します。サーバーは以下のような機能を持ちます。
このクライアント・サーバー用語(ユーザーの端末がサーバー、アプリケーションがクライアント)は、用語が逆になっているように見えるため、Xを初めて使うユーザーを混乱させることがよくあります。しかし、Xはエンドユーザーではなくアプリケーションの視点で動作します。Xはアプリケーションに表示および入出力サービスを提供するためサーバーであり、アプリケーションはこれらのサービスを利用するためクライアントです。
サーバーとクライアント間の通信プロトコルはネットワーク透過的に動作します。クライアントとサーバーは、同じマシン上で動作することも、異なるアーキテクチャやオペレーティングシステムを搭載した異なるマシン上で動作することもできます。クライアントとサーバーは、暗号化されたネットワークセッションを介して接続をトンネリングすることで、インターネット経由で安全に通信することもできます。
Xクライアント自身は、他のクライアントにディスプレイサービスを提供することでXサーバをエミュレートすることができます。これは「Xネスト」と呼ばれます。XnestやXephyrなどのオープンソースクライアントは、このようなXネストをサポートしています。[ 6 ]
X クライアント アプリケーションをリモート マシン上で実行するには、ユーザーは次の操作を実行できます。
ssh -Xリモートマシンに接続するリモート X クライアント アプリケーションは、ユーザーのローカル X サーバーに接続し、ユーザーに表示と入力を提供します。
あるいは、ローカル マシンで、リモート マシンに接続してクライアント アプリケーションを起動する小さなプログラムを実行することもできます。
リモート クライアントの実際の例は次のとおりです。
この節は、大部分または完全に単一の情報源に依存しています。関連する議論は ( 2024年5月) |


Xは主にプロトコルとグラフィックスの基本要素を定義しており、ボタン、メニュー、ウィンドウのタイトルバーのスタイルといったアプリケーションのユーザーインターフェース設計に関する仕様は意図的に含まれていません。[ 7 ]代わりに、ウィンドウマネージャ、GUIウィジェットツールキット、デスクトップ環境、あるいはアプリケーション固有のグラフィカルユーザーインターフェースといったアプリケーションソフトウェアが、そのような詳細を定義し、提供します。その結果、典型的なXインターフェースは存在せず、ユーザーの間では様々なデスクトップ環境が普及しています。
ウィンドウ マネージャーは、アプリケーション ウィンドウの配置と外観を制御します。これにより、デスクトップ インターフェースが Microsoft Windows や Apple Macintosh を彷彿とさせるもの (GNOME 2、KDE Plasma、Xfce など) になることもあれば、まったく異なるコントロール ( wmii や Ratpoison のようなタイル型ウィンドウ マネージャーなど) になることもあります。SugarやChromeOSなどの一部のインターフェースは、デスクトップのメタファーを完全に排除し、特定のアプリケーション向けにインターフェースを簡素化しています。ウィンドウ マネージャーの洗練度と複雑さは、必要最低限のもの (例: twm、X に付属する基本ウィンドウ マネージャー、または evilwm、非常に軽量なウィンドウ マネージャー) から、Enlightenment などのより包括的なデスクトップ環境、さらには POS などの垂直市場向けのアプリケーション固有のウィンドウ マネージャーまで多岐にわたります。
多くのユーザーは、ウィンドウマネージャに加えて、一貫したユーザーインターフェースを備えた様々なアプリケーションを含むデスクトップ環境でXを使用しています。一般的なデスクトップ環境としては、GNOME、KDE Plasma、Xfceなどがあります。UNIX 98の標準環境は、Common Desktop Environment(CDE)です。freedesktop.orgは、競争力のあるXデスクトップに必要なデスクトップとコンポーネント間の相互運用性を実現する取り組みを行っています。
X.Org実装はXの標準的な実装です。ライセンスが寛容なため、フリーソフトウェアやオープンソース、プロプライエタリソフトウェアなど、様々なバリエーションが登場しています。商用Unixベンダーは、リファレンス実装を自社のハードウェアに合わせてカスタマイズしたり、独自の拡張機能を追加したりする傾向があります。
2004年まで、XFree86はフリーUnix系システム上で最も一般的なXの亜種を提供していました。XFree86は386互換PCへのXの移植として始まり、1990年代末までにXにおける最大の技術革新の源となり、 X開発の事実上の標準となりました。しかし、2004年以降は、XFree86から派生したX.Org Serverが主流となっています。
XはUnixと関連付けられることが一般的ですが、Xサーバは他のグラフィカル環境にもネイティブに存在します。VMS Software Inc.のOpenVMSオペレーティングシステムには、DECwindowsとして知られるCommon Desktop Environment(CDE)を搭載したXのバージョンが標準デスクトップ環境として含まれています。Appleは当初、X11.appの形でXをmacOSに移植しましたが、XQuartz実装に置き換えられ、これは廃止されました。1990年代のAppleの旧オペレーティングシステム(System 7、 Mac OS 8、9) では、サードパーティ製のサーバとしてAppleのMacXやWhite Pine SoftwareのeXodusなどがありました。
Microsoft Windows には X のサポートが同梱されていませんが、 Cygwin/Xなどの無料のオープン ソース ソフトウェアや、 Exceed、MKS X/Server、Reflection X、X-Win32、 Xmingなどの独自製品として、サードパーティによる実装が多数存在します。
XサーバーのJava実装もあります。WeirdXはSwing 1.1をサポートするあらゆるプラットフォームで動作し、ほとんどのブラウザでアプレットとして動作します。Android Xサーバーは、Androidデバイスで動作するオープンソースのJava実装です。
さらに、ネイティブのウィンドウ システムを備えたオペレーティング システムが X をホストする場合、X システムは別のホスト ウィンドウで独自の通常のデスクトップを使用するか、ルートレスで実行することができます。ルートレスでは、X デスクトップは非表示になり、ホスト ウィンドウ環境がホスト画面内でホストされている X ウィンドウのジオメトリと外観を管理します。
X端末は、Xサーバのみを実行するシンクライアントです。このアーキテクチャは、多数のユーザーが同一の大規模コンピュータサーバを同時に利用し、各ユーザーのX端末のクライアントとしてアプリケーションプログラムを実行できる、安価な端末パークを構築するために広く利用されました。この用途は、MITプロジェクトの当初の意図と非常に一致しています。
X端末は、 Xディスプレイマネージャ制御プロトコルを使用してネットワーク(ローカルブロードキャストドメイン)を探索し、クライアントとして許可されている利用可能なホストのリストを生成します。クライアントホストの1つは、 Xディスプレイマネージャを実行している必要があります。
X端末やほとんどのシンクライアントの制限事項として、キーボード、マウス、ディスプレイ以外の入出力が利用できないことが挙げられます。関連するデータはすべてリモートサーバー上にのみ存在すると想定されており、X端末ユーザーはローカル周辺機器からデータを保存したり読み込みたりする手段がありません。
専用の(ハードウェア)X 端末は使用されなくなりましたが、 X サーバーを搭載したPCまたは最新のシンクライアントは、通常、同じ機能、またはそれ以下のコストで同じ機能を提供します。
Unix-Haters Handbook(1994年)では、Xの問題について1章が割かれています。 [ 8 ] Gajewska、Manasse、McCormackによるWhy X Is Not Our Ideal Window System(1990年)では、プロトコルの問題点が詳細に説明され、改善のための推奨事項が示されています。
Xの設計ガイドラインの欠如は、インターフェースが大きく異なる複数のアプリケーションを生み出し、アプリケーション同士が必ずしもうまく連携するとは限りませんでした。クライアントの相互運用性に関する仕様であるInter-Client Communication Conventions Manual (ICCCM) は、正しく実装するのが難しいという評判があります。MotifやCDEといった標準化の取り組みも、この問題を軽減することはありませんでした。これはユーザーとプログラマーのフラストレーションの原因となっています。[ 9 ]現在、グラフィックスプログラマーは、アプリケーションのルックアンドフィールと通信の一貫性を確保するために、特定のデスクトップ環境または特定のウィジェットツールキット向けにコーディングすることが一般的です。これにより、ICCCMを直接扱う必要がなくなります。
Xは、 NeWSのように、Xサーバー上でユーザー定義のストアドプロシージャをネイティブにサポートしていません。つまり、チューリング完全なスクリプト機能 がないのです。そのため、様々なデスクトップ環境が独自の(通常は互いに互換性のない)ストアドプロシージャを提供している場合があります。
X をベースに構築されたシステムには、右クリック、ダブルクリック、中クリック、マウスオーバー、フォーカスの奪取など、障害のあるユーザーにとってコンピュータの利用を困難にするアクセシビリティの問題が存在する場合があります。X11 クライアントの中には、他のクライアントよりもアクセシビリティの問題にうまく対処しているものがあり、アクセシビリティの問題を抱えるユーザーが X11 を使用できないという事態は発生しません。しかし、X11 にはアクセシビリティ標準やアクセシビリティガイドラインは存在しません。X11 標準化プロセスにはアクセシビリティに関するワーキンググループは存在しませんが、X 上でこれらの機能を提供するためのソフトウェアプロジェクトによってアクセシビリティのニーズへの対応が進められています。
Orcaプロジェクトは、X Window Systemにアクセシビリティサポートを追加し、API(AT-SPI [ 10 ] )の実装も行っています。これはGNOMEのATKと連携し、GNOME/GTK APIを使用してXプログラムにアクセシビリティ機能を実装することを可能にします。[ 11 ] KDEは、テキスト読み上げコンバータや画面拡大機能など、別のアクセシビリティソフトウェアを提供しています。[ 12 ]他の主要なデスクトップ(LXDE、Xfce、Enlightenment)はATKとの互換性を実現しようとしています。

Xクライアントは、そのコードが明示的に規定していない限り、通常、あるサーバーからデタッチして別のサーバーに再アタッチすることはできない(Emacsは、この機能を持つ数少ない一般的なプログラムの1つである)。そのため、セッション全体を1つのXサーバーから別のサーバーに移動することは、通常、不可能である。しかし、Virtual Network Computing(VNC)、NX、Xpraなどのアプローチでは、異なるXサーバーから仮想セッションに到達できる(端末に関するGNU Screenと同様の方法)、他のアプリケーションやツールキットは、関連する機能を提供している。 [ 13 ] x11vnc(VNC:0ビューア)、Xpraのシャドウモード、NXのnxagentシャドウモードなどの回避策も存在し、現在のXサーバーの画面を利用できる。この機能により、実行中のアプリケーションのユーザーインターフェース(マウス、キーボード、モニター)を、アプリケーションを停止して再起動することなく、ある場所から別の場所に切り替えることができる。
XサーバーとリモートXクライアント間のネットワークトラフィックは、デフォルトでは暗号化されていません。パケットスニファーを持つ攻撃者はこれを傍受し、ユーザーの画面に表示される内容や送信される内容をすべて閲覧することが可能です。Xトラフィックを暗号化する最も一般的な方法は、通信用にセキュアシェル(SSH)トンネルを確立することです。
すべてのシンクライアントと同様に、ネットワーク経由で X を使用する場合、帯域幅の制限により、3D アニメーションや写真編集など、画面の大部分を低遅延で高速更新する必要があるビットマップ集約型アプリケーションの使用が妨げられる可能性があります。比較的小さな非圧縮の640×480×24 ビット 30 fps ビデオ ストリーム (約 211 Mbit/s) でも、単一クライアントの 100 Mbit/s ネットワークの帯域幅を簡単に超えてしまいます。対照的に、X の最新バージョンでは、通常、Mesaなどの拡張機能があり、ローカル プログラムのグラフィックスのローカル表示を最適化してネットワーク モデルをバイパスし、ビデオ カードを直接制御して、フルスクリーン ビデオ、レンダリングされた 3D アプリケーション、およびその他の同様のアプリケーションで使用できます。
Xの設計では、クライアントとサーバーは別々に動作する必要がありますが、デバイスの独立性とクライアントとサーバーの分離によってオーバーヘッドが発生します。オーバーヘッドの大部分は、プロトコル自体ではなく、クライアントとサーバー間のネットワーク往復遅延時間(レイテンシ)に起因します。パフォーマンス問題に対する最善の解決策は、効率的なアプリケーション設計に依存します。[ 14 ] Xに対する一般的な批判は、そのネットワーク機能がローカルでのみ使用される場合、過度に複雑になり、パフォーマンスが低下するというものです。
現代のX実装では、同一ホスト内での効率的な接続のためにUnixドメインソケットが使用されています。さらに、共有メモリ(MIT-SHM拡張経由)を利用することで、クライアント・サーバー間通信を高速化できます。[ 15 ]しかし、プログラマは共有メモリ拡張を明示的に有効化して使用する必要があります。また、古い実装との互換性を維持し、ローカル以外のXサーバーと通信するために、フォールバックパスも用意する必要があります。
X の設計にはサンドボックスがないため、どのアプリケーションでもキーボード、マウス、ディスプレイ、クリップボードのコンテンツにアクセスして操作できます。
適切に構成されていないシステムではX11をルートとして実行し、権限昇格を許してしまう可能性があります。過去には、権限のないアプリが権限を取得するためにこれを悪用したことがありました。[ 16 ] [ 17 ]
Xの代替や置き換えを試みた人もいます。歴史的な代替としては、SunのNeWSとNeXTのDisplay PostScriptが挙げられます。どちらもPostScriptベースのシステムで、Xにはなかったユーザー定義可能なディスプレイ側プロシージャをサポートしています。現在の代替としては以下のものがあります。
グラフィカル サービスのネットワーク伝送を介して、X の「ネットワーク透過性」機能の機能形式を実現する追加の方法は次のとおりです。
Xに先駆けて、いくつかのビットマップ表示システムが登場しました。ゼロックスからはAlto (1973年)とStar(1981年)が登場しました。アポロコンピュータからはDisplay Manager (1981年)が登場しました。アップルからはLisa (1983年)とMacintosh(1984年)が登場しました。Unixの世界では、Andrew Project(1982年)とRob PikeのBlit端末(1982年)が登場しました。
カーネギーメロン大学は、Xerox Alto 上に重なり合うウィンドウを表示し、リモートホスト (通常は Unix を実行する DEC VAX システム) にウィンドウ表示イベントの処理と、必要に応じてウィンドウの内容を更新する役割を担わせる、Alto Terminal と呼ばれるリモート アクセス アプリケーションを開発しました。
Xは、1983年以前に登場したウィンドウシステム「W」 (英語のアルファベットでXの前にある文字)の後継としてその名が付けられました。WはVオペレーティングシステム上で動作しました。Wは端末とグラフィックウィンドウをサポートするネットワークプロトコルを使用し、サーバーがディスプレイリストを管理していました。
送信者: rws@mit-bold (Robert W. Scheifler) 宛先: window@athena件名: window system X 日付: 1984年6月19日09:07-EDT (火曜日) 私はここ数週間、ウィンドウを書いてきました VS100用のシステム。かなりの量のコードを盗んだ Wから、非同期ではなく 同期インターフェースよりも優れており、Xと名付けました。全体的に パフォーマンスはWの約2倍であるようです。 コードはこの時点ではかなりしっかりしているようだが、 まだ修正すべき欠陥がいくつかあります。 LCSではWの使用をやめ、現在は X上でアプリケーションを積極的に構築している。 真剣に乗り換えを検討すべきだ。これは 究極のウィンドウシステムですが、良いものだと信じています 実験の出発点。まさに今 XへのCLU(およびArgus)インターフェースがあり、C インターフェースは現在開発中です。既存の3つの アプリケーションはテキストエディタ(TED)、Argus I/O インターフェースと原始的なウィンドウマネージャーがあります。 まだ文書化されていない。 ボランティア?そのうちやるかもしれない。 デモをご覧になりたい方はぜひお立ち寄りください NE43-531、3-1945に電話することもできます まずはコードが欲しい人は、 テープ。欠陥をハッキングすることに興味のある人は、 お気軽にご連絡ください。

X の元々のアイデアは、1984 年に MIT でJim Gettys ( Project Athena ) とBob Scheifler ( MIT コンピュータ科学研究所) の共同作業として生まれました。Scheifler は、Argus システムのデバッグに使用可能な表示環境を必要としていました。Project Athena ( DEC、MIT、IBMの共同プロジェクトで、すべての学生が簡単にコンピューティング リソースにアクセスできるようにすることを目的としていました) では、異機種混在の複数ベンダー システムを連携するために、プラットフォームに依存しないグラフィック システムが必要でした。当時カーネギーメロン大学のAndrew プロジェクトで開発中だったウィンドウ システムはライセンスが提供されておらず、代替手段もありませんでした。
このプロジェクトは、ローカルアプリケーションの実行とリモートリソースの呼び出しの両方が可能なプロトコルを作成することでこの問題を解決しました。1983年半ば、WのUnixへの最初の移植版は、Vの5分の1の速度で動作しました。1984年5月、ScheiflerはWの同期プロトコルを非同期プロトコルに、ディスプレイリストをイミディエイトモードグラフィックスに置き換え、Xバージョン1を開発しました。Xは、真のハードウェア独立性とベンダー独立性を備えた最初のウィンドウシステム環境となりました。
シェイフラー、ゲティス、そしてロン・ニューマンは作業に着手し、Xは急速に発展しました。彼らは1985年1月にバージョン6をリリースしました。当時、最初のUltrixワークステーションのリリースを準備していたDECは、Xこそが間に合う唯一のウィンドウシステムであると判断しました。DECのエンジニアたちは、X6をDECのMicroVAX上のQVSSディスプレイに移植しました。
1985 年の第 2 四半期に、X はDEC VAXstation -II/GPX で機能するためにカラーサポートを獲得し、バージョン 9 となりました。
ブラウン大学のグループがバージョン 9 をIBM RT PCに移植したが、RT 上での非整列データの読み取りに関する問題により、互換性のないプロトコル変更を余儀なくされ、1985 年後半にバージョン 10 になった。X10R1 は 1985 年にリリースされた。[ 23 ] 1986 年までには、外部の組織が X を求めるようになった。X10R2 は 1986 年 1 月に、X10R3 は 1986 年 2 月にリリースされた。MIT は一部の外部グループに X6 を有料でライセンスしていたが、このとき、X10R3 およびそれ以降のバージョンをMIT ライセンスと呼ばれるようになるライセンスの下でライセンスすることに決定した。これは、X をさらに普及させ、見返りとして、より多くのアプリケーションが利用可能になることを期待したためである。X10R3 は広く普及した最初のバージョンとなり、DEC とHewlett-Packard の両社がそれをベースにした製品をリリースした。他のグループは X10 をApolloやSunワークステーション、さらには IBM PC/ATに移植した。 Xの最初の商用アプリケーション(Cognition社の機械工学支援エンジニアリングシステム。VAX上で動作し、ジム・フルトンとジャン・ハーデンバーグが移植したXサーバを搭載したPCにリモート表示される)のデモが、当時のAutofactトレードショーで行われました。X10の最終バージョンであるX10R4は1986年12月に登場しました。後に仮想ネットワークコンピューティング(VNC)がデスクトップ共有を可能にするのと同様に、Xサーバをリアルタイムコラボレーションデバイスとして活用する試みがなされました。そのような初期の取り組みの一つが、フィリップ・J・ガストのSharedXツールでした。
X10は興味深く強力な機能を提供していたものの、Xプロトコルが広く普及する前に、ハードウェアに依存しない再設計が必要であることは明らかでした。しかし、MITだけではそのような完全な再設計を行うためのリソースが不足していました。ところが、DECのウェスタンソフトウェア研究所は、経験豊富なチームとのプロジェクトが途切れた状況に陥っていました。DEC WSLのスモーキー・ウォレスとジム・ゲティスは、DEC WSLがX11を開発し、X9やX10と同じ条件で自由に利用できるようにすることを提案しました。このプロセスは1986年5月に開始され、プロトコルは8月に完成しました。ソフトウェアのアルファテストは1987年2月に開始され、ベータテストは5月に行われました。そして、X11は最終的に1987年9月15日にリリースされました。[ 24 ]
Scheiflerが主導したX11プロトコル設計は、初期のインターネット上の公開メーリングリストで広く議論され、USENETニュースグループにも繋がっていました。GettysはDECのシステム研究センターからカリフォルニアに移り、WSLにおけるX11開発を主導しました。DECのシステム研究センターでは、Phil KarltonとSusan AngebrandtがX11サンプルサーバーの設計と実装を主導していました。したがって、Xは初期の非常に大規模な分散型フリーオープンソースソフトウェアプロジェクトの一つと言えるでしょう。
1980年代後半には、Xは「Athenaのこれまでで最も重要な単一の成果」とシムソン・ガーフィンケルが1989年に記したように、Athenaにとって最も重要な成果となった。DECは、Xの開発だけでもMITへの寄付に見合う価値があると考えていたと伝えられている。ゲティスはVAXstation 2000の設計チームに加わり、DECがDECwindowsと名付けたXがVAXstation 2000上で動作することを保証した。また、DECは1,200人の従業員を派遣し、XをUltrixとVMSの両方に移植させた。[ 25 ] [ 26 ] 1990年までに、IBMとモトローラは独自のX端末を発表した。X端末と競合するディスクレスワークステーションを製造していたサン・マイクロシステムズのビル・ジョイは、Xには技術的な欠陥があり、ネットワークを圧倒する可能性があると主張した。[ 27 ]
1987年、X11の成功が明らかになったことで、MITはXの管理を放棄したいと考えました。しかし、1987年6月にベンダー9社との会議が開かれ、ベンダーはMITに対し、Xが市場で分裂するのを防ぐには中立的な立場の組織が必要だと訴えました。1988年1月、Scheiflerを理事として、商業的および教育的利益を考慮した中立的な立場でXの将来の開発を主導する非営利ベンダーグループとして、 MIT Xコンソーシアムが設立されました。
1988 年 1 月に Jim Fulton が、 1988 年 3 月にKeith Packard が上級開発者として参加し、Jim はXlib、フォント、ウィンドウ マネージャ、ユーティリティに注力し、Keith はサーバの再実装を担当しました。同年後半には Donna Converse、Chris D. Peterson、Stephen Gildea が参加し、MIT Project Athena の Ralph Swick と緊密に協力しながら、ツールキットとウィジェット セットに注力しました。MIT X コンソーシアムは X11 にいくつかの重要な改訂版を発行し、最初の改訂版 (リリース 2 - X11R2) は 1988 年 2 月に発行されました。1991 年 1 月には Jay Hersh がスタッフに加わり、PEXおよび X113D の機能に取り組みました。その後すぐに Ralph Mor (PEX にも取り組んだ) と Dave Sternlicht が続きました。 1993年、MIT XコンソーシアムがMITから離脱する準備をしていたとき、R・ゲイリー・カットビル、ケイレブ・キースリー、デビッド・ウィギンズがスタッフに加わった。[ 28 ]

1993年、MIT Xコンソーシアムの後継としてXコンソーシアム(非営利法人)が設立されました。Xコンソーシアムは1994年5月16日にX11R6をリリースしました。1995年にはMotifツールキットとUnixシステム向け共通デスクトップ環境( CDE)の開発を引き継ぎました。Xコンソーシアムは1996年末に解散し、最終版であるX11R6.3が発表されました。これにより、開発における商業的影響力は増大しました。[ 29 ] [ 30 ]
1997 年 1 月、 X コンソーシアムは、 X の管理を、 1996 年初頭にOpen Software FoundationとX/Openが合併して設立されたベンダー グループであるThe Open Groupに引き渡しました。
Open Groupは1998年初頭にX11R6.4をリリースした。X11R6.4は、Open GroupがX開発資金の確保を目指し、XFree86がXに大きく貢献していないと明確に指摘したことから、従来の自由なライセンス条項から逸脱し、物議を醸した。 [ 31 ]この新しい条項は、Xを非商用利用の場合は無償、それ以外の場合は有償とするため、もはやフリーソフトウェアではなくなる可能性があった。XFree86が分裂の兆しを見せた後、[ 32 ] Open Groupは1998年9月にX11R6.4を従来のライセンスの下で再ライセンスした。 [ 33 ] Open Groupの最後のリリースは、X11R6.4パッチ3となった。
XFree86は、1991年にX11R5に同梱されていたIBM PC互換機用のX386サーバから1992年に誕生しました。このサーバはトーマス・ロエルとマーク・W・スニティリーによって開発され、スニティリー・グラフィックス・コンサルティング・サービス(SGCS)からMIT Xコンソーシアムに寄贈されました。XFree86は、Xの移植版の一つから、X開発における主要かつ最も人気のある実装へと進化を遂げ、事実上の標準となりました。[ 34 ]
1999年5月、The Open GroupはX.Orgを設立した。X.OrgはX11R6.5.1以降のバージョンのリリースを監督した。当時、Xの開発は停滞しており、[ 35 ] Xコンソーシアムの解散以来、ほとんどの技術革新はXFree86プロジェクトで行われていた。[ 36 ] 1999年、XFree86チームは、 LinuxでXFree86を使用することに興味を持ち、Xの最も人気のあるバージョンとしての地位に 関心を持つさまざまなハードウェア企業[ 38 ]の後押しを受けて、X.Orgに名誉会員(無償)として参加した。[ 37 ]
2003年までにLinuxの人気(ひいてはXのインストールベース)が急上昇する一方で、X.Orgは活動を停止したままで[ 39 ]、活発な開発は主にXFree86内で行われました。しかし、XFree86内では相当な反対意見が生まれました。XFree86プロジェクトは、あまりにも大聖堂のような開発モデルという認識に悩まされていました。開発者はCVSコミットアクセスを得ることができず[ 40 ] [ 41 ] 、ベンダーは膨大なパッチセットを維持する必要がありました[ 42 ] 。 2003年3月、XFree86組織は、MIT Xコンソーシアムの解散後にXFree86に参加したキース・パッカード氏を、かなりの不快感を持って追放しました[ 43 ] [ 44 ] [ 45 ] 。
X.OrgとXFree86は、Xの開発を適切に育成するための適切な組織再編について議論を始めました。[ 46 ] [ 47 ] [ 48 ]ジム・ゲティスは、少なくとも2000年以来、オープン開発モデルを強く推進してきました。[ 49 ]ゲティス、パッカード、その他数名が、オープン開発によるXの効果的なガバナンスの要件について詳細に議論を始めました。
最後に、X11R6.4のライセンス論争を彷彿とさせる形で、XFree86は2004年2月にバージョン4.4をリリースしましたが、Xに依存する多くのプロジェクトはこれを受け入れられない、より制限の厳しいライセンスとしました。[ 50 ]ライセンスに追加された条項は、オリジナルのBSDライセンスの宣伝条項に基づいており、フリーソフトウェア財団とDebianは、この条項をGNU一般公衆利用許諾書と矛盾するものと見なしました。[ 51 ]他のグループは、これをオリジナルのXの精神に反するものと見なしました。例えば、 OpenBSDのTheo de Raadtは、ライセンス上の懸念を理由にXFree86をフォークすると脅しました。[ 52 ]ライセンスの問題と変更を加えることの難しさが相まって、多くの人がフォークの機が熟したと感じました。[ 53 ]
2004年初頭、X.Orgとfreedesktop.orgの複数のメンバーがX.Org Foundationを設立し、Open Groupはx.orgドメイン名の管理権を同財団に譲渡しました。これはXのガバナンスにおける根本的な変化でした。1988年以来(以前のX.Orgを含む)、Xの管理者はベンダー組織でしたが、Foundationはソフトウェア開発者が主導し、外部からの関与に依存するバザールモデルに基づくコミュニティ開発を採用しました。メンバーシップは個人にも開放され、企業メンバーシップはスポンサーシップの形で提供されます。現在、 Hewlett-Packardなどの大手企業がX.Org Foundationを支援しています。
財団はXの開発を監督する役割を担っており、技術的な決定はコミュニティメンバーの間で大まかな合意を得ることで、そのメリットに基づいて行われる。技術的な決定は取締役会によって行われない。この意味で、財団は技術的に非介入主義のGNOME財団を強くモデルとしている。財団は開発者を雇用していない。財団は2004年4月に、XFree86 4.4RC2をベースにX11R6.6の変更をマージしたX11R6.7、X.Org Serverをリリースした。ゲティス・アンド・パッカードは旧ライセンスのもとでXFree86の最終バージョンを採用し、オープン開発モデルを重視しGPLとの互換性を維持することで、かつてのXFree86開発者の多くを参加させた。[ 51 ]
X11は1990年代にOpenGLサポートなどの拡張機能を導入したものの、そのアーキテクチャは基本的に変更されていませんでした。しかし、2000年代初頭には、長年にわたり表面化していた多くの問題を解決するために全面的に改良されました。これらの問題には、「欠陥のある」フォントアーキテクチャ、「常に拡張または置き換えが想定されていた」2Dグラフィックシステム、レイテンシの問題などがありました。[ 54 ] X11R6.8は2004年9月にリリースされました。このバージョンでは、半透明ウィンドウやその他の高度な視覚効果、画面拡大鏡やサムネイル表示器の予備的サポート、SunのProject Looking GlassやCroquetプロジェクト などの3D没入型ディスプレイシステムとの統合機能など、重要な新機能が追加されました。コンポジットウィンドウマネージャと呼ばれる外部アプリケーションが、外観に関するポリシーを提供します。
2005年12月21日、[ 55 ] X.Orgは、レガシーユーザー向けのモノリシックソースツリーであるX11R6.9と、同じソースコードを独立したモジュールに分割し、それぞれを別々のプロジェクトで保守できるX11R7.0をリリースしました。[ 56 ] Foundationは、7.0から約4か月後の2006年5月22日に、大幅な機能改善を加えたX11R7.1をリリースしました。[ 57 ]
XFree86の開発はさらに数年間続けられ、2008年12月15日に4.8.0がリリースされました。[ 58 ]
システムの正式名称はマニュアルページにはX、X Window System、X Version 11、X Window System, Version 11、またはX11と記載されています。[ 59 ]
「X-Windows」(後にリリースされた「Microsoft Windows」のような)という用語は公式には承認されていない。Xコンソーシアムのリリースマネージャであるマット・ランドーは1993年に「業界誌で繰り返し誤用されているにもかかわらず、『X Windows』や『X Window』というものは存在しない」と述べている[ 60 ] 。しかし、この用語はXの歴史の初期から非公式に広く使用されており[ 61 ]、例えばUnix-Haters Handbookでは挑発的な効果を狙って意図的に使用されてきた。[ 8 ]
X Window System では、一般的な用法と比較して、多くの用語、特に「ディスプレイ」と「スクリーン」が微妙な意味合いで使用されています。便宜上、そのサブセットを次に示します。
「ディスプレイ」という用語は、より専門的な用語である「ザフォッドディスプレイ」と混同しないでください。ザフォッドディスプレイは、1台のコンピュータを複数のユーザーがそれぞれ独立したディスプレイ、マウス、キーボードのセットで使用できる、珍しい構成です。まるで別々のコンピュータを使用しているかのように、しかもユーザーあたりのコストは低くなります。
| バージョン | 発売日 | 最も重要な変更点 |
|---|---|---|
| サポート対象外:X1 | 1984年6月 | 「X」という名前が初めて使用され、製品がWと区別される根本的な変更が行われました。 |
| サポート対象外:X6 | 1985年1月 | 最初のバージョンは少数の外部企業にライセンス供与されました。 |
| サポート対象外:X9 | 1985年9月 | カラー。MITライセンスの下での最初のリリース。 |
| サポート対象外:X10 | 1985年11月 | IBM RT PC、AT ( DOS を実行)、その他。 |
| サポート対象外:X10R2 | 1986年1月 | |
| サポート対象外:X10R3 | 1986年2月 | 自由に再配布可能な最初のXリリース。以前のリリースでは、ログインをサポートするためにinit/gettyのコード変更をカバーするため、BSDソースライセンスが必要でした。uwmが標準ウィンドウマネージャーになりました。 |
| サポート対象外:X10R4 | 1986年12月 | X10 の最後のバージョン。 |
| サポート対象外:X11 | 1987年9月15日 | 現在のプロトコルの最初のリリース。 |
| サポート対象外:X11R2 | 1988年2月 | Xコンソーシアムの最初のリリース。[ 62 ] |
| サポート対象外:X11R3 | 1988年10月25日 | XDM。 |
| サポート対象外:X11R4 | 1989年12月22日 | XDMCP、twm (当初から Tom のウィンドウ マネージャーとして知られていました) が標準ウィンドウ マネージャーとして導入され、アプリケーションの改善、シェイプの拡張、新しいフォントが追加されました。 |
| サポート対象外:X11R5 | 1991年9月5日 | X386 1.2、PEX、Xcms (カラー管理)、フォント サーバー、X ビデオ拡張。 |
| サポート対象外:X11R6 | 1994年5月16日 | ICCCM v2.0、クライアント間交換、X セッション管理、X 同期拡張、X イメージ拡張、XTEST 拡張、X 入力、X ビッグ リクエスト、XC-MISC、XFree86 の変更。 |
| サポート対象外:X11R6.1 | 1996年3月14日 | X ダブル バッファ拡張、X キーボード拡張、X レコード拡張。 |
| サポート対象外:X11R6.2 X11R6.3 | 1996年12月23日 | ウェブ機能、LBX。Xコンソーシアムの最新リリース。X11R6.2はX11R6.3(Broadway)のサブセットのタグであり、R6.1からの新機能はXPrintと縦書きとユーザー定義文字のサポートのXlib実装のみである。[ 63 ] Broadwayは、ブラウザプラグインとLow Bandwidth Xを介してウェブブラウザ上でXアプリケーションを実行するためのコード名であった。[ 64 ] |
| サポート対象外:X11R6.4 | 1998年3月31日 | シネラマ[ 65 ] |
| サポート対象外:X11R6.5 | 2000 | X.org 内部リリース。一般には公開されません。 |
| サポート対象外:X11R6.5.1 | 2000年8月20日 | |
| サポート対象外:X11R6.6 | 2001年4月4日 | バグ修正、XFree86 の変更。 |
| サポート対象外:X11R6.7.0 | 2004年4月6日 | X.Org Foundationの最初のリリース。XFree86 4.4rc2を組み込んだ。完全なエンドユーザー向けディストリビューション。XIE、PEX、libxml2は削除された。[ 66 ] |
| サポート対象外:X11R6.8.0 | 2004年9月8日 | ウィンドウの半透明、XDamage、Distributed Multihead X、XFixes、Composite、XEvIE。 |
| サポート対象外:X11R6.8.1 | 2004年9月17日 | libxpmのセキュリティ修正。 |
| サポート対象外:X11R6.8.2 | 2005年2月10日 | バグ修正、ドライバーの更新。 |
| サポート対象外:X11R6.9 X11R7.0 | 2005年12月21日 | XServer 1.0.1、EXA、ソースコードの主要なリファクタリング。[ 67 ]同じソースコードベースから、モジュラー自動ツールバージョンは7.0になり、モノリシックimakeバージョンは6.9で凍結されました。 |
| サポート対象外:X11R7.1 | 2006年5月22日 | XServer 1.1.0、EXAの機能強化、KDriveの統合、AIGLX、OSおよびプラットフォームのサポート強化。[ 68 ] |
| サポート対象外:X11R7.2 | 2007年2月15日 | XServer 1.2.0、 LBXと内蔵キーボードドライバーの削除、X-ACE、 XCB、自動構成の改善、クリーンアップ。[ 69 ] |
| サポート対象外:X11R7.3 | 2007年9月6日 | XServer 1.4.0、入力ホットプラグ、出力ホットプラグ(RandR 1.2)、DTraceプローブ、PCIドメインサポート。[ 70 ] |
| サポート対象外:X11R7.4 | 2008年9月23日 | XServer 1.5.1、XACE、PCIの再構築、EXAの高速化、_X_EXPORT、GLX 1.4、起動とシャットダウンの高速化。[ 71 ] |
| サポート対象外:X11R7.5 | 2009年10月26日[ 72 ] | XServer 1.7.1、Xi 2、XGE、E- EDIDサポート、RandR 1.3、MPX、予測可能なポインタアクセラレーション、DRI2メモリマネージャ、SELinuxセキュリティモジュール、廃止されたライブラリと拡張機能のさらなる削除。[ 73 ] |
| サポート対象外:X11R7.6 | 2010年12月20日[ 74 ] | Xサーバー1.9.3、XCB要件。[ 75 ] [ 76 ] |
| 最新バージョン:X11R7.7 | 2012年6月6日 | X Server 1.12.2; Sync extension 3.1: Fenceオブジェクトのサポートを追加; Xi 2.2マルチタッチのサポート; XFixes 5.0: ポインタバリア。[ 77 ] [ 78 ] |
伝説: サポートされていません サポートされている 最新バージョン プレビュー版 将来のバージョン | ||
将来のバージョンの見通しについては、X.orgのウェブサイトで次のように述べられています。[ 79 ]
X.Org は、X Window System ソフトウェア コンポーネントの開発とリリースを継続します。
これらは、X Window System 全体の「katamari」リリース スケジュールを待たずに、各コンポーネントの準備が整うと個別にリリースされます。ダウンロードについては、個々の X.Org リリース ディレクトリを参照してください。含まれる変更の詳細については、xorg-announce アーカイブまたは git リポジトリを参照してください。
X11R7.8 ロールアップ katamari リリースのリリース計画は提案されていません。
の管理人は5、6年前は、ほとんど何も残っていませんでした。テクノロジーの進化に追いついていませんでした。