XScreenSaver デモとXMatrixハック | |
| 原作者 | ジェイミー・ザウィンスキー |
|---|---|
| 開発者 | ジェイミー・ザウィンスキー |
| 初回リリース | 1992年8月17日 |
| 安定リリース | 6.08 / 2023年10月10日[1] |
| 書かれた | ANSI C、X11、OpenGL |
| オペレーティング·システム | Unix、macOS、iOS、Android |
| タイプ | スクリーンセーバー |
| ライセンス | MITライセンス[2] |
| Webサイト | jwz.org/xscreensaver/ |
XScreenSaverは、 Unix、macOS、iOS、Androidオペレーティングシステム用の240以上の[3]スクリーンセーバーの無料オープンソースコレクションです。1992年にJamie Zawinskiによって作成され、現在も彼によってメンテナンスされており、年に数回新しいリリースがリリースされています。[4]
プラットフォーム
X Window System を実行するフリーソフトウェアおよびオープンソースの Unix 系オペレーティングシステム( LinuxやFreeBSDなど) では、ほぼ例外なく XScreenSaver が使用されています。[要出典]これらのシステムには、画面保存およびロックフレームワーク用のパッケージが 1 つと、表示モード用のパッケージが 2 つ以上あり、ある程度恣意的に分割されています。[5]
Macintoshシステムでは、XScreenSaver は組み込みのmacOSスクリーン セーバーと連携して動作します。
iOSシステムでは、XScreenSaver は、あらゆるハックをフルスクリーンで実行できるスタンドアロン アプリです。
Androidシステムでは、XScreenSaver 表示モードは通常のスクリーン セーバー (Android では「Daydreams」と呼ばれることもあります) として、またはライブ壁紙として機能します。
Microsoft Windows用の公式バージョンは存在せず、開発者は移植を推奨していません。著者は Microsoft を「悪質で略奪的で反競争的なビジネス慣行を持つ会社」[6]とみなしており、 Netscape Navigator のオリジナル作者の 1 人として、第一次ブラウザ戦争中の Microsoft の行動のために Microsoft に対して「個人的な恨み」を抱いていると述べています。
ソフトウェアアーキテクチャ
XScreenSaverデーモンは、アイドル状態を検出し、画面をブランクにしてロックし、ディスプレイ モードを起動する役割を担います。ディスプレイ モード (従来の「ディスプレイ ハック」という用法から「ハック」と呼ばれます) は、それぞれ独立したプログラムです。
これは、表示モードが画面ロック フレームワークとは別のプロセスにサンドボックス化されるという点で、重要なセキュリティ機能です。つまり、グラフィカル表示モードの 1 つでプログラミング エラーが発生しても、画面ロック自体が危険にさらされることはありません (たとえば、表示モードでクラッシュが発生しても、画面のロックは解除されません)。
また、サードパーティのスクリーンセーバーは、外部から提供されるウィンドウにレンダリングできる限り、任意の言語または任意のグラフィックライブラリを使用して記述できます。
歴史的および移植性の理由から、含まれるハックはすべてANSI Cで書かれています。そのうち約半分はX11 API を使用し、約半分はOpenGL 1.3 API を使用します。
コードベースをフォークして、異なるプラットフォームをターゲットにするためにハックを書き直すのではなく、XScreenSaver には多数の互換性レイヤーが含まれています。
- X11ベースのハックをmacOSとiOSでネイティブに実行できるようにするために、XScreenSaverにはCocoa(「jwxyz」)上に構築されたX11 APIの完全な実装が含まれています。 [7]
- OpenGL 1.3ベースのハックを、OpenGL ESのみをサポートするiOSおよびAndroidシステムでネイティブに実行できるようにするために、XScreenSaverにはOpenGL ES 1.0(「jwzgles」)上に構築されたOpenGL 1.3 APIの実装が含まれています。[7]
- また、X11ベースのハックをiOSとAndroidでネイティブに実行できるようにするために、XScreenSaverにはOpenGL ES 1.0の観点からのX11 APIの実装も含まれています。 [8]
安全
表示モードをサンドボックス化することに加えて、XScreenSaver デーモンは、できるだけ少ないライブラリとリンクします。特に、GTKやKDEなどの GUI フレームワークとはリンクせず、ロック解除ダイアログ ボックスのレンダリングには生のXlibのみを使用します。
近年、一部のLinuxディストリビューションでは、XScreenSaverに含まれるフレームワークの代わりに、gnome-screensaverまたはkscreensaverスクリーンブランキングフレームワークをデフォルトで使用するようになりました。 [9] 2011年に、gnome-screensaverはmate-screensaverとcinnamon-screensaverの両方にフォークされました。これらのフレームワークの以前のバージョンは、パッケージの90%以上を占めるXScreenSaverスクリーンセーバーコレクションに依存していました。[10] しかし、2011年にgnome-screensaverバージョン3はスクリーンセーバーのサポートを完全に廃止し、単純なスクリーンブランキングのみをサポートしました。[11] また、2018年現在、Linux Mintのcinnamon-screensaver 4.0.8はXScreenSaverハックをサポートしていません。[12]
XScreenSaver を他のスクリーンロックフレームワークに置き換えた Linux ディストリビューションは、顕著なセキュリティ問題に悩まされています。他のフレームワークには、パスワードなしで画面ロックを解除できるセキュリティバグの歴史があります。たとえば、ロッカーがクラッシュするまでキーを押し続けるだけでロックを解除できます。[13] [14] [15] [16] [17] [18] [19]
2004年にザウィンスキーは、まさにこの種のバグを回避することを目的としたXScreenSaverのアーキテクチャ上の決定について書いており、 [20] 2015年に「LinuxでXScreenSaverを実行していない場合は、画面がロックされないと想定しても問題ありません」と皮肉を述べています。[21]
表示モード
含まれるハックは、単純な 2Dサイケデリックから、複雑な数学原理の 3D デモンストレーション、他のコンピュータ システムのシミュレーション、映画のアーティファクトや効果の再現まで、非常に多岐にわたります。
新しいハックの多くは現代のコンピューターのパワーを最大限に活用していますが、プロジェクトの古さから、古いハックの中には、もともとそれほどパワーのないコンピューター向けに書かれたものもあり、現代の目から見ると時代遅れに見えるものもあります。
ハッキングの例としては次のようなものがある: [3]
- アトランティス–クジラとイルカを描いたOpenGLアニメーション。
- BSOD – Microsoft Windows のブルー スクリーン オブ デス、Linuxカーネル パニック、Darwinクラッシュ、Amiga の「Guru Meditation」エラー、悲しい Macなど、多くのコンピュータ システムの偽の致命的な死のスクリーンのバリエーションを表示します。
- Apple2 – Apple IIコンピュータをシミュレートし、ユーザーが簡単なBASICプログラムを入力して実行する様子を示します。コマンドラインから実行すると、完全に機能するターミナル エミュレータになります ( Phosphorも同様です)。
- バーコード- 多数の色付きバーコードが画面上をスクロールします。
- フロー–奇妙なアトラクターの 3D 表示。
- 空飛ぶトースター– 古典的なAfter Darkスクリーンセーバーにインスピレーションを得た 3D トースターが飛び回ります。
- ギア- 相互に噛み合うギアと遊星ギアの OpenGL アニメーション。
- GLMatrix –マトリックス三部作に登場する「デジタル レイン」のタイトル シーケンスに似た OpenGL アニメーション。
- 分子–一連の一般的な薬物やその他の分子の空間充填モデルまたはボールと棒のモデルを表示する OpenGL アニメーション。38 個が組み込まれています。また、ファイルからPDB (タンパク質データ バンク) を読み込むことも、ディレクトリに配置されたファイルを入力として読み込むこともできます。
- ペンローズ– 色付きのペンローズ タイルを不規則に画面に並べます。
- スポットライト-ジェームズ・ボンド映画のオープニング シーケンスのスタイルで、デスクトップ全体に動くスポットライトを配置します。
- Sproingies – ビデオゲームQ*bertスタイルのアニメーション。
- Webcollage – Web 上で見つかったランダムな画像からコラージュを作成します。
- XAnalogTV – 視覚的なアーティファクトや受信の問題を含む、アナログブラウン管テレビをシミュレートします。
- XPlanet –リアルタイムで更新される惑星やその他の天体を描画します。
- XMatrix –マトリックス三部作に登場する「デジタルレイン」のシーケンスに似たアニメーション。
含まれているハックのいくつかは、デモシーンで作成されたデモエフェクトと非常によく似ています。
- Boing – 史上初のAmiga デモとされる 1984 年のプログラムに基づいており、跳ねる赤と白のボールを表示します。
- バンプ– フルスクリーン 2Dバンプ マッピングの実装。
- メタボール– もう一つの一般的なデモエフェクト。
- Moire2 –古い Amiga デモでよく見られるものと同様の、移動する干渉円。
- ShadeBobs – 古い Amiga デモでよく見られるもう 1 つのエフェクト。
- XFlame – フィルターベースの火のエフェクト。炎エフェクトとも呼ばれます。
参照
XScreenSaver は、2017 年に ロッテルダムのHet Nieuwe InstituutでRafaël Rozendaal が監修したギャラリー展示会「Sleep Mode: The Art of the Screensaver」 [ 22]で紹介されました。
参考文献
- ^ 「Changelog」 . 2024年3月4日閲覧。
- ^ 「Debian XScreenSaver 著作権リスト」。2020年12月24日。 2020年12月24日閲覧。
- ^ ab 「XScreenSaver コレクションに含まれるスクリーンセーバーの一覧」。2020 年 12 月 8 日。2020年12 月 24 日閲覧。
- ^ 「XScreenSaver リリース履歴」。2020 年 12 月 8 日。2020年12 月 24 日閲覧。
- ^ 「Debian XScreenSaver パッケージリスト」。2020年12月24日。 2020年12月24日閲覧。
- ^ 「XScreenSaver: Windows バージョン」www.jwz.org . 2020 年12 月 24 日閲覧。
- ^ ab 「iOS 移植に関する jwz.org のブログ投稿」。2012 年 6 月 19 日。2020 年12 月 24 日閲覧。
- ^ 「Android 移植に関する jwz.org のブログ投稿」。2016 年 5 月 23 日。2020 年12 月 24 日閲覧。
- ^ 「KDE/Gnomeに関するXScreenSaver FAQ」 。 2020年12月24日閲覧。
- ^ 「XScreenSaver ソースコード配布」。2020年12月8日。 2020年12月24日閲覧。
- ^ Campagna, Giovanni (2011 年 3 月 21 日). 「Re: GNOME3 のスクリーンセーバーの状況は?」. gnome-shell (メーリング リスト).
- ^ 「Linux Mint 19.1 発表」。2018年12月20日。 2020年12月24日閲覧。
- ^ 「Gnome-Screensaver Key Flood」。2014年4月16日。 2020年12月24日閲覧。
- ^ 「Cinnamon-Screensaver Key Flood」。GitHub 。 2014年8月22日。 2020年12月24日閲覧。
- ^ 「CVE-2014-1949、シナモンスクリーンセーバーロックバイパス」。2015年1月16日。 2020年12月24日閲覧。
- ^ 「Mandriva セキュリティアドバイザリ MDVSA-2015:162」。2015年3月29日。 2020年12月24日閲覧。
- ^ 「CVE-2015-7496、ESC キーを押したままにして Gnome セッション GDM のロックを解除する」。2015 年 11 月 24 日。2021年1 月 18 日閲覧。
- ^ 「CVE-2019-3010、Oracle Solaris XScreenSaverフォークにおける権限昇格」。2019年10月23日。 2020年12月24日閲覧。
- ^ 「仮想キーボードによるシナモンスクリーンセーバーのロックバイパス」。GitHub。2021年1月15日。 2021年1月15日閲覧。
- ^ 「XScreenSaver: ツールキットダイアログについて」 2004年10月19日. 2020年12月24日閲覧。
- ^ 「jwz.org の Gnome セキュリティバグに関するブログ投稿」。2015 年 4 月 4 日。2020 年12 月 24 日閲覧。
- ^ 「スリープモード:スクリーンセーバーの芸術:ジェイミー・ザウィンスキーのインタビュー」。2017年1月27日。 2020年12月24日閲覧。
外部リンク
ウィキメディア・コモンズの XScreenSaver に関連するメディア- 公式サイト
- 「XScreenSaver」。Freecode。
