3

大学の課題では、Linux カーネルにシステム コールを追加する必要があります。「Hello, World」は問題なく実行できました。より複雑な呼び出しを追加するという点では、malloc のような C 関数を使用できないことはわかっています (または少なくとも考えています) が、syscall() を使用して他のシステム コールを使用できるのでしょうか?

4

1 に答える 1

3

カーネルには、ほとんどすべてに対して固有の呼び出しがあります。<sys/xxxx.h>システム コールまたはヘッダー ファイルへのアクセス権がありません。

あなたの例では、はい、使用できませんが、使用malloc()できますkmalloc()

古いバージョンのカーネル (2.4) では、次の方法で使用できますsyscall():syscallN()マクロ。削除されたので間違いありません。

一般syscalls()に、カーネルからは良い考えではありません。実際、システム コールはユーザー空間が何かを実行するためにカーネルに入る方法にすぎません。そのため、既にカーネルを使用している場合は、やろうとしていることを実行するためのより良い方法があるはずです。

于 2012-10-29T15:28:05.943 に答える