1

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
4

1 に答える 1

4

はい、それはあなたが得たものです(Linuxシステムコール番号64ビットLinuxシステムコール番号):

  • 11:、sys_exevceまたはexecのシステムコール
  • 45:sys_brk、mallocの下にあるもの
  • 33:sys_access
  • 192:lgetxattr

等々。

于 2013-01-16T14:27:53.357 に答える