なぜ仮想CPUを利用することにしたのか?
きほん
- [メリット] 仮想CPUにすればアプリのCPU依存性がなくなる
- これからもx86の時代が続くとは限らない、ARMの時代が来るかもしれない。
- [メリット] 仮想CPUを作るのは楽しい
- [デメリット] 仮想CPUを使うと実行速度が落ちる
- JITなどを使えば軽減はできるけど、それでもネイティブコードには到底及ばない。
- どのCPU上で動かしてもエミュレータ上で動作させるような速度にしかならないということ。
- [デメリット] 仮想CPUを作るのに時間がかかる
OSECPU固有の事情から
- OSECPUでは、WindowsやLinux上で簡単にOSECPU用のアプリを動かすということをやりたい。
- prompt>osecpu app みたいにするだけで起動する。
- このとき、この osecpu.exe という実行ファイルはただの単純なアプリで、つまりx86のユーザモードでしか動かない。したがってカーネルモードを利用した保護機構やセグメンテーションを積極活用する保護機構も利用できない。
- これでは相当に貧弱なセキュリティ機能しか提供できないことになりかねない。これではとても「セキュアなOS」とは呼べないだろう。ということで、osecpuは十分な保護機構を持ったCPUエミュレータを内蔵し、アプリはそれを利用して実行する。
- (つづく)