在Linux中为NTFS实现ls命令

时间:2012-06-05 21:34:47

标签: c filesystems operating-system 64-bit ntfs

我正在尝试构建一个像bash一样的脚本,提供一些功能,如ls,pwd,cat等,在Linux系统中运行NTFS。假设我有一个NTFS图像,我打开它作为fopen文件。然后,我读取了一些扇区,例如驻留在0x0B的BPB,并获取了一些关于NTFS映像的一般信息。我需要到达根目录指针然后遍历文件系统,以便实现这些功能,特别是对于ls和pwd。我谷歌了很多关于内部细节和NTFS的补偿,但我无法找到如何实现目标。没有可理解的文档或样本,我无法进一步发展。

任何帮助,文档,提示,偏移表等都将受到高度赞赏。

谢谢。

1 个答案:

答案 0 :(得分:5)

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

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

  2. 撰写lscat 以便能够处理特定文件系统中的文件是错误的要做的事情。 您应该专注于了解NTFS文件系统的细节。

  3. 如果您编写文件系统驱动程序(例如使用FUSE),则原始bashlscat将自动使用该文件系统。因为驱动程序能够将openread等系统调用转换为特定于文件系统的过程。

  4. 最后:

    1. 了解FUSE。这是 awesome 。见Hello World FUSE module。跑吧,玩吧。

    2. 下载NTFS-3G的源代码,这是目前大多数GNU / Linux发行版使用的NTFS驱动程序。它使用FUSE。了解它的工作原理。