【发布时间】:2015-01-09 12:03:50
【问题描述】:
所以我才刚刚开始定制 FreeBSD 内核,可惜可用于 FreeBSD 开发的资源稀缺。
我正在编写一个系统调用,其中应该读取一个文件(可选),根据输入读取物理内存块并将结果写入另一个文件(通常是“filename.results”)
我的问题是:
标准 C 库:似乎它们无法用于内核模块编程,所以我应该如何替换诸如 write 和 read(以及 strlen 和 string.h 中的其他一些函数)之类的函数?
Malloc 函数:它似乎接受 3 个输入而不是 1 个,即使在阅读手册页后我也不知道如何填充第二个变量(尝试 FOO 但返回符号链接错误)。
我还对您认为对这个例程有用的任何其他主题感兴趣。
【问题讨论】:
-
我自己对内核开发知之甚少,但我读过一点。关于 C 库和 malloc 中的函数。内核本身应该有它自己需要的所有功能的变体。尝试在内核代码中搜索您需要的功能。就像一击一样尝试检查此链接。 freebsd.org/doc/en/articles/geom-class/kernelprog.html 如果不阅读一些内核源代码,您很快就会来。祝你好运..
-
我还发现了这个文档,它在名为 sys/libkern.h leidinger.net/FreeBSD/src_doc/libkern.pdf的文件中描述了一些不同的功能@
标签: c operating-system filesystems freebsd system-calls