大学時代にやった3人での3週間のグループプロジェクトを思い出すなぁ。選べるトピックがいくつかあって、その中には非常にシンプルなオペレーティングシステムをゼロから作るっていうのもあったんだ。教授に、MINIX3をRaspberry Piにポートすることはできないかって聞いたら、(BeagleBoardにARMポートがあったから)OKしてくれたんだよね。最初は割と簡単なプロジェクトのはずだったのに、予想外の技術的な問題がたくさん出てきて、すごく大変だった。一番厄介だったのは、Raspberry Pi 3がスーパーバイザーモードじゃなくてハイパーバイザーモードで起動しちゃったこと。QEMUのRaspberry Piエミュレーションの精度も当時はひどくて、OS開発にはほぼ役に立たなかったんだ。これを解決するのに、低レベルのハードウェアデバッグに1週間もかかったのを覚えてる。最終的には、Raspberry Pi 2と3で動作するUART、GPIO、フレームバッファドライバを持つ動作するポートを完成させたよ。実際のハードウェアでポートを使ってプレゼンを行ったんだけど、ramdiskからビットマップを表示して、スライドを前後に移動させるためにGPIOピンを監視するシェルスクリプトを使ったんだ(必要に応じてナイフでピンをショートさせてた)。オリジナリティだけで言えば、グループの中で一番クールなプレゼンだったと思うし、そのSDカードの画像はまだどこかに残ってるはず。
(2020)