仮想化を理解する一環として、私はKVMのサポートを拡張し、新しい命令を確定しようとしています。この命令は、以前に使用されていないオペコードを使用します。 ref-ref.x86asm.net/coder32.html。未使用のx86オペコードのlinux KVMで新しい命令を実装する方法
ここで、 'CPUID'(vm-exitを引き起こす)のような命令を考えてみましょう。例えば、 'NEWCPUID'という新しい命令を追加したいのですが、特権のCPUIDに似ていて、ハイパーバイザーではありますが、実装は異なります。
いくつかのオンラインリソースを調べた後、新しいシステムコールを定義する方法を理解できましたが、LinuxソースコードのすべてのファイルにNEWCPUIDのコードを追加する必要はありませんか? 'find'コマンドに頼るよりも良い方法はありますか?
私はチャレンジの下で直面しています: 1.コードを追加するには、Linuxのソースコードのどこにある必要がありますか? 2.この新しい命令を以前に使用されていなかったオペコードにどのようにマップできるかわかりませんか?
私はこの分野に全く触れておらず、これを学びたいと思っています。これを達成するには正しい方向が必要です。プロセスを説明しているリファレンス/チュートリアル/ブログがあれば、大きな助けになるでしょう!
AFAIK、KVMは実際にエミュレーションを実行しません。あなたはどのように「新しい指示」を加えることを提案していますか?無効なオペコードを使用してCPU例外をトリガーしようとしていますか? – tangrs