有没有我可以在内核中使用的功能列表?

时间:2019-12-12 17:51:52

标签: linux

我正在尝试开发一个新的系统调用并将其添加到内核中,但是由于包含syscall方法实现的c文件只能使用驻留在内核地址空间内的函数,因此我敢肯定我可以不要使用popen,stat等方法。 我在Internet上做了一些研究,但是找不到任何可以使我在内核中使用的功能的机器。

1 个答案:

答案 0 :(得分:1)

可能需要克服的最大差异(其中包括许多差异)是:内核未与libc链接。因此,请看libc提供的所有内容。你什么都没得到...

...好吧。 libc提供的某些功能实际上是在内核本身内部实现的。您需要包括这些标头的内核版本:

#include <linux/[header file].h>

要了解内核中可用的功能,您需要查看内核源代码树的头文件中定义的功能。

需要记住的其他几点:

  • Linux内核是使用GNU C而不是严格的ANSI C编程的,这是有道理的:正如某些人很快会指出的那样,Linux只是内核,GNU就是其他所有内核。包括GCC编译器。
  • 没有简单的浮点数学运算。通常情况下,内核会促进浮点指令的使用,但是内核所使用的机制并不容易在内核本身上使用。有关更多信息,请参见here

关于该主题的一本好书是Linux Kernel Development by Robert Love(我绝不隶属;这只是一本好书)。