Linuxマシンでシステムコールが呼び出される方法を理解しようとしています。このために、QEMUエミュレーターでLinux3.0.43カーネルを使用してゲストマシンを実行しました。
システムコール番号を知るために、qemuに割り込み関数を組み込みました(---あまり重要do_interrupt_all()
ではありません)。target-i386/seg_helper.c
基本的に、int 0x80割り込みを受け取るたびに、EAXレジスタに値を出力します。実行の出力は、システムコール番号を示しました。私は、execシステムが最初にinitプロセスを呼び出すことを期待していました。次に、フォークといくつかの`brkシステムコール。しかし、それが私が得たものであるかどうかはわかりません。ここに最初の100のシステムコール番号を印刷しています。私のゲストは64ビットマシンです。これが私のカーネルのオンラインコード探索です。
: 11
: 45
: 33
: 192
: 33
: 5
: 197
: 192
: 6
: 33
: 5
: 3
: 197
: 192
: 192
: 192
: 6
: 192
: 243
: 125
: 125
: 125
: 91
: 122
: 45
: 45
: 197
: 5
: 5
: 5
: 5
: 221
: 141
: 141
: 6
: 5
: 5
: 5
: 5
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 197