2011-01-26 6 views
-1

私は意味、。libcのカーネルコードを呼び出す方法は?カーネルは、ユーザランドアプリケーションにその機能を公開する方法(WindowsまたはLinux)

+0

オペレーティングシステムのカーネルは? –

+0

@Paulすべてが何らかの形であれば誰でも。 – lovespring

+0

あなたは、もう少し具体的にする必要があるとしている - それは質問をスタンドとしてだけではあまりにも曖昧であり、あなたがより多くの詳細を追加しない限り、おそらく閉じられます。 –

答えて

1

カーネル関数は、通常、いくつかのレジスタ(システムコールのタイプ、パラメータなど)を埋め、ソフトウェア割り込み(int 0x80)またはsysenter命令(アーキテクチャがサポートしている場合)を実行する形式をとるsyscallsを使用して呼び出されます。あなたは、Linux上でこれをやっている場合は

、あなたはここで1のように、いくつかのLinuxシステムコールのマニュアルを参照してくださいすることがあります:http://bluemaster.iu.hio.no/edu/dark/lin-asm/syscalls.html

確かに他のカーネル(Windowsの)のためのいくつかの類似した文書が存在します。

+0

? – lovespring

+0

基本的にはい。この資料では、Windows http://www.symantec.com/connect/articles/windows-syscall-shellcode –

1

あなたがLinuxの話をしていると仮定すると、あなたはレジスタにあなたの引数を入れて、0x80の割り込み呼び出します。

Windowsは、これは良い記事のように見え、おそらく似ています:

http://www.codeguru.com/cpp/w-p/system/devicedriverdevelopment/article.php/c8035

これの名前は、 "システムコール" これらのリンクを参照してくださいです

等...グーグル

+0

は、MKをありがとうについて少しを示しています。そうですか。 – lovespring

関連する問題