【问题标题】:Safer Alternative to System Call Hijacking?系统调用劫持的更安全替代方案?
【发布时间】:2011-09-13 09:54:53
【问题描述】:

我在之前的post 中提出了一个更笼统的问题,但我重新发布以使问题更具体。

有人知道重定向硬盘 I/O 的另一种方法吗?我需要能够在不中断系统调用的情况下将磁盘上的读/写操作定向到另一条路径。

必须有另一种方式。

我认为一种方法是在写入后将目标文件复制/移动到另一个路径。但是,我仍然需要重定向对该文件的读取访问。有没有办法将一个文件挂载到另一个文件上,这样硬盘驱动器的物理头就可以访问移动/复制的文件?

感谢您的任何反馈。

【问题讨论】:

  • 好的,所以我刚刚阅读了有关硬链接的内容。这可能是一种方法......但它会加快读取访问速度吗?换句话说,磁盘头是否必须将自身定位在硬链接上,然后在实际读取文件数据之前重新定位到实际文件上? Linux 硬链接是否存储在具有实际文件地址的文件系统数据结构(在 RAM 中,访问时间为 O(1),如数组)中,以便磁盘头可以直接访问寻址文件?
  • 五个小时前我发现我无法跨分区创建硬链接。可能有使用UnionFS 来创建硬链接或类似的解决方法。有人知道吗?
  • 我设置了这个新的thread。这是关于unionfs的。我需要一些帮助来修改它的一些代码。如果有人可以提供建议,我将不胜感激。

标签: linux-kernel


【解决方案1】:

做你想做的最简单的方法可能是实现一个覆盖另一个文件系统的文件系统。

您的文件系统将成为所有readwrite 调用其中文件的第一个调用端口,并且它可以根据需要重定向它们。这将与overlay / union filesystems 以类似的方式工作(尽管它应该更简单,因为您不需要尝试处理多个底层文件系统)。

【讨论】:

  • 感谢您的意见。实际上,我发现我可以使用wrapfs 来完全按照您所说的去做。但是,我在想也许联合文件系统是一种更好的方法。我可以创建一个从一个分区到另一个分区中的目标文件的硬链接,这将为我处理“重定向”。你知道是否有一个联合文件系统可以做到这一点吗?再次感谢! :)
  • @rb3:我认为这不会起作用 - 在创建硬链接之前和之后打开文件的进程会打开不同的文件,这会破坏文件系统的语义。
猜你喜欢
  • 2013-03-30
  • 2020-06-05
  • 2018-09-10
  • 1970-01-01
  • 1970-01-01
  • 2013-06-23
  • 2016-03-15
  • 2014-01-22
  • 1970-01-01
相关资源
最近更新 更多