虚拟文件系统和跨平台文件系统的实现

原创 2003年11月09日 22:59:00

基于跨平台的文件系统和windows虚拟文件系统

  缘起:这个想法来自于我们学校的一个课程设计,虽然他们做的课程设计要求不是很高,但是却给了我一个提示,就是一个跨平台的文件系统的可实现性和一个虚拟文件系统的开发意义。
 
  首先谈论一个在windows下面的一个虚拟文件系统的作用,我们可以在windows下面,划分一定的存储空间,作为我们的虚拟文件系统,在这个虚拟文件系统中,我们可以自己定义文件的存储格式和文件的管理方式,从目的来说,至少有以下几点:
  1、作为教育的作用。以前,经常有人问我,他想用fdisk分区,可是不知道怎么分区又怕弄坏了,当时我真的没有办法给他说清楚具体怎么分区,我就想,又不能够亲自给他演示,要是有一个虚拟的多好啊,同样,很多操作是影响到我们的数据的,如格式化磁盘,我们需要一个虚拟的东西来代替我们真正的操作,当我们熟悉了操作过后,那么真正对硬盘分区,格式化就可以不会出错,也不会害怕一不小心就成千古错了。现在的教育很多时候也会对这方面比较底层的操作避而不谈,导致很多人认为那些是很难的东西,不要去乱动他,这样就不利于我们的学习和对他的进一步了解,这是原因之一。

 2、作为加密等的作用。大家都知道ntfs格式吧,他是加密格式,很多人都很喜欢,可是由于它与dos的不兼容,所以也有很多人不喜欢它,(当然ntfs的有点不止是这些)现在我们可以有了自己的文件系统,我们想怎么样加密都可以了。比如说我们在每一个文件之前存储相关的用户信息,然后再存储相关的数据,并采用链式存储,就算我们不用任何加密算法,如果一个2G的虚拟文件系统,别人也很难破解出里面的东西的。我们把数据保存再我们的虚拟文件系统中,然后用专门的工具进行访问,这样就可以实现又能让别人用我的电脑,有可以保护我自己的东西,这样相对于一般的加密软件简直就是不是一个层次上面的,可以说你多了一个我的电脑了,里面的操作和外面完全一样,但是一个问题就是它和windows的接口问题稍微会麻烦一点,但是不是不可以解决的。

  3、作为共同开发和进步的课题。如果为改虚拟文件系统制定相应的标准,同意可以提供第三方的公司开发相应的虚拟文件系统的三方软件,同时如果作为开源软件,那么每一个人都可以编制自己想要的虚拟文件系统以实现自己的需要,这样对于编程人员来说无疑肯定是一件大大的好事情,对于用户来说也是大快人心。同样核心代码的编写可以完全脱离windows,仍然可以实现跨平台的虚拟文件系统,只要外壳程序重新写一个就可以了。

  纵上所述每一个虚拟文件系统的可实现性很高,并且难度不大,用途却是很广,我认为,如果对这方面感兴趣的人可以自己编写,我现在已经编写完成里面的部分内核,如果有人愿意交流,可以给我发EMail。

  由上面一个想法,我想到另外一个东西,也是现在很让人头痛的一个问题,就是不同文件系统下的相互访问问题,我曾经为了在Linux上面访问windows的歌曲,让我大费周章,我想要是有一个所有文件系统都能够访问的地方那是多好啊,可是当时对于我的水平来说,还没有想到解决的办法,但是只细一想,也不是不可能实现,我认为,最重要的只有一个,那就是标准,如果我们所有的文件系统都遵守一定的标准,那么问题不就解决了吗?就像fat32和ntfs一样,如果我们能够设计一个另外一个文件系统,既能够通过一定的方式反问这个文件系统,也能够访问另外一个文件系统的,那么我们放在这个文件系统里面的东西就可以作为共享了,(也许现在已经有了,但是我没有发现)以后,如果我们都按照统一的标准来设计文件系统,那么跨平台的访问,就会变得更加容易了。
 
  我现在有一个感觉,就是很多东西都缺少一个标准,正如c++的标准一样,由于发布太晚,导致了现在很多时候不一致,如果很多东西都有一个标准,那么我们在跨平台方面实现起来就要容易得多,但是也不是每个东西都要有一个标准,有时候标准也会限制一个东西的发展.所以应该在不同的时候采取不同的措施.这些是额外话题,我主要是说明上述话题的可实现性,然后希望有兴趣的朋友都做一下,好的话题,对于我们软件行业的发展是有利的.


(你可以转载,但是请注明出处)


桂林电子工业学院   子寒
2003 - 10 8

Linux 的虚拟文件系统(强烈推荐)

1 引言 Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等。通过使用同一套文件 I/O 系统 调用即可对 Linux 中的任意文件进行操作而无需考虑其所在的具体文件系...
  • heikefangxian23
  • heikefangxian23
  • 2016年06月03日 16:37
  • 13660

linux文件系统(二) - 虚拟文件系统

虚拟文件系统这一层提供的大多数是形如vfs_xxx的函数,他们最终调用的还是各个具体的文件系统注册给虚拟文件系统的struct inode_operations和struct file_operati...
  • luckywang1103
  • luckywang1103
  • 2016年07月17日 16:04
  • 380

虚拟内存及虚拟文件系统概论

摘要:虚拟内存,虚拟文件系统,顾名思义两者都是由操作系统提供的一种抽象,本文不是介绍操作系统的具体实现细节,而是对操作系统提供的虚拟内存机制和虚拟文件系统机制的一种概述及设计思想的描述(由于个人的局限...
  • akiller_123
  • akiller_123
  • 2015年08月29日 16:42
  • 499

linux的文件系统和虚拟文件系统(VFS)

http://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/ 1.软链接和硬链接的区别 我们知道文件都有文件名与数据,数据分两部...
  • yyf_it
  • yyf_it
  • 2016年07月23日 10:24
  • 902

/proc——虚拟文件系统

/proc文件系统是一种内核和内核模块yong
  • u012575899
  • u012575899
  • 2014年04月15日 21:54
  • 668

Linux文件编程之虚拟文件系统(VFS)

当用户层程序员在编写文件函数时,常常会用到open(),read()和write()这类系统调用,而且用的也很爽,因为我们只需要知道这些函数如何调用就OK了,而不用深究具体文件系统和实际物理介质是如何...
  • u013951778
  • u013951778
  • 2016年10月05日 10:22
  • 182

虚拟文件系统——更好的文件抽象层

虚拟文件系统——更好的文件抽象层任何一个软件设计的难题都可以通过增加一个抽象层来解决 。我们的系统开发中,经常遇到一些难办的事情,比如,一台linux服务器上,从源里安装了一套apache+php+m...
  • sun_xiaofan
  • sun_xiaofan
  • 2015年08月20日 15:31
  • 1885

虚拟根文件系统与真实根文件系统

引言:根文件系统的noinitramfs已经分析,继续上文未完的initramfs和Android根文件系统分析,这两者有什么关系?1.initramfs对于initramfs,kernel 2.5开...
  • armmfc
  • armmfc
  • 2016年05月05日 09:21
  • 725

分享c#写的 虚拟文件系统 开源库

https://github.com/FrozenCow/sharpfilesystem SharpFileSystem SharpFileSystem is a Virtual File Sy...
  • andyhebear
  • andyhebear
  • 2015年08月25日 13:20
  • 1447

理解linux虚拟文件系统VFS - 概述

当前,除了linux标准的文件系统Ext2/Ext3/Ext4外,存在很多种文件系统,比如reiserfs, xfs, Windows的vfat NTFS,网络文件系统nfs 以及flash 文件系统...
  • kickxxx
  • kickxxx
  • 2013年07月25日 14:43
  • 17039
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:虚拟文件系统和跨平台文件系统的实现
举报原因:
原因补充:

(最多只允许输入30个字)