为什么不在内核中实现复制操作?

时间:2015-11-27 11:17:03

标签: windows file api filesystems kernel

我的理解是大多数文件IO操作都是在内核中实现的,例如CRUD,移动或删除。但是,文件复制不是作为内核级API实现的。

为了检测内核中的文件副本,需要使用启发式方法(discussion on this approach),例如作为检测文件读取,文件创建和文件写入来自同一用户具有相同的文件名,但路径不同。

为什么copy是用户登陆操作?

1 个答案:

答案 0 :(得分:1)

首先,因为关心两个不同的文件是否具有相同的内容,其中一个文件的内容是直接从另一个文件中复制的,所以是一个用户空间问题,在内核中没有逻辑上的原因。

充其量。

字节是字节。

其次,内核如何区分在两个不同的文件描述符之间复制文件? See the man page for sendfile().为什么内核会跟踪调用用户是否调用sendfile()将文件内容发送到TCP套接字到who-knows-where或另一个文件?

第三,即使内核跟踪复制文件,上帝的好地球上有什么东西这些数据?

如果您关心此类文件复制事件,请设置审核。