10月30日、Mihai Parparitaが「Infinite Mac: BeOS」と題した記事を公開した。ブラウザ上で往年のMacintosh環境を再現するプロジェクトInfinite Macに、新たにBeOSが加わるまでの技術的な格闘と、BeOSというOSそのものへの率直な考察が記されている。
BeOSは1990年代中盤にBe社が開発し、Power Macintoshへ移植されたマルチメディア・マルチタスクOSだ。1996年末、Appleは次世代OSの候補として買収を検討したが、最終的に選ばれたのはBeOSではなくNeXTSTEPであり、現在のmacOSへとつながる道が開けた。「Appleが選ばなかったOS」として語り継がれるそのBeOSが、2026年の今、ブラウザのタブひとつで起動できるようになった。
なお、Infinite Mac自体は著者Mihai Parparitaが個人プロジェクトとして継続開発しているもので、Mac OS、System Software、NeXTSTEPといった歴史的OSをWebAssemblyベースのエミュレータでブラウザ上に再現することを目的としている。
DingusPPCとの格闘:バグ修正の連鎖
著者はエミュレータとしてDingusPPCを採用した。DingusPPCはオープンソースのPower Macintoshエミュレータで、Infinite Macにすでに統合済みであり、BeOS対応が進んでいたためだ。しかし実際に動かし始めると、小さなバグが次々と出てきた。
修正した主な問題は以下の通りだ:
- ADBエミュレーションのバグ:BootLoaderがすべての修飾キーが押下されていると誤認識し、起動のたびにBIOS風のパーティション選択画面が表示された
- 画面の色深度変更時の不具合:ビデオコントローラとDAC(デジタル-アナログコンバータ)への通知順序をMac OSの動作に依存していたため、BeOSでは画面が破損した
- リトルエンディアンモードの非対応:BeOSの初期バージョンはリトルエンディアンでビデオメモリを更新するが、DingusPPCがそのハードウェア機能をサポートしていなかった
- HFSボリュームのマウント問題:BeOSはMac OSより厳格にHFSのデータ構造を検証するため、
machfsPythonライブラリで生成したボリュームが正しくマウントできなかった
これらの修正を通じて浮かび上がった構造的な知見が興味深い。DingusPPCはMac OSの動作に依存した実装になっており、独立して開発されたBeOSを動かすことで初めて露わになる問題が多数あった。BeOS対応という作業が、エミュレータ全体のハードウェア精度向上に寄与した格好だ。
さらに著者は、BeOS上で動くPower MacエミュレータのSheepShaverも動作させた。SheepShaverはもともとBeOS向けに開発されたPower Mac互換レイヤーで、現在はInfinite MacにもmacOS上のエミュレータとして組み込まれている。ROMの物理メモリマッピングに関するエッジケースを修正する必要があったものの、「ブラウザ→DingusPPC(PowerMacエミュ)→BeOS→SheepShaver(PowerMacエミュ)→Mac OS」という入れ子構造を動かしたことになる。
これらのDingusPPC向けパッチはすべてアップストリームにマージされており、著者は「現時点でDingusPPCはPowerPC版BeOSを動かせる唯一のエミュレータになったと思う」と述べている。
タイムボムを回避する
開発者向けリリースDR8.2(Power Mac向けBeOS最初のバージョン)には、1997年4月1日以降にブートできなくなるタイムボムが仕込まれていた。フォントレンダラのライセンス問題に起因するもので、Be社が無期限に配布できないという事情があった。この問題はDR8.3で解消されたが、著者はInfinite Macの「カスタム日付サポート」機能を利用し、DR8.2を起動する際は動作する日付をハードコードすることで対処した。レトロOSエミュレーションならではの、時代を超えた障壁だ。
2026年の目で見たBeOS
著者はBeOSを実際に使った率直な印象も記している。
速いのは今も印象的だという。ライブウィンドウドラッグがMac OS X以前のMac OSには存在しなかったことを思えば、起動もUIの反応も快適だ。POSIXサブシステムとUnixシェルも現代的な使い勝手で、ターミナルで躊躇なく作業できた。スクリーンショット撮影や音声付き動画録画といった機能もInfinite Mac側に新たに加わり、当時の雰囲気を記録・共有しやすくなっている。
一方で、BFS(Be File System)のファイル属性とライブクエリ——ファイルに任意のメタデータを付与し、そのメタデータをリアルタイムに検索できる仕組み——は技術的に興味深いものの、全体としてはデベロッパー向け・未完成感の強いシステムという印象だ。同時代のBeのホームページは開発者向けリリースノートや社内バグトラッカーの話題が前面に出ており、サードパーティソフトウェアも「バージョン0.1」な雰囲気のものが多かったという。
UIについては、独特のタブ付きウィンドウタイトルはビジュアル的に面白いが、ドラッグ可能な領域が狭くなる欠点がある。デフォルトカーソルが手のアイコンというのも、どのピクセルがホットスポットなのかわかりにくい。全体としてはWindows風とMac風が混在した、統一感のないUIに映ったとのことだ。
NeXTSTEPとの比較では「より荒削り」という評価だ。NeXTは68K・Intel・PA-RISCなどに対応するfatバイナリをサポートしていたが、BeOSはPowerPCとIntelで別々の実行ファイルが必要で、さらにBFSがホストのエンディアンに依存するためPowerPCで書かれたCD-ROMをIntelマシンで読めないという問題もあった。Appleが最終的にNeXTSTEPを選んだ理由が、使ってみて改めて腑に落ちる、というのが著者の感想だ。
Infinite Macでは複数のBeOSバージョンをブラウザからすぐに起動でき、プリインストールされたソフトウェアで遊んだり、Internet ArchiveのCD-ROMを挿入したり、作業内容を保存したりできる。当時を知る人にも、名前だけ聞いたことがある人にも、一度触れてみる価値のある環境が整った。
詳細はInfinite Mac: BeOSを参照していただきたい。