2013-12-19 20 views
0

我要在C中实现一个文件系统,我想知道如何测试它,而无需将其安装在内核中,也不使用FUSE API。理想情况下,我想要做的就是使用dd命令创建一个虚拟硬盘驱动器,并使用Linux系统调用(如写入和读取)(它的想法是不写驱动程序)与它进行交互。这是可行的吗?如何测试文件系统的实现?

(对不起,如果我拼写错误的单词,但eanglish不是我的第一语言。此外,我很抱歉,如果这是题外话,这是我的第一个问题)

感谢。

+2

为什么不使用虚拟机? – Devolus

+0

我明白这不是你的第一语言,但它是'英语'而不是'英语'。 – devnull

+0

为什么不直接编写一个程序来手动打开文件并公开某种shell界面?您将无法通过操作系统访问它,但似乎符合您的规格。 – tangrs

回答

0

如果您确实在实施文件系统,则可以在虚拟机中对其进行测试。

否则,可以实现在文件中的文件系统,它存在于真实的文件系统,并执行类似的读/写/等等一些功能...

0

虚拟硬盘和虚拟文件系统有一点不同的东西 - 编写不同的函数,并在实现它们时处理不同的请求。考虑到你实现了一个文件系统,在linux上最好的选择是通过FUSE公开文件系统进行测试。然后编写不同的测试,以访问基于FUSE的文件系统来执行各种任务。

不幸的是,测试一个文件系统是困难的,并且需要编写许多测试。还需要使用不同软件(文件管理器)进行手动测试。