基于跨平台的文件系统和windows虚拟文件系统
缘起:这个想法来自于我们学校的一个课程设计,虽然他们做的课程设计要求不是很高,但是却给了我一个提示,就是一个跨平台的文件系统的可实现性和一个虚拟文件系统的开发意义。
首先谈论一个在windows下面的一个虚拟文件系统的作用,我们可以在windows下面,划分一定的存储空间,作为我们的虚拟文件系统,在这个虚拟文件系统中,我们可以自己定义文件的存储格式和文件的管理方式,从目的来说,至少有以下几点:
1、作为教育的作用。以前,经常有人问我,他想用fdisk分区,可是不知道怎么分区又怕弄坏了,当时我真的没有办法给他说清楚具体怎么分区,我就想,又不能够亲自给他演示,要是有一个虚拟的多好啊,同样,很多操作是影响到我们的数据的,如格式化磁盘,我们需要一个虚拟的东西来代替我们真正的操作,当我们熟悉了操作过后,那么真正对硬盘分区,格式化就可以不会出错,也不会害怕一不小心就成千古错了。现在的教育很多时候也会对这方面比较底层的操作避而不谈,导致很多人认为那些是很难的东西,不要去乱动他,这样就不利于我们的学习和对他的进一步了解,这是原因之一。
2、作为加密等的作用。大家都知道ntfs格式吧,他是加密格式,很多人都很喜欢,可是由于它与dos的不兼容,所以也有很多人不喜欢它,(当然ntfs的有点不止是这些)现在我们可以有了自己的文件系统,我们想怎么样加密都可以了。比如说我们在每一个文件之前存储相关的用户信息,然后再存储相关的数据,并采用链式存储,就算我们不用任何加密算法,如果一个2G的虚拟文件系统,别人也很难破解出里面的东西的。我们把数据保存再我们的虚拟文件系统中,然后用专门的工具进行访问,这样就可以实现又能让别人用我的电脑,有可以保护我自己的东西,这样相对于一般的加密软件简直就是不是一个层次上面的,可以说你多了一个我的电脑了,里面的操作和外面完全一样,但是一个问题就是它和windows的接口问题稍微会麻烦一点,但是不是不可以解决的。
3、作为共同开发和进步的课题。如果为改虚拟文件系统制定相应的标准,同意可以提供第三方的公司开发相应的虚拟文件系统的三方软件,同时如果作为开源软件,那么每一个人都可以编制自己想要的虚拟文件系统以实现自己的需要,这样对于编程人员来说无疑肯定是一件大大的好事情,对于用户来说也是大快人心。同样核心代码的编写可以完全脱离windows,仍然可以实现跨平台的虚拟文件系统,只要外壳程序重新写一个就可以了。
纵上所述每一个虚拟文件系统的可实现性很高,并且难度不大,用途却是很广,我认为,如果对这方面感兴趣的人可以自己编写,我现在已经编写完成里面的部分内核,如果有人愿意交流,可以给我发EMail。
由上面一个想法,我想到另外一个东西,也是现在很让人头痛的一个问题,就是不同文件系统下的相互访问问题,我曾经为了在Linux上面访问windows的歌曲,让我大费周章,我想要是有一个所有文件系统都能够访问的地方那是多好啊,可是当时对于我的水平来说,还没有想到解决的办法,但是只细一想,也不是不可能实现,我认为,最重要的只有一个,那就是标准,如果我们所有的文件系统都遵守一定的标准,那么问题不就解决了吗?就像fat32和ntfs一样,如果我们能够设计一个另外一个文件系统,既能够通过一定的方式反问这个文件系统,也能够访问另外一个文件系统的,那么我们放在这个文件系统里面的东西就可以作为共享了,(也许现在已经有了,但是我没有发现)以后,如果我们都按照统一的标准来设计文件系统,那么跨平台的访问,就会变得更加容易了。
我现在有一个感觉,就是很多东西都缺少一个标准,正如c++的标准一样,由于发布太晚,导致了现在很多时候不一致,如果很多东西都有一个标准,那么我们在跨平台方面实现起来就要容易得多,但是也不是每个东西都要有一个标准,有时候标准也会限制一个东西的发展.所以应该在不同的时候采取不同的措施.这些是额外话题,我主要是说明上述话题的可实现性,然后希望有兴趣的朋友都做一下,好的话题,对于我们软件行业的发展是有利的.
(你可以转载,但是请注明出处)
桂林电子工业学院 子寒
2003 - 10 8