如何在MINIX 3.2.1中修改命令以便使用我自己的系统调用?

时间:2014-08-11 14:02:20

标签: fileserver minix rmdir netbsd

晚上好,大家好!

我在 minix 3.2.1 上做作业,我被要求创建一个新的系统调用, my_rmdir ,其行为与 rmdir 完全相同,但也会打印已删除目录的名称。另外我应该修改系统的源代码,所以当我给出 rmdir 命令时,系统应该调用我自己的 do_myrmdir <而不是调用 do_rmdir 函数。 / strong>功能。

过去,我使用 mkdir 命令做了同样的功课但是一切都很简单,因为 mkdir 被正确宣布为minix风格并且我做了更改

/usr/src/servers/vfs/proto.h
/usr/src/servers/vfs/open.c
/usr/src/servers/vfs/request.c
/usr/src/servers/vfs/table.c
/usr/include/minix/callnr.h

一切都很顺利。但是现在,我认为由于 NETBSD代码注入,我有点迷失。

此外,重点还在于从头开始创建一个新的系统调用,因为首先我没有这方面的知识,其次我需要进行的更改非常小。
我遇到的首要问题是我无法找到声明原始 do_rmdir 的位置以及它与 rmdir 命令的关联方式。

/usr/src/servers/vfs/table.c 文件第58行

do_unlink,  /* 40 = rmdir   */

让它更加混乱

任何帮助或想法?

如果您需要更多信息,请询问。

我是论坛的新手,我试图正确地问,谢谢你的理解。

1 个答案:

答案 0 :(得分:0)

好的,我知道了!

rmdir 命令调用 do_unlink 功能,并根据用户权限,请求 rmdir 取消关联命令。不同之处在于取消链接可以做一些危险的事情,所以它只能用于管理员。