我们正在使用 Python Fuse Library 实现一个文件系统。我们为此文件系统实现了“快照”功能 (api)。我们现在想通过像 (ls,mkdir,etc) 这样的系统调用来调用这个快照 API - 快照?我们如何创建这个新的系统调用?
问问题
384 次
2 回答
1
不幸的是,您不能只向 FUSE 添加系统调用,因为 FUSE 依赖内核来完成系统调用的繁重工作。您需要将其添加到内核中。
另一方面,你确定你需要一个完整的系统调用,或者你能在用户级别实现你需要的吗?(例如,ls
, iereaddir()
实际上不是系统调用,它是一个用户级库例程,它调用一些其他系统调用,例如getdents()
。)
如果您只需要对系统上运行的所有程序进行调用,请将其添加到标准库之一中,或者使用LD_PRELOAD
.
要向内核添加系统调用,请参见此处: http ://www.csee.umbc.edu/courses/undergraduate/CMSC421/fall02/burt/projects/howto_add_systemcall.html
有关LD_PRELOAD
方法,请参见此处:
什么是 LD_PRELOAD 技巧?
于 2013-08-12T08:24:44.170 回答