Infinite Mac: BeOS
Infinite Mac: BeOS (blog.persistent.info)
要約
Infinite Macのウェブサイトに、ブラウザ上でBeOSの様々なバージョンをエミュレートして実行できる機能が追加されました。著者は、BeOSのエミュレーションに必要な技術的な課題と、それを解決するために行ったDingusPPCエミュレータへの修正について詳述しています。この作業は、他のオペレーティングシステムの互換性向上にも貢献したと述べています。
全文翻訳
Infinite Mac: BeOS
要点: Infinite Macで、多くのBeOSバージョンをブラウザ上で実行できるようになりました。このサイトでは、1984年から2005年までのMacintoshシネマティックユニバースを体験できます。BeOSのインストールはMacのそれと同様に、瞬時に起動(大きなディスクはストリーミング)、Infinite HDのプリインストールソフトウェアの利用、Internet ArchiveからのCD-ROM挿入、そして「Saved HD」ドライブへの作業保存が可能です。
BeOSは、マルチメディア中心のマルチタスク・マルチスレッドOSで、90年代半ばにはPower Macintoshにも移植されました。Apple自身もBe社(BeOSの開発元)の買収を検討するなど、Macコミュニティに大きな感銘を与えました。Appleが次世代OSを探していた物語を追っている方なら、これは採用されなかった道がどのようなものであったかを知る機会となります。
[画像: Infinite Mac内で実行されているBeOS R5。GL Teapot、Mandelbrot、Gobe Productive、Terminal、画像ビューア、CPUモニターが表示されている。]
BeOSの実行
Infinite Macでの前回のやや手間のかかった(しかし満足のいく)プロジェクトの後、私はより迅速な成果を求めていました。BeOSは以前から私のレーダーにあり、(A/UXとは異なり)個人的な繋がりもありました。秋葉原でBeBoxを見かけ、BeViewでMacをそれに似せ、最終的にはPower Macintosh 8500でBeOSをデュアルブートしたことを覚えています。私が既に統合していたエミュレータであるDingusPPCは、BeOSの実行に関して順調に進んでいたため、サイトへの追加は追加ディスクイメージの準備が主になると思われました。
当初は期待通り単純な作業に見えました。Power Macintosh 7300(公式にサポートされていたPower Macの一つ)の設定を追加し、インストールCDを見つけ、ディスクイメージを作成し、すぐに実行できる状態になりました。しかし、より深く使い込み、追加バージョンをインストールし始めると、多くの小さなバグやエッジケースが見つかり始めました。
- ADBエミュレーションのバグにより、BeOSのブートローダーは全ての修飾キーが押されていると誤認識し、毎回(醜い、PC BIOSのような)パーティション選択画面が表示されました。
- 画面深度を変更する際、ビデオコントローラーとデジタル-アナログコンバーターの2つのハードウェアコンポーネントに通知する必要があります。DingusPPCは、Mac OSがこれらの通知を送信する順序に誤って依存していましたが、BeOSは逆の選択をしたため、表示が破損しました。
- BeOSの初期バージョンはリトルエンディアンモードでビデオメモリを更新していました1。DingusPPCは、そのハードウェア機能のサポートが不足していました。
- BeOSの後期バージョンはHFSパーティションをマウントできましたが、私が
[machfs](https://github.com/mihaip/machfs)Pythonライブラリ経由で生成したボリュームで問題が発生していました。BeOSは、一部のデータ構造をどのように埋めるべきかについて(正しく)より厳格であったことが判明しました。 - その他多数 多数 多数 – 過去1ヶ月に私がDingusPPCにアップストリームしたコミットのほとんどは、BeOSの互換性向上を目的としたものでした。
[画像: Infinite MacがBeOS R5をエミュレートし、そのBeOS R5がSystem 7.6.1を実行してSpeedometerを表示している様子。]
両方の世界の最良の部分?
SheepShaverは、現在も存在するPower Macintoshエミュレータであり(Infinite Macもこれを組み込んでいます)、BeOS上で誕生しました。別のレイヤーのインセプション/エミュレーションの楽しさのために、これも動作することを確認したかったのです。結果として、ROMが物理メモリのアドレスにマッピングされる方法のエッジケースに依存しており、DingusPPCがそれを正確にモデル化していなかったため、互換性修正が必要でした。
これらのバグ修正のほとんどにはパターンがあります。DingusPPC(およびInfinite Mac)は主にMac OSの実行に焦点を当てており、その結果、Mac OSの癖や実装上の選択に意図せず依存するようになりました。独立して開発されたオペレーティングシステムを混在させることで、新しいパスが実行され、エミュレートされたハードウェアの精度が向上しました。はっきり言えば、DingusPPCは箱から出してすぐにかなり良好でした。そのメンテナーたちに感謝します。この作業により、PowerPC版BeOSを実行できる唯一のエミュレータ2になったと信じています。また、MkLinux(私も思い出があります)やRhapsodyのような代替オペレーティングシステムの起動にも役立つことを期待しています。
[画像: Infinite Macのカスタムインスタンスダイアログ。BeOSコントロールの外観になっている。]
Infinite Mac側では、「BeOS」の外観を持つカスタムコントロールの追加や、ライブラリ用のソフトウェア収集など、明らかな変更がありました。また、OSがブラウザウィンドウに一致する画面解像度をプリセレクトするように、ディスク上に動的に生成されたコンテンツをオーバーレイする必要もありました(これはA/UXでも行われたのと似ています)。AIエージェント(私にとってはまだCodex)は、この種の細かいリバースエンジニアリングタスクに再び役立ちました。OSが画面サイズのファイルディスクに保存されていることを観察することは一つのことですが、特にリリースが進むにつれてフォーマットが変化したため、そのニュアンスをすべて再現できることは別のことです。
Power Mac向けの最初のBeOSバージョンであるDeveloper Release 8.2には、1997年4月1日以降の起動を妨げるタイムボムがありました。これは単に緊急性を生み出すためだけでなく、Be社が永続的に配布できないライセンスフォントレンダラーを同梱していたためです。DR8.3でこれが修正されましたが、その注目すべき最初のバージョンを起動可能にするために、ディスクを選択する際に動作する日付をハードコードするためにカスタム日付サポートを利用することになりました。
BeOSの印象
BeOSが現役だった頃に少し触ったことはありますが、十分な期間使用して「これは速い。サードパーティ製ソフトウェアが全部恋しい」以上の意見を形成した記憶はありません。About This Particular Macintoshには、Be社の最初のおよび2度目のMacworld Expo Bostonへの登場、そしてR3とR4.5のレビューなど、当時の記事があります。これらは興味深い読み物です。Be社自身が公開したこのビデオには、彼らが強みと考えていたもののウォークスルーも含まれています。
2026年の視点で見ると、その速度には今でも驚かされます。起動も使用も速く、特に同時代のMac OSリリースと比較すると、それらははるかに少ない機能しか持っていません(例: Mac OS Xまでライブウィンドウドラッグは登場しませんでした)。POSIXサブシステムとUnixライクなシェルもモダンに感じられます(A/UXとは異なり)。ターミナルを使って調査するのに問題はありませんでした。多くのイノベーションもありますが、その一部(属性とライブクエリを持つBFS)は、その他([レプリカント](https://asleson.org/public/mirrors/www.be.com/documentation/User's%20Guide/01_basics/Basics03_Deskbar.html#:~:text=Show%20Replicants.%20A%20replicant%20is%20a%20%22live%20view%22%20that%20can%20be%20dragged%20out%20of%20its%20application%20and%20dropped%20onto%20the%20desktop.%20Show%20Replicants%20tells%20all%20replicants%20to%20display%20their%20draggers%2C%20the%20little%20handles%20that%20you%20use%20to%20grab%20the%20replicant%20view.)はウィジェットの前身ですが、私はそれらの使い道が思いつきませんでした)よりも興味深いです。
開発者向けで、まだ構築中のシステムという感じもします。同梱されているアプリの多くは技術デモ(ユタティーポットは誰でも好きですが)ですが、当時のBeのホームページは開発者リリースノートに直接リンクし、CodeWarriorのリリースやバグトラッカーへのアクセスについて議論していました。未完成な性質はサードパーティ製ソフトウェアにも及びます。私はこのAmiga雑誌のCDでBeOSのソフトウェアをいくつか見つけましたが、そのほとんどは文字通りまたは比喩的に「バージョン0.1」という感じでした。公平に言えば、Gobe Productive(元ClarisWorksチーム製)のような、より完成度の高いソフトウェアも見つかりました。これはInfinite HDで試すことができます(できれば後期のOSバージョンで)。
インターフェースは当時としては斬新でしたが、どのように持ちこたえたかは疑問です。特徴的なタブ付きウィンドウタイトルはクールですが、ドラッグ可能な領域が狭いため、ウィンドウを移動したいたびに、より深く考える必要がありました。また、デフォルトのカーソルが手であるため、従来の矢印よりもクリックの精度が低く感じられます(「指」のピクセルのどこがホットスポットなのか?)。UIの他の部分は、StartメニューをエミュレートできるDeskbar4や、メニュー項目のAltキーアクセラレータ、しかしスプリングロードフォルダや空間的なFinder Trackerなど、完全には一貫性のないWindows/Macハイブリッドのように感じられます。
Trackerといえば、Be社がそれをオープンソース化したこと(そしてオープンソース版からの変更を取り込んだこと)さえ知らなかったことに気づきました。これはBe社がインターネットアプライアンスに方向転換した頃でした。露出するのがフルスクリーンのブラウザアプリだけなら、ファイルマネージャーにエンジニアリングリソースを投資する必要はありません。このTracker開発者へのインタビューには、さらに詳しい背景が書かれています。
[画像: OPENSTEP 4.0とBeOS DR8.2がInfinite Macのディスクブラウザで並べて表示されている。]
あなた自身の比較をどうぞ:NeXT vs Be
比較すると、NeXTStepはより成熟しているように感じられます。同様の変遷(プロプライエタリハードウェアから汎用PCへ、企業戦略の変更)を経ましたが、おそらくより多くの時間を費やしたため、物事をより優雅に処理しました。例えば、NeXTは「ファット」バイナリをサポートしており、68K、Intel、PA-RISCなど様々なアーキテクチャで実行できました。BeOSでは、これらは個別の実行可能ファイルである必要があり、ユーザーがどちらを実行するかを選択する必要があり、配布が複雑になりました(これにより、Infinite HDに含めるソフトウェアを見つけるのがより困難になりました)。さらに悪いことに、CD-ROM上のディスクパーティションも並行して持つ必要がありました。BFSはホストのエンディアンネスを使用していたため、PowerPCインストールで書き込まれたディスクはIntel製のもの(またはその逆)で読み取ることができませんでした。しかし、私のNeXT支持の偏見は、最終的にAppleがどちらのOSを選んだかを知っていることに起因するのかもしれません。
その他のサイト改善
前回の更新から間もないですが、いくつか品質向上のための改善を詰め込みました。これで、エミュレートされたマシンの画面のスクリーンショットやビデオ(音声付き)を録画できるようになりました。これは、画面に表示されていたものの直接ダンプであるため、画像コンテンツをキャプチャするための高忠実度な方法を提供します。
[画像: Infinite MacのCD-ROMトレイに多数のシステムCDが表示されている。]
また、RhapsodyやMac OS Xの開発者プレビューなどのオペレーティングシステムCD-ROMのコレクションを拡張しました。これらは現時点では野心的ですが(DingusPPCはまだ実行できません)、私の収集癖を満たしてくれます。これらのCDは、私のCloudflare R2バケットにミラーリングされ、そこから提供されます。Internet Archiveは素晴らしいリソースですが(寄付できます)、そこからのストリーミングはますます不安定になっています。私は問題に加担したくありませんし、スポンサーのおかげで、数ギガバイトを提供できます。
次に何をするかというと、この代替Macのタイムラインがカバーされたので、前日譚を探求する時期かもしれません。
- これが可能だったとは知りませんでした。Appleは一般的にPowerPCを実行し、そのマシン上のすべてのことをビッグエンディアンモードで行っていました。このコントローラー機能に関する特許さえあります。↩
- これに取り組んでいる間に、BeBoxが誕生しました。↩
- しかし、Haikuはそれをほとんどそのまま保存しているようです。そのため、一部の人々には確かに長続きする魅力があります。↩
- 3ピクセル幅のドラッグ可能な領域を見つけて下部に移動させることができればの話です。↩