0

我正在尝试构建一个类似 bash 的脚本,它提供了一些功能,例如 ls、pwd、cat 等。在 linux 系统中的 NTFS 上工作。假设我有一个 NTFS 映像,并使用 fopen 将其作为文件打开。然后,我读取了一些扇区,例如位于 0x0B 的 BPB,并获取了一些有关 NTFS 映像的一般信息。我需要到达根目录指针,然后遍历文件系统以实现这些功能,尤其是对于 ls 和 pwd。我在谷歌上搜索了很多关于 NTFS 的内部细节和偏移量的信息,但我不知道如何实现这个目标。如果没有可理解的文档或示例,我将无法取得进一步进展。

任何帮助、文档、提示、偏移表等将不胜感激。

谢谢你。

4

1 回答 1

5

我猜这是一个学习练习。所以,首先:

  1. bash为特定文件系统编写类似的解释器是错误的做法。您应该专注于了解 NTFS 文件系统的细节。

  2. 编写lscat以便能够使用特定文件系统中的文件是错误的做法。您应该专注于了解 NTFS 文件系统的细节。

  3. 如果您编写文件系统驱动程序(例如使用FUSE),那么原始bashls,cat将自动与该文件系统一起使用。因为驱动程序将能够将系统调用翻译openread文件系统特定的过程。

最后:

  1. 了解FUSE太棒了。请参阅此Hello WorldFUSE 模块。运行它,玩它。

  2. 下载NTFS-3G的源代码,这是当今大多数 GNU/Linux 发行版使用的 NTFS 驱动程序。它使用保险丝。了解它是如何工作的。

于 2012-06-05T21:53:29.487 回答