私は、Fabrice BellardによるJavascriptでのx86仮想マシンの実装に触発されました。そして、Linuxカーネルを実行できる最も単純な仮想マシンを書いてみたいと思います。これは純粋に教育的な取り組みであり、これを可能にするコードを理解して共有する以外の目的はありません。
x86の仕様を一瞥したところ、完全なx86命令セットをエミュレートできる仮想マシンを作成しようとして、自分自身を最深部に投げ込んでいるのではないかと思います。代わりに、エミュレートできるより単純なアーキテクチャを探しています。
x86アーキテクチャをエミュレートする方法を尋ねるこの質問を読みました。答えは、ARMアーキテクチャなどのより単純なものから始めることを示唆しています。私の質問はより具体的です:Linuxカーネルを実行できるようになるエミュレートを試みることができる最も単純なアーキテクチャは何ですか?
単に命令をホストマシンに返すのではなく、マシン全体を完全にエミュレートすることに興味があります(たとえば、x86エミュレーターを作成している場合は可能です)。私はかなりの量の16ビットアセンブリの知識といくつかのオペレーティングシステム理論のバックグラウンドを持っているので、これは十分な作業で十分に手の届くところにあるはずです。