Sega 32XでLinuxを動かす:ハードウェアの同期プリミティブなんて飾りです!
Linux on the Sega 32X. Who needs hardware synchronization primitives anyway?
Linux on the Sega 32X. Who needs hardware synchronization primitives anyway?
Sega 32X上でLinuxを動作させるという驚きのプロジェクト。ハードウェアレベルの同期プリミティブに頼らずにどうやって実装したのか、その技術的裏側に迫ります。
Linux for Jaguarの移植で様子見をしたあと、Sega Genesis用の32Xアドオンでも同じような結果を出そうと試してみたんだ。結局、ハードウェア同期プリミティブがなくてもSMP対応のLinuxを動かせるってことがわかったよ: https://github.com/cakehonolulu/linux_ports
これはワクワクするね!I/Oについては何も見当たらなかったけど、シリアルポートをターミナルアクセス(あるいはコンソールのキーボード入力用)に使ったりできないかな?まだまだ開拓の余地がありそうだ。Sega CDを使えばRAMが増えて、2つ目の高速な68kも手に入るしね。
最近の投稿を見てると、2000年代前半にみんながコンピュータらしきものなら何にでもLinuxをブートさせようとしていた頃を思い出すよ。
EmudevのDiscordで少し話したけど、HNでこれを見かけるとは驚いたよ(私はそこでMask of Destinyっていう名前でやってる)。これ、実機でテストしたのか気になるな。以前も言ったと思うんだけど、自分の理解ではSH-2はカートリッジ領域[0]に書き込めないはずなんだよね。これだと「SSF2」マッパーを拡張したとしても、カートリッジをRAMとして使うのは難しそうだけど、そうじゃないことが分かったのか、それともエミュレータ上でのテストだったのかな?
[0] - このSpritesmindのフォーラムスレッドを参照: https://web.archive.org/web/20190209161834/http://gendev.spritesmind.net/forum/viewtopic.php?t=1265 (スクレイパーの大量アクセスで本家サイトがほぼ使い物にならないからInternet Archiveのリンクを貼っておくね)
Hitachi SuperHアーキテクチャに馴染みがない人のために例えると、THUMBを想像してみて。ARMはTHUMBを開発する際、実際にHitachiから特許をいくつかライセンス供与されていたくらいだしね。SuperHアーキテクチャはTHUMBと全く同じものじゃないけど、共通点も多いよ。主に16ビット命令を使う点や、3レジスタではなく2レジスタを指定する命令である点とかね。ただ、ブランチディレイスロットみたいな、当時のRISC特有の「ジャンク」な仕様も含まれてるけど。