3 ポイント 投稿者 GN⁺ 2025-04-22 | 3件のコメント | WhatsAppで共有
  • このブログは Nintendo Wii 上でホスティングされており、NetBSD で稼働している
  • Wii は PowerPC 750 ベースのシングルコア CPU を採用しており、宇宙探査のような高性能用途でも使われるチップセットである
  • NetBSD は Wii で最新バージョンがサポートされており、これによって実際の本番ワークロードを実行できる
  • Wii に NetBSD をインストールするために Wilbrand エクスプロイトを使って Homebrew Channel を導入し、NetBSD イメージを SD カードに読み込む
  • lighttpd Web サーバーを使ってブログをホスティングし、Caddy によって TLS 終端を処理して性能を最適化している

Wiiでブログをホスティング

  • このブログは Nintendo Wii 上でホスティングされており、NetBSD で稼働している
  • Wii は PowerPC 750 ベースのシングルコア CPU を採用しており、宇宙探査のような高性能用途でも使われるチップセットである
  • Wii に NetBSD をインストールするために Wilbrand エクスプロイトを使って Homebrew Channel を導入し、NetBSD イメージを SD カードに読み込む
  • lighttpd Web サーバーを使ってブログをホスティングし、Caddy によって TLS 終端を処理して性能を最適化している

Wiiの性能

  • Wii の CPU は IBM の PowerPC 750 ラインアップの一部で、1998年の iMac に使われたアーキテクチャである
  • Wii の CPU はシングルコアで、最大 TDP は 9.8W であり、Wii に使われたバージョンより約 33% 高いクロック速度を持つ
  • この CPU は宇宙探査のような高性能用途にも使われており、RAD750 という耐放射線版も存在する

NetBSDのインストール手順

  • Wii に NetBSD をインストールするために Wilbrand エクスプロイトを使って Homebrew Channel を導入する
  • Wii の MAC アドレスを把握し、SD カードにいくつかのファイルを作成して読み込むことでインストールできる
  • NetBSD イメージを SD カードに読み込み、Homebrew Channel 経由で起動する

パッケージ管理とWebサーバー設定

  • pkgin パッケージマネージャーをインストールして、さまざまな便利なパッケージを導入する
  • lighttpd Web サーバーをインストールし、デフォルト設定をコピーして有効化し、起動する
  • ブログは Hugo でビルドされた静的ページ群で、rsync でファイルを転送してサイトをホスティングしている

性能最適化とモニタリング

  • 複数のサービスを無効化してリソースを確保し、Caddy によって TLS 終端を処理して性能を最適化している
  • Caddy の Prometheus エクスポーターを使ってサイトの読み込みを監視し、Wii のシステム状態を簡単なシェルスクリプトで監視している

最終的な所感

  • Wii でのブログホスティングは予想以上にうまく動作し、消費電力も比較的少ない
  • Wii は約 18W の電力を消費し、これは月あたり約 13.2 kWh に相当する
  • この実験は、人為的な制約を課すことで学びを促進する楽しい実験だった

3件のコメント

 
ifmkl 2025-04-22

使っていないAndroidスマホにDebianを入れてWebサーバーを動かしていた頃を思い出しますね

 
ndrgrd 2025-04-22

なぜCaddyとlighttpdを同時に使うのかと不思議に思いましたが、静的ファイルだけをWiiで処理し、残りは別のマシンのCaddyで処理する形のようですね。

 
GN⁺ 2025-04-22
Hacker News のコメント
  • "SSL Added and removed here!" の画像は、2013年にNSAのリークで明らかになった、Googleデータセンター間の暗号化されていない通信を説明する図を参照している
  • NetBSDを再起動するとコンソール全体が再起動し、NetBSDの「アプリ」だけが再起動するわけではないため、カーネルパッチやシステムアップグレードの後にWiiメニューへ戻ってしまう
    • Priiloaderをインストールし、Homebrew ChannelまたはNetBSDの .dol ファイルへ自動起動するよう設定すれば、これを緩和できる
  • ちなみに、Photo Boothの代わりにQuicktime Playerを使って「新規ムービー収録」を行える
    • これで画像反転の問題を解決できるはずだと思う
  • Wiiホームブルーの経験に基づくと、小容量SDの信頼性問題が予想されるので、エクスプロイト後に一般的なUSBドライブへ交換して対処できるはず
    • ポートは2.0対応のみだが、どうせプロセッサ側がボトルネックになる
  • キャプチャカードとmacOSのPhoto Boothを使ってこれをやったが、実際には映像フィードで画像反転を無効化できない
    • OBSの使用を勧める
  • 「ハグ」をもらった
    • 次の投稿では「ブログはNintendo Wii(Varnish実行中)でホスティングされている」と書くことになるかもしれない
  • 性能は悪くない
    • NintendoのTCPスタックを使っていないのは明らかで、これはWiiでは悪名高かった
  • 細かいことを言いたくはないが、CaddyインスタンスをWiiへ移すか取り除かない限り、このブログが完全にWiiでホスティングされているとは言えない
    • 素晴らしい仕事だ
  • 信じられないほど驚いた
    • 素晴らしい仕事だ