つまり、カーネルがその機能をユーザーランドアプリケーションに公開する方法です。
質問する
439 次
2 に答える
1
Linux について話していると仮定すると、引数をレジスタに入れ、割り込み 0x80 を呼び出します。この名前は「システム コール」です。次のリンクを参照してください。
- http://www.ibm.com/developerworks/linux/library/l-system-calls/
- http://www.linuxjournal.com/article/4048
Windows もおそらく同様です。これは良い記事のように見えます。
http://www.codeguru.com/cpp/wp/system/devicedriverdevelopment/article.php/c8035
など...グーグル
于 2011-01-26T15:43:58.600 に答える
1
カーネル関数は syscall を使用して呼び出されます。これは通常、いくつかのレジスタ (syscall のタイプ、パラメーターなど) を埋め、ソフトウェア割り込み (int 0x80) または sysenter 命令 (アーキテクチャがサポートしている場合) を実行する形式を取ります。
Linux でこれを行っている場合は、次のような Linux syscall のドキュメントを参照することをお勧めします: http://bluemaster.iu.hio.no/edu/dark/lin-asm/syscalls.html
他のカーネル (windows) 用の同様のドキュメントが確かに存在します。
于 2011-01-26T15:41:49.053 に答える