3

对于大学作业,我们必须向 Linux 内核添加系统调用。我有“你好,世界”没有问题。在添加更复杂的调用方面,我知道(或至少认为)我不能使用 malloc 之类的 C 函数,但我想知道我可以使用 syscall() 来使用其他系统调用吗?

4

1 回答 1

3

内核对几乎所有内容都有自己的特定调用。您无权访问系统调用或<sys/xxxx.h>头文件。

例如,是的,您不能使用malloc(),但可以使用kmalloc()

在旧版本的内核 (2.4) 中,您可以使用syscall()via:syscallN()宏。我很确定它已被删除。

一般来说syscalls()从内核来说不是一个好主意。真正的系统调用只是用户空间进入内核做某事的一种方式,所以如果你已经在内核中,应该有更好的方法来做你想做的事情。

于 2012-10-29T15:28:05.943 回答