ES-VMに関する小さなQ&A集 #1
(0)
- 実際にこういう質問や問い合わせがあったというわけではなく、Q&A形式で書けば読みやすいと思ってそうしているだけです。
(1)
- [Q:0001]なんか第一世代OSASKのころは、今回のようなVM経由じゃなくて、一発変換タイプのドライバを多数そろえるみたいなこと言ってなかったか?そんでもって、その上で、今回のようなVM形式のほうがいいんじゃないかみたいな提案があっても、それだとよくないとか言ってなかったか?
- [A]うう、いきなり核心的なツッコミですね。そうなのです、おっしゃるとおりです。私はN^2個のエミュレータドライバを整備する気でいました、あのときは。だって組み合わせによっては、変換がすごく簡単に行ける場合もあるだろうと思ったからです。しかし私もそれから寿命を20年ほど消費して残りが気になってきたので(註あり)、そういう効率第一かつ実装の苦労を軽視したようなプランは見送って、間にVMをはさむ合理的な設計に切り替えました。つまり前に私に指摘してくれたあの人のほうが断然に正しかったわけです。
- そもそもES-VMはもともとはエミュレータOSをやるために考え出されたものではなく、JITコンパイラを効率よく作るためのものです。今回は、それを流用するだけでエミュレータOSっぽいものが簡単に(まあ前よりは簡単という程度ですが)作れるのではないかと、まあそれだけのことなのです。
- それに技術的には、間にVMが入っている構成のほうが面白いですよね。うまくVMを設計する必要があるので、技術的な難易度は少し上がっているはずです。
- (註)私は難病とかになっているわけではありません。単に一般的なこととして、まあ人生80年程度だとしたら、プログラムをガシガシ作り続けられるのは後どのくらいだろうとか、エミュレータOSもどきができてもその直後に死んだら、使いまくって楽しい思いをする時間がないじゃないかとか、まあそういうことをなんとなく思っただけです。
- [Q:0002]大規模システムは嫌だとか言っているけど、まあ日頃のお前を見ていればその気持ちは本気なんだろうけど、ぶっちゃけ、どのくらいのサイズのものを作るつもりなんだ?あと、どのくらいの時間をかけるつもりなんだ?
- [A]おお、これは即答が難しそうな質問ですね。・・・ええとですね、私としては1年程度で、簡単なコンソールアプリに限定して、Windowsと「はりぼてOS」とで相互に変換できるとか、なんならMS-DOSもOKにしてみるとか、そのくらいのことができるようになりたいとは思っています。
- (えー、なにそれしょぼいって思うかもしれませんが、そこまでできれば、あとは対応APIを増やしていくだけじゃないですか。それは本質的じゃないというか、私がいなくてもAPIに詳しい人が見よう見真似で続きを作れるというか、まあそんな感じですよね。だからそれは急がないでやります。)
- でも、プログラミング言語も作りたいので、そっちに脱線したら1年くらいは遅れるかもしれません。
- サイズですが、上記仕様のものなら、まあシステム合計で100KBとか200KBくらいで何とかなるんじゃないかなーくらいに思っています。見積もりが甘いかもしれませんが・・・。
- [Q:0003]エミュレーションはどのくらいの深さからやるつもりなんだ?qemuみたいに、ページングもセグメンテーションも全部忠実にエミュレーションするとか?
- [A]それはエミュレーション対象によりけりです。たとえばWindowsアプリなら、アプリがセグメンテーションを使うことはないでしょうし、ページテーブルをAPI呼び出しなしで自由に変更することはないと仮定していいでしょう。例外を利用して高度な処理をすることもまずないでしょう。こういう感じで、環境を限定すれば、深いエミュレーションは必ずしも必要ではありません。
- 一方で、qemuみたいにOSを起動して遊びたいみたいな場合は、CPUのモード切替とかも含めた広くて深いレベルのエミュレーションが必要になります。そういうエミュレーションを前提にして、FDのイメージやISOファイルから.exeファイルを作ることも可能でしょう。この場合、その.exeを実行すると、元になったFDイメージやISOから起動した場合がエミュレーションされることになります。
- [Q:0004]これ、もしできたら、WinアプリをES-VMバイトコードにしてさ、そこからまたWinアプリにして、それをまたES-VMバイトコードに変換して・・・みたいなこともできるんだよね?
- [A]もちろんできます。相当に遅くなってデカくはなりそうですが、とにかく原理的には可能です。そういう場合はちゃんと検出して特別処理して元通りになるみたいな、そんな興ざめでつまらない機能を載せる気はないのでご安心ください(笑)。っていうか、こういうのを試してみたくなるのって、いわゆる「男のロマン」みたいなやつですよね。私もそういうのは好きです。
こめんと欄