X Window System
テンプレート:Redirect テンプレート:Infobox
X Window System(エックスウィンドウシステム、別称:「X11」・「X」など→名称については後述)とは、ビットマップディスプレイ上でウィンドウシステムを提供する表示プロトコルである。リファレンス実装として X.Org Server があり、標準ツールキットとプロトコルを提供し、Unix系オペレーティングシステム(OS)やOpenVMSなどでのグラフィカルユーザインタフェース(GUI)を構築するのに使われる。他の多くの汎用OSにも移植されている。
目次
概要
X は1984年、マサチューセッツ工科大学で開発された。現在のバージョンである X11 は1987年9月に登場した。現在は X.Org Foundation が X プロジェクトを主導しており、リファレンス実装である version 11 release 7.3(2007年9月6日)はフリーソフトウェアとして MIT License および類似のライセンスで提供されている[1]。
X は、GUI環境構築のための基本フレームワークやプリミティブを提供する。ウィンドウを画面上に描画したり、移動させたり、マウスやキーボードを使ってやり取りするといったことである。X はユーザインタフェースを規定しない。それは、個々のクライアントプログラムの管理下にある。そのため、X に基づいた環境の見た目は様々であり、プログラムごとにインタフェースが異なる。X は OS の中核部分には含まれず、アプリケーション層構築の基盤となっている。
それ以前の表示プロトコルとは異なり、X は表示機器に付属した(あるいは統合された)システムではなく、ネットワークコネクションを通して使われることを意図して設計されている。X の特徴は、Xプロトコルという、画面表示や入出力時に利用されるプロトコルがネットワーク透過だということである。そのため、手元のマシンの表示と遠隔のマシンとの表示で表示方法に差がない。このことは、ネットワークを利用したUNIXワークステーション群でGUI表示を行なうのに便利であり、UNIXマシンの普及と共にXも普及していった。
アーキテクチャ
テンプレート:Main テンプレート:Main X はクライアントサーバモデルに基づき、Xサーバが各種「クライアント」プログラムと通信する。サーバはグラフィカルな出力要求を受け付け、(マウス、キーボード、タッチパネルなどからの)ユーザー入力をクライアントに送信する。Xプロトコル自身はハードウェア環境に依存しない。そのため、X Window System が動作するマシンはUNIXマシンだけとは限らない。Microsoft Windows上でXサーバを動作させる、通称PC Xサーバというソフトウェアや、ハードウェア(ファームウエア)でXプロトコルを処理する、通称X端末も存在する。特にX端末は、UNIXマシンが非常に高価な時代に、GUIだけを安価に表示、処理できる機器として良く利用された。
このクライアントサーバという用語(ユーザーの端末、サーバ、クライアントであるアプリケーション)は、しばしば新規のXユーザーを混乱させる。なぜなら用語が逆に使われているように見えるからである。しかしXはエンドユーザーではなく、むしろアプリケーションからみた考え方をしている。XはディスプレイやI/Oサービスをアプリケーションに提供している。そのためサーバである。アプリケーションはこれらのサービスを利用してる。そのためアプリケーションはクライアントである。
サーバとクライアント間の通信プロトコルは、ネットワーク透過性を備える。クライアントとサーバは同じマシン上でも動作するし、別々のマシン上でも動作する。双方のアーキテクチャやオペレーティングシステムが違っていても構わない。クライアントとサーバ間の通信は、インターネット上でもトンネリングによって安全に行うことができる。
Xクライアント自体がXサーバを内包し、複数のクライアントに対してサーバとして動作する構成も可能である。これを「Xネスティング」と呼ぶ。Xnest や Xephyr は、Xネスティングをサポートしたオープンソースのクライアントである。
リモートのクライアントプログラムをローカルなサーバで表示するには、端末エミュレータのウィンドウを開き、telnet あるいは ssh でリモートのクライアントアプリケーション(あるいはシェル)を起動し、入出力先をローカルに指定してクライアントを起動する(すなわち、export DISPLAY=[ユーザーのマシン]:0 をリモートのマシン上で設定する)。クライアントアプリケーションはローカルサーバと接続され、ローカルマシンのディスプレイと入力機器を使って動作する。またローカルマシンは、リモートマシンに接続しクライアントアプリケーションを起動する小さなプログラムを実行することもできる。
リモートクライアントの実用的な利用例として、次のようなものがある。
- リモートマシンの管理をグラフィカルに行う。
- リモートマシンで計算量の多いシミュレーションを実行し、ローカルなデスクトップマシンでその結果を表示する。
- 複数のマシンでグラフィカルなソフトウェアを同時に実行し、その表示を1つのマシンで行い、1人のユーザーが全体を操作する。
設計思想
1984年、Bob Scheifler と Jim Gettys は X の基本原則を以下のように定めた。
- 実際のアプリケーションでどうしても必要という場合以外は、新機能を追加するな。
- システムが何でないのかを定義することは、何であるのかを定義するのと同じように重要である。あらゆるニーズに答える必要はない。むしろ、互換性を維持した状態で拡張可能にしておけ。
- 1つでも例を挙げて一般化したほうが、全く例を挙げずに一般化するよりもマシである。
- 問題が完全に把握できないときは、解決策も提供しないのが最善の方法である。
- 10%の作業で望みの90%の効果が得られるときには、その解法を使え。
- 複雑さは可能な限り分離せよ。
- ポリシーよりも機構を提供せよ。特にユーザインタフェースのポリシーはクライアント側に任せておけ。
先頭の原則は、X11 の設計時に「具体的アプリケーションがそれを必要としていることを知っている場合に限って、新たな機能を追加せよ」に修正された。
X はだいたいにおいてこれらの原則に従ってきた。リファレンス実装は拡張性と改良を視野に入れて開発されており、1987年当時のプロトコルとほぼ完全な互換性を維持している。
ユーザインタフェース
X は意図的にアプリケーションのユーザインタフェースの仕様を含まないようにしている。ボタン、メニュー、ウィンドウのタイトルバーなどである。代わりに、ウィンドウマネージャ、GUI ウィジェット・ツールキット、デスクトップ環境、アプリケーション固有のグラフィカルユーザインタフェースなどがそのような詳細を定義し提供している。そのため、典型的な X のインタフェースを示すことは不可能である。
ウィンドウマネージャは、アプリケーションのウィンドウの位置と見た目を制御する。そのインタフェースは Microsoft Windows や Macintosh と似ているものもあるし(GNOME の Metacity、KDE の KWin、Xfce の Xfwm など)、全く異なるものもある。実用本位のウィンドウマネージャもあれば(twm など)、デスクトップ環境に近い機能を持つものもある(Enlightenment など)。
多くのユーザーはデスクトップ環境を通して X を利用している。デスクトップ環境にはウィンドウマネージャ、各種アプリケーションなどが一貫したインタフェースで含まれている。GNOME、KDE、Xfce などが主なデスクトップ環境である。freedesktop.org はデスクトップ環境間の相互運用性を高めることを目的としている。
Xサーバは、グラフィカルなデスクトップでのキーボードとマウス操作を管理している。そのため、一部のショートカットキーはXサーバと結び付けられている。Control-Alt-Backspace は通常、現在動作しているXセッションを終了させる。Control-Alt とファンクションキーの組合せは、一般にバーチャルコンソールに連携している。ただし、これは個々のXサーバの実装の詳細であり、常に同じとは限らない。例えば、Windows や Macintosh で動作するXサーバでは、そのようなショートカットキーは提供されない。
実装
X.Org Server は、リファレンス実装として X Windows System の正式な実装として扱われる。ソフトウェアライセンスが寛大であるため、フリーソフトウェアとしてもプロプライエタリ・ソフトウェアとしても様々な実装が存在する。商用UNIXベンダーはリファレンス実装を採用し、それを自身のハードウェアに合わせて修正し、独自の拡張を様々に凝らすことが多い。
2004年まで、XFree86 がフリーなUnix系システムでの X 実装の事実上の標準だった。XFree86 は X を Intel 80386搭載のPC上に移植することから始まり、1990年代末ごろには X のデファクトスタンダードの地位を得ていた[2]。しかし、2004年、X.Org Server が XFree86 から派生し、こちらが主流となっていった。
X と UNIX の組合せはよく知られているが、Xサーバは他のグラフィカル環境用にも存在している。
Microsoft Windows や OS X などの他のウィンドウシステム上でXサーバを動作させる場合、統合のさせ方がソフトウェアによって色々あり、X.Org Server では Microsoft Windows と OS X では以下の方式の最初の3つをサポートしている。Unix 系ではフルスクリーンだが、それ以外は Xnest によりサポートしている。
- シングルウィンドウ - X11 のルートウィンドウを OS のトップレベルウィンドウにマッピングする。
- マルチウィンドウ - X11 のトップレベルウィンドウを OS のトップレベルウィンドウにマッピングする。
- ルートレス(rootless)- 本来のウィンドウシステムが背景と基本メニューを提供し、X のウィンドウの位置を管理する。すなわち、Xのクライアントが表示するウィンドウが、手元のウィンドウシステムで表示されるアプリケーションが出すウィンドウと同じように表示される。X11 のウィンドウマネージャが利用される。
- フルスクリーン
OpenVMS
ヒューレット・パッカードの OpenVMS には X と DCE(DECwindows)が標準のデスクトップ環境として含まれている。
OS-9
OS-9にもかつてメーカー純正のXサーバがあった。
OS X
X.Org Server は Mac OS X での動作をサポートしており、X11.app (XQuartz) として公開されている。Mac OS X v10.5〜10.7では標準搭載されていた。
Mac OS X v10.3 では、XFree86 4.3 と X11R6.6 に基づいた X11.app が Mac OS X に統合されていた。10.5 以降は、XFree86 ではなく、X.Org Server になった。古い Mac OS 7 などにもサードパーティ製のXサーバがある。
Microsoft Windows
X.Org Server は Cygwin 併用の形で Microsoft Windows での動作をサポートしており、Cygwin/X (Xwin) として公開されている。
それ以外にも、サードパーティから各種実装が出ている。X.Org Server から派生した物もあれば、1から実装されている物もある。フリーソフトウェアとしては、WeirdMind、WeirdX などがある。プロプライエタリ・ソフトウェアとしては、ASTEC-X、Exceed、ReflectionX、WiredX、Xmanager、X-Deep/32、Xming、X-Win32、XVision Eclipse などがある。かつては、Xoftware/32(ネットマネージ製)、DynaWinX、PC-Xware(NCD製、数社が取り扱い)、Super-X(Frontier Technologies製、コンテック扱い)、eXodus for Windows(White Pine Software製、DIT扱い)という商品もあった。これらは通常、リモートのXクライアントを表示・制御するのに使われる。
スマートフォン・タブレット
MeeGo, Maemo, Tizen, Ubuntu Touch など各種 Linux スマートフォン・タブレットでも X Window System (X.Org Server) が使われている。
X端末
X端末は、Xサーバを実行するシンクライアントである。これはUNIXワークステーションが高価だったころ、大きめのサーバを複数人で共有し、各人がグラフィカルな環境を使えるようにする安価の手段として人気となった。また、これは MIT のプロジェクトが本来想定していた方向性でもある。
X端末は、ネットワーク上で XDMCP(X Display Manager Control Protocol)を使って利用可能なホスト(クライアントを実行できるマシン)を探す。まず最初のホストでXディスプレイマネージャを起動する必要がある。
専用ハードウェアとしてのX端末はその後少なくなり、より安価なXサーバ用端末としてパーソナルコンピュータや新たなシンクライアントが使われるようになっている。
X の限界と批判
UNIX-HATERS Handbook(1994年)は、1つの章を割いて X の問題を論じている[3]。Why X Is Not Our Ideal Window System(1990年、Gajewska, Manasse, McCormack)は、Xプロトコルの問題を詳細に論じ、改善の方法を示唆している。
ユーザインタフェース機能
X はユーザインタフェースの仕様やアプリケーション間通信の仕様を意図的に含まないようにしている。このためそれぞれ全く異なったインタフェースが生まれ、アプリケーション間の連携を阻む原因ともなっている。ICCCM はクライアントの相互運用に関する仕様だが、正しく実装するのが困難なことで有名である。MotifとCDEも標準化の試みだったが、解決策とはならなかった。この問題は、プログラマやユーザーを長い間悩ませてきた[4]。2007年現在、アプリケーションのルック・アンド・フィールとアプリケーション間通信の一貫性を保つためには、特定のデスクトップ環境あるいは特定のウィジェット・ツールキットを採用してプログラムを作成するのが一般的である。
Xプロトコルは、音声を全く扱わない。そのため、サウンドカードの制御も含めた部分はOSやOSSやALSAなどのオーディオシステムが分担している。多くのプログラマはOS固有のサウンドAPIを使っている。クライアントサーバ型のサウンドシステムとしては、古くは rplay や Network Audio System があった。その後、EsounD (GNOME)、aRts (KDE) などが開発された。2001年、X.Org はこの問題に対処するため Media Application Server (MAS) の開発を発表した。しかし、これらはいずれも根本的な解決策とはなっていない。
ネットワーク
XクライアントをあるXサーバからデタッチし、別のXサーバに再アタッチすることはできない。しかしVirtual Network Computing(VNC)ではそれが可能であり、一部のアプリケーションやツールキットではそのような機能を提供している[5]。
XサーバとリモートのXクライアントの間の通信トラフィックは、デフォルトでは暗号化されていない。そのため悪意ある者がLANアナライザを使えば、それを覗き見ることができるので業務で使用するには注意が必要である。
クライアント/サーバの分離
X の設計では、クライアントとサーバはそれぞれ独立して動作する。ハードウェアからの独立性やクライアントとサーバの分離などのオーバーヘッドは、OS内にグラフィックス機能が統合されているシステム(Windows や Mac OS)にはないものである。X が適切な性能を発揮するには、4MBから8MBのRAMを必要とすると言われている。これは1990年代中ごろまでは、Windows や Mac OS に比較すると大きかった。
最近の Windows や Mac OS X の Quartz は X のようなクライアントとサーバの分離を行えるようになっている。オーバーヘッドの大半は、ネットワーク上のラウンドトリップタイムによるものである(つまり、プロトコル自体の問題ではなく、レイテンシである)。性能問題を解決するには、そのレイテンシを考慮したアプリケーション設計をする必要がある[6]。Xのネットワーク機能が過度に複雑であるために、ローカルで使っても性能に悪影響があるという誤解を持つ人が多いが、現在の X の実装ではローカルな接続では単にソケットと共有メモリを使うので、X 固有のオーバーヘッドはほとんどない。
X と競合するシステム
Unix系システムでは、グラフィックス表示には X が使われるのが普通である。しかし、X の代替となるシステムを開発しようという試みはいくつかある。歴史的には、サン・マイクロシステムズの NeWS(市場では成功しなかった)、NeXT の Display PostScript(アップルが Quartz に置換した)、日本製のGMWがあった。
Quartz 開発者の1人 Mike Paquette は、アップルが Display PostScript から X に移行せずに独自のウィンドウサーバを開発した理由として、アップルが必要とする全ての機能を X11 に追加してみたら、X11 とは似ても似つかないものになり、他のXサーバとの互換性も失ってしまったと説明した[7]。
他にも、Fresco や Y Window System といった X を置換することを意図したシステムもある。しかし、X との互換性を無視したこれらのシステムは、今のところ広く受けいれられてはいない。
ハードウェアを直接操作することで X のオーバーヘッドに対処しようとした競合システムもある(例えば、DirectFB や FrameBuffer UI)。ダイレクト・レンダリング・インフラストラクチャ(DRI)は、ほぼ同等の機能を X 内でモジュール化したものと言え、それら競合システムの努力が無駄になる可能性もある。しかし、(RTAIなどを使った)組み込みシステム用Linuxでは DRI のリアルタイム性は思わしくなく、そのような応用には X は今のところ不向きと言える。
グラフィックス関連のサービスでネットワーク透過性を達成するその他の手段には、以下のものがある。
- SVG Terminal - Scalable Vector Graphics(SVG)形式のコンテンツをほぼリアルタイムでブラウザとやりとりして更新するプロトコル。
- Virtual Network Computing (VNC) - ネットワーク上で圧縮したビットマップを送る。
- Citrix Presentation Server - Microsoft Windows 向けの X のような製品。
- タランテラは、ウェブブラウザを使う Java クライアントを提供している。
- RAWT(Remote AWT)- IBM の Java によるクライアントサーバシステム
歴史
先駆的開発
X 以前にも、ビットマップディスプレイを使ったシステムは存在していた。ゼロックスは、Alto(1973年)とStar(1981年)を開発している。アップルは、Lisa(1983年)と Macintosh(1984年)を開発した。UNIX関連では、Andrew Project(1982年)とロブ・パイクのBlit端末(1984年)がある。
X の名称は、それ以前の W Window System の後継であることから名づけられた。W Window System は Vというオペレーティングシステム上で動作した。W はネットワークプロトコルを使って端末やグラフィックウィンドウをサポートし、サーバ側でディスプレイリストを管理する。
起源と初期の開発
X の考え方がMITで生まれたのは1984年、Jim Gettys(Project Athena)と Bob Scheifler(MITコンピュータ科学研究所)によるものであった。Scheifler は Argus というシステムのデバッグ用の表示環境を必要としていた。Project Athena(DEC、MIT、IBM によるコンピュータのユーザインタフェースを改善するプロジェクト)では、プラットフォームに依存せず、マルチベンダーシステムで利用できるグラフィックスシステムを必要としていた。当時、カーネギーメロン大学の Andrew Project でウィンドウシステムが開発中だったが、ライセンス提供を受けることができず、他に代案もなかった。
解決策として、ローカルなアプリケーションも動作させることができ、リモートでも動作させることができるプロトコルの開発という考えが生まれた。1983年中ごろ、W が UNIX に移植された(V のときの5分の1の速度)。1984年5月、Scheifler は同期型だった W のプロトコルを非同期型に変更し、これが X バージョン 1 となった。X は世界初のハードウェアやベンダーに依存しないウィンドウシステム環境となった。
Scheifler、Gettys、Ron Newman が開発を進め、X は急速に進化していった。1985年1月にはバージョン 6 をリリース。当時 Ultrix を搭載したワークステーションをリリースしようとしていた DEC は、X の搭載を決断した。DEC の技術者が X6 を DEC の QVSS ディスプレイ付き MicroVAX に移植した。
1985年第二四半期、X はカラーをサポートし、DEC VAXstation-II/GPX で動作した。これがバージョン 9 となる。MIT は X6 を外部グループに料金を徴収してライセンスしていたが、X9 リリース時点から MIT License を適用することとした。X9 は 1985年9月にリリースされた。
ブラウン大学のグループが IBM RT-PC に X9 を移植したが、整列されていないデータの読み込みで問題が発生し、プロトコルに非互換となる変更が必要となった。このため、1985年末にバージョン 10 となった。1986年には、外部から X についての問合せが増えてきた。X10R2 は1986年1月、X10R3 は1986年2月にリリース。X10R3 では広く製品に採用されるようになった。DEC とヒューレット・パッカードは X10R3 ベースの製品をリリースし、他のグループが アポロコンピュータのマシンやサン・マイクロシステムズのワークステーションへの移植を行い、IBM PC/AT への移植も行われた。このころ、Autofact という見本市で X を使った商用アプリケーションが初めてデモンストレーションされた(Cognition Inc. の機械系CAEシステム)。X10 の最後のバージョンは X10R4 で、1986年12月にリリースされた。
Virtual Network Computing (VNC) がデスクトップの共有を可能にしているように、Xサーバをそのように拡張する試みはこのころから既に行われていた。例えば、Philip J. Gust の SharedX ツールがある。
X10 は強力な機能を持っていたが、Xプロトコルはさらに広く使われるようになる前に、もっとハードウェア中立となるよう再設計する必要があることがわかってきた。しかし、MIT だけではそのような全面的な再設計をするだけのリソースがなかった。そこで、DEC の Western Software Laboratory(WSL)がこのプロジェクトに参加を申し出た。DEC WSL の Smokey Wallace と Jim Gettys は、DEC WSL が X11 を開発し、それを X9 や X10 と同じ条件でフリーにリリースすることを提案した。設計は1986年5月に開始され、8月にはプロトコルが完成した。アルファテストは1987年2月に開始され、ベータテストは1987年5月に開始された。X11 のリリースは、1987年9月15日に行われた。
Scheifler が中心となって行われた X11 プロトコルの設計は、USENET のニュースグループとオープンなメーリングリスト上で盛んに議論しながら進められた。したがって、X は最初の大規模フリーソフトウェアプロジェクトと言われることもある。
MIT X Consortium と X Consortium, Inc.
1987年、X11 の成功が明らかになると、MIT は X の運営責任を放棄したいと考えるようになった。しかし、1987年6月に9社の主なベンダーが集まった会議で、各社はMITに対して X をまとめていくには中立的な団体が管理する必要があることを訴えた。1988年1月、MIT X Consotium が非営利の業界団体として設立された。責任者は Scheifler で、今後の X 開発の方向性を業界と学界の動向を加味して決定することとなった。1988年1月には Jim Fulton、1988年3月にはキース・パッカードが参加し、Jim は Xlib/フォント/ウィンドウマネージャ/ユーティリティの開発、キースはサーバの再実装を分担するようになった。Donna Converse と Chris D. Peterson が同年末までに参加し、ツールキットとウィジェットを分担し、Project Athena の Ralph Swick と連携して作業を行った。MIT X Consortium は X11 のリビジョンをいくつかリリースしていった。最初の X11R2 は1988年2月にリリースされた。
1993年、MIT X Consortium の後継として X Consortium, Inc.(非営利組織)が設立された。そして、1994年5月16日に X11R6 をリリース。1995年には、Motifツールキットと Common Desktop Environment の開発管理も行うようになった。X Consortium, Inc. は1996年末には解散し、X11R6.3 を最後にリリースした。コンソーシアム参加各社による囲い込みのような状況になったことが解散の原因とされている[8][9]。
The Open Group
1997年中ごろ、X Consortium, Inc. は X の管理運営を The Open Group に移管した。これは、Open Software Foundation と X/Open が1996年初めに合併して結成された業界団体である。
The Open Group は 1998年初めに X11R6.4 をリリース。しかし、The Open Group は X の開発資金を確かなものとするため、これまでのライセンス条件を変更し、これが議論を呼んだ[10]。新たな条件では、多くのプロジェクト(XFree86など)やいくつかの商用ベンダーでの採用が困難であった。これを受けて XFree86 が分裂しそうになると、The Open Group は1998年9月に X11R6.4 を改めて従来のライセンス条件でリリースした[11]。The Open Group の最後のリリースは X11R6.4 patch 3 であった。
X.Org と XFree86
XFree86 の起源は、Thomas Roell と Mark W. Snitily が1991年に書いたPC/AT互換機向けの X11R5 である X386 server に遡る。Snitily Graphics Consulting Services(SGCS)はこれを 1992年に MIT X Consortium に寄贈した。XFree86 は時と共に進化していき、X の実装としてのデファクトスタンダードとなった[12]。
1999年5月、The Open Group は X.Org を設立した(後の X.Org Foundation とは異なる)。X.Org は当時進行中だった X11R6.5.1 のリリースを実施した。当時の X 開発は壊滅寸前であった[13]。X Consortium, Inc. が解散した後の技術的進歩の多くは XFree86 プロジェクトで生まれた[14]。1999年、XFree86 は X.Org の(会費を払わない)名誉会員となり[15]、XFree86 と Linux を製品に使いたいと思っていた多くのハードウェア企業がこれを歓迎した[16]。
2003年までに Linux と X の組合せが非常に一般的になってきても、X.Org は活発にはならず[17]、やはり開発の中心は XFree86 であった。しかし、ここで XFree86 内で大きな意見の相違が発生した。XFree86 は、あまりにも伽藍的開発モデルであり、開発者はCVSにコミットアクセスできず[18][19]、ベンダーは多数のパッチを保守する必要があった[20]。2003年3月、XFree86 からキース・パッカードが追い出された。彼は MIT X Consortium の消滅後に XFree86 に参加していた[21][22][23]。
X.Org と XFree86 は、X の開発を推進するための組織改編についての議論を開始した[24][25][26]。Jim Gettys は2000年ごろからオープンな開発モデルが必要であることを強調していた[27]。Gettys と Packard は他の何人かと共に効率的な X のオープン開発の要求仕様について議論を開始した。
そして、X11R6.4 のライセンス問題の結果、XFree86 version 4.4 はより制限されたライセンスで2004年2月にリリースされ、X を使っている多くのプロジェクトでこれを使うのが困難になった[28]。追加された条項はBSDライセンスの宣伝条項に基づいており、フリーソフトウェア財団も Debian もこれを GNU General Public License と非互換であるとした[29]。このライセンス問題と、ソース修正の困難さから、多くの人が分裂の機が熟したと感じていた[30]。
X.Org Foundation
2004年初め、 X.Org と freedesktop.org の様々な人々が集まり、X.Org Foundation が結成され、The Open Group は x.org というドメイン名の権利を譲渡した。これにより、X の管理運営は大きく変化した。1988年以来(前の X.Org も含めて)X の開発運営は業界団体が行っていた。しかし、X.Org Foundation はソフトウェア開発者が主導し、バザールモデルに基づいたコミュニティによる開発であり、外部からの参加に依存している。個人参加も可能で、企業がスポンサーとして参加することも可能である。現在、ヒューレット・パッカードやサン・マイクロシステムズなどの企業が X.Org Foundation に援助している。
Foundation は X 開発における監督的役割を担う。技術的判断はコミュニティでの合意形成によってなされ、何らかの委員会で決定されるわけではない。これは GNOME Foundation の非干渉主義的開発モデルに非常に近い。Foundation は開発者を雇っていない。
2004年4月、X.Org Foundation が XFree86 4.4RC2 に X11R6.6 の変更をマージした X11R6.7 をリリースした。Gettys と Packard は、従来のライセンスの XFree86 の最新版をベースとして、オープンな開発モデルを採用し、GPL との互換性を維持することで、かつての XFree86 開発者の多くを呼び戻した[31]。
2004年9月、X11R6.8 がリリースされた。これには多くの新機能が追加された(透明なウィンドウサポート、その他の視覚効果のサポート、3次元表示サポートなど)。また、外部アプリケーションとして、コンポジット型ウィンドウマネージャと呼ばれるもので見た目のポリシーを提供できるようになった。
2005年12月21日、X.Org は、従来からのユーザー向けにモノリシックなソースコードである X11R6.9 と、同じコードをモジュール化して分割した X11R7.0 をリリースした[32][33]。2006年5月22日、多数の機能強化を施した X11R7.1 をリリースした[34]。
今後
X.Org Foundation と freedesktop.org により、X の中核部分の開発が再び加速された。これらの開発者は、単にベンダーによる製品化のベースとしてだけでなく、使用可能な最終製品として今後のバージョンをリリースしようとしている。
ハードウェアやオペレーティングシステムとの関係を限定するため、X.Org は表示用ハードウェアへのアクセスを OpenGL とダイレクト・レンダリング・インフラストラクチャ(DRI)だけにすることを予定している。DRI は XFree86 version 4.0 で登場し、X11R6.7 以降で標準となった[35]。多くのオペレーティングシステムがハードウェア操作のためのカーネルサポートの追加を開始している。
名称
開発元の X.Org Foundation は、このソフトウェアを以下のいずれかの名前で呼ぶことを求めている[36]。
- X
- X Window System
- X Version 11
- X Window System, Version 11
- X11
かつてはよく間違われたが、X Window Systemは「"X Window"というシステム」ではなく、「"X"というウィンドウシステム」である。また、X Windowsという表記は誤りである。
Xで利用可能なウィジェット・ツールキット
リリース履歴
バージョン | リリース日 | 最も重要な変更 |
---|---|---|
X1 | 1984年6月 | 以前のシステム W から大幅に変更されたと言う意味で、最初のソフトウェアは X と呼ばれる。 |
X6 | 1985年1月 | いくつかの企業にライセンスされる |
X9 | 1985年9月 | 色機能追加。MIT License 下で初めてリリース |
X10 | 1985年後半 | IBM RT-PC、PC/AT(のDOS上)等のマシンでの動作 |
X10R2 | 1986年1月 | |
X10R3 | 1986年2月 | MIT の外部に初めてリリース。uwmが標準のウィンドウマネージャ。 |
X10R4 | 1986年12月 | X10 の最新バージョン |
X11 | 1987年9月15日 | 現在のプロトコルの最初のリリース |
X11R2 | 1988年1月 | Xコンソーシアムによる最初のリリース。[1] |
X11R3 | 1988年10月25日 | XDM。 |
X11R4 | 1989年12月22日 | アプリケーションの改善、新しいフォント、Twmが標準のウィンドウマネージャとして搭載される。 |
X11R5 | 1991年 | PHIGS、カラーマネジメント、X386。国際化機能 |
X11R6 | 1994年5月16日 | ICCCM v2.0、ICE、Xセッションマネジメント、X同期拡張、Xイメージ拡張、XTEST拡張、Xインプット、X Big-Request拡張、XC-MISC、XFree86の変更。 |
X11R6.1 | 1996年3月14日 | Xダブルバッファ拡張、Xキーボード拡張、X Record拡張。 |
X11R6.2 X11R6.3 (Broadway) |
1996年12月23日 | Web機能、 LBX。Xコンソーシアムによる最後のリリース。X11R6.2はX11R6.3の部分機能バージョン。R6.1からの新機能はXPrintと、Xlibにおける縦書きと、ユーザー定義文字のサポートのみ。[2] |
X11R6.4 | 1998年3月31日 | Xinerama。[3] |
X11R6.5 | X.org の内部リリース。公開するためのものではない。 | |
X11R6.5.1 | 2000年8月20日 | |
X11R6.6 | 2001年4月4日 | バグ修正、XFree86 変更。 |
X11R6.7.0 | 2004年4月6日 | 初めて X.Org 財団としてリリース、XFree86 4.4rc2 に統合。完全なエンドユーザー向け配布。XIE、PEX、libxml2の除去。 [4] |
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日 | EXA、大規模なコードのリファクタリング。同一のソースコードをベースとするが、Autotoolsを使用したモジュラー化されたバージョンは7.0となり、imake使用したモノリシックなバージョンは6.9で凍結された。 |
X11R7.1 | 2006年5月22日 | EXAの改良、KDriveの統合、AIGLX、BSD等のサポート。 |
X11R7.2 | 2007年2月15日 | LBXとビルトインのキーボードドライバの除去。XACE、XCB、autoconfigの改良、クリーンアップ。[37] |
X11R7.3 | 2007年9月6日 | XServer 1.4、入力機器のホットプラグ、出力機器のホットプラグ (RandR 1.2), DTraceプローブ、PCIドメインのサポート。[38] |
X11R7.4 | 2008年9月23日 | XServer 1.5.1、 XACE、PCIサブシステムのリワーク、EXAの高速化、_X_EXPORT、GLX 1.4、より高速なスタートアップとシャットダウン。[39] |
X11R7.5 | 2009年10月26日 | XServer 1.7、Xi 2、XGE、E-EDIDのサポート、RandR 1.3、MPX、予測可能なポインタのアクセラレーション、DRI2メモリマネージャー、SELinuxセキュリティモジュール、古くなったライブラリや拡張のさらなる除去。[40] |
X11R7.6 | 2010年12月20日 | XServer 1.9、XCBを要求。[41] |
X11R7.7 | 2012年6月6日 | XServer 1.12、Sync extension 3.1 Fence オブジェクト追加、Xi 2.2 マルチタッチ、XFixes 5.0 ポインターバリアー[42] |
出典・脚注
関連項目
参考文献
- Hania Gajewska, Mark S. Manasse and Joel McCormack, Why X Is Not Our Ideal Window System PDF, Software — Practice & Experience vol 20, issue S2 (October 1990)
- Linda Mui and Eric Pearce, X Window System Volume 8: X Window System Administrator's Guide for X11 Release 4 and Release 5, 3rd edition O'Reilly and Associates, July 1993; softcover ISBN 0-937175-83-8
- The X-Windows Disaster UNIX-HATERS Handbook
- Robert W. Scheifler and James Gettys: X Window System: Core and extension protocols: X version 11, releases 6 and 6.1, Digital Press 1996, ISBN 1-55558-148-X
- The Evolution of the X Server Architecture キース・パッカード、1999年
- The means to an X for Linux: an interview with David Dawes from XFree86.org Matthew Arnison, CAT TV, June 1999
- Lessons Learned about Open Source Jim Gettys, USENIX 2000 での X の歴史に関する講演資料
- On the Thesis that X is Big/Bloated/Obsolete and Should Be Replaced Christopher B. Browne
- Open Source Desktop Technology Road Map Jim Gettys, 2003年12月9日
- X Marks the Spot: Looking back at X11 Developments of Past Year Oscar Boykin, OSNews, 2004年2月25日
- Getting X Off The Hardware キース・パッカード、2004年7月 Ottawa Linux Symposium での講演資料
- Why Apple didn't use X for the window system Mike Paquette, Apple Computer
- X Man Page 2007年2月2日閲覧
- SNAP Computing and the X Window System Jim Gettys, 2005年
外部リンク
- XFree86
- X.Org Foundation
- Xi Graphics,Inc. (Accelerated-X の開発元)
- The X Window System: A Brief Introduction
- Window managers for X
- The State of Linux Graphics Jon Smirl, 2005年8月30日
- Writing a Graphics Device Driver and DDX for the DIGITAL UNIX X Server
- Kenton Lee: Technical X Window System and Motif WWW Sites
- RFC 1198 - FYI on the X Window System
テンプレート:XWinSys テンプレート:FOSS テンプレート:Window managers
テンプレート:Link GA
- ↑ テンプレート:Cite web
- ↑ Announcement: Modification to the base XFree86(TM) license. 02 Feb 2004
- ↑ "The X-Windows Disaster"
- ↑ Re: X is painful 15 Nov 1996
- ↑ SNAP Computing and the X Window System 2005
- ↑ An LBX Postmortem 2001-1-24
- ↑ Why Apple didn't use X for the window system August 19, 2007
- ↑ Financing Volunteer Free Software Projects 10 Jun 2005
- ↑ Lessons Learned about Open Source 2000
- ↑ X statement 02 Apr 1998
- ↑ X11R6.4 Sample Implementation Changes and Concerns
- ↑ Announcement: Modification to the base XFree86(TM) license. 02 Feb 2004
- ↑ Q&A: The X Factor February 04, 2002
- ↑ The Evolution of the X Server Architecture 1999
- ↑ A Call For Open Governance Of X Development 23 Mar 2003
- ↑ XFree86 joins X.Org as Honorary Member Dec 01, 1999
- ↑ Another teleconference partial edited transcript 13 Apr 2003
- ↑ Keith Packard issue 20 Mar 2003
- ↑ Cygwin/XFree86 - No longer associated with XFree86.org 27 Oct 2003
- ↑ On XFree86 development 9 Jan 2003
- ↑ Invitation for public discussion about the future of X 20 Mar 2003
- ↑ A Call For Open Governance Of X Development 21 Mar 2003
- ↑ Notes from a teleconference held 2003-3-27 03 Apr 2003
- ↑ A Call For Open Governance Of X Development 24 Mar 2003
- ↑ A Call For Open Governance Of X Development 23 Mar 2003
- ↑ Discussing issues 14 Apr 2003
- ↑ Lessons Learned about Open Source 2000
- ↑ XFree86 4.4: List of Rejecting Distributors Grows Feb 18, 2004
- ↑ Appendix A: The Cautionary Tale of XFree86 June 5, 2002
- ↑ X Marks the Spot: Looking back at X11 Developments of Past Year Feb 25, 2004
- ↑ Appendix A: The Cautionary Tale of XFree86 June 5, 2002
- ↑ X11R6.9 and X11R7.0 Officially Released December 21 2005
- ↑ Modularization Proposal 2005-03-31
- ↑ Proposed Changes for X11R7.1 2006-04-21
- ↑ Getting X Off The Hardware July, 2004
- ↑ X - a portable, network-transparent window system 2005年2月
- ↑ Releases/7.2
- ↑ Releases/7.3
- ↑ Releases/7.4
- ↑ Releases/7.5
- ↑ Releases/7.6
- ↑ Releases/7.7