CPUの命令セットの中に、特権命令とそうでない命令があるようですが、実際に例えばLinux上で表示される命令セットの中でどれが特権命令かを確認する方法はあるでしょうか。(当該CPUのIntelのサイト等見てみましたが分かりませんでした)
x86において特権命令と言った場合は特権レベル0でのみ実行できる命令となります。
http://www.intel.co.jp/content/dam/www/public/ijkk/jp/ja/documents/developer/IA32_Arh_Dev_Man_Vol3_i.pdf
149ページにあります。
仮想化における特権命令は、ゲストの動作するユーザーモードでは例外の発生する命令です。
http://www.slideshare.net/gion_XY/xx86
この意味でx86の命令を見た場合、特権レベル3で例外の発生する命令となると思いますが、メモリ保護等様々な条件がいろいろありますので以下から命令セットリファレンスを参照してください。
http://www.intel.co.jp/content/www/jp/ja/developer/download.html#ia32
それに加え、上記スライドにありますが、不足を補う工夫やVTなどの枠組みも必要となるようです。
回答ありがとうございます。具体的に学習を進められそうです。
2015/04/05 19:07:20