【问题标题】:freebsd add custom syscall by compiling the kernel?freebsd 通过编译内核添加自定义系统调用?
【发布时间】:2015-04-22 03:09:56
【问题描述】:

对于学校作业,我必须将自定义 helloworld 系统调用添加到 freebsd。我使用以下链接作为我的指南:http://members.tripod.com/s_mathur/bsdhowto.html 好的! 在第二步中我遇到了问题:root 没有运行它的权限,所以我使用了:“make sysent”。似乎还可以。 第 4 步说: 4. 修改 Makefile 以包含 sys_hello.c 等并重新编译内核。!!! 哪个makefile?以及如何编译它以及如何调用 syscall hello? 提前 tnx

【问题讨论】:

    标签: freebsd


    【解决方案1】:

    如果 sys_hello.c 包含您的系统调用实现 - 并且它在 sys/kern/sys_hello.c 中 - 然后将此文件添加到 conf/files。搜索例如。 “kern_fork.c” 并以类似的方式添加 sys_hello.c。之后,重建并重新安装内核和世界(make buildkernel buildworld installkernel installworld);世界重建对于将用户空间部分放入 libc.so 是必要的。至于调用 - 好吧,像调用另一个系统调用一样调用它。您需要在某处添加系统调用声明。

    【讨论】:

    • 是的,sys_hello.c 在 sys/kern 中。但是 sys/conf 中没有 .c 文件,所以它是这个地方。 kern_fork.c 中没有要包含的 sys_hello.h。我该怎么办?
    • sys/conf/files - 字面意思是“文件”,没有扩展名 - 包含要使用的内核源文件列表(除了内核模块,它们是基于 sys/modules/ 中的 Makefile 构建的) .至于 sys_hello.h - 是的,我不知道这个文件来自哪里;只是不包括它?
    猜你喜欢
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 2020-01-17
    • 2011-01-24
    • 2020-05-03
    • 1970-01-01
    • 2016-06-02
    • 2013-09-11
    相关资源
    最近更新 更多