ツイッターで、SciresM氏がMesosphereを実装したNintendo Switchで起動ロゴ表示をしている写真を公開していました。
It's a good day :) pic.twitter.com/7Cg0r5drLa
— Michael (@SciresM) July 21, 2020
MesosphereとはAtmosphereのカーネルをNintendo Switchにカーネルとして実装し直したもので、現状は起動ロゴを表示するところまでできているそうです。
Atmosphereは大気のことを指し、全体の総称です。Switchの場合はカスタムファームウェア全体のことを指します。
大気のAtmosphereを構成する層(レイヤー)は全部で5つあります。カスタムファームウェアのAtmosphereにも同じように5つの層(コンポーネント)があります。
- Exosphere/ 外気圏: Horizon OSのセキュアモニターをカスタマイズして再実装したもの
- Thermosphere/ 熱圏: ハイパーバイザー(仮想マシン管理プログラム)を実装したもの。Horizon OSが未使用のものをEL2レベルで機能させるためのもの。
- Mesosphere/ 中間層: カーネルをカスタマイズして再実装したもの。EL1レベルで実行される。
- Stratosphere/ 成層圏: システムレベルでHorizon OSをカスタマイズしたもの。カスタマイズされたシステムモジュールなども含まれる。
- Troposphere/ 対流圏: アプリケーションレベルでHorizon OSをカスタマイズしたもの。再起動でペイロードを読み込ませるreboot to payloadもこれに当たる。
ELというのはARMアーキテクチャにあるException Level(例外レベル)のことで、以下の4段階が存在します。
EL0 ユーザーモード
EL1 ゲストOS
EL2 ハイパーバイザー
EL3 セキュア実行環境(TrustZone)モニター
今回のMesosphereはEL1、つまりゲストOSとして動作するコンポーネントになります。
これが最終的に何になるのかですが、Horizon OSと呼ばれるSwitchのOSを一切使わない、完全オリジナルのSwitch用OS開発を目指しているものと思われます。Nintendo Switchのハードウェアだけをそのまま使う、オリジナルOSを実装したSwitchです。Androidで例えれば、カスタムROMのような扱いになるのではないでしょうか。
ハードウェアだけを流用し、そのハードで動作するオリジナルファームウェアを開発するという取り組みは過去のゲーム機でもありましたが、完成してリリースされた例はありません。同じような取り組みを目指すことになるAtmosphereがどこまで開発が進むのか非常に楽しみです。ちなみにタイミング的に結びつけてしまう方がいるかもしれませんが、今回の件は対策基板のMarikoとは一切無関係です。Marikoで動作させるために開発されているわけではありません。
なんとなくPSPのUtopia思い出しました