虚拟文件系统——更好的文件抽象层
任何一个软件设计的难题都可以通过增加一个抽象层来解决
——题记
我们的系统开发中,经常遇到一些难办的事情,比如,一台linux服务器上,从源里安装了一套apache+php+mysql,然后另外一个管理员发现其中一个php项目的php版本不够,就编译安装了一套新的php,然后将apache的php配置链过来。但php的配置要修改的话,就十分麻烦。
还有,像linux编译安装软件,如果安装好后,工程删掉,再想移除安装的文件就十分困难。
目前并没有非常好的方式来让软件不产生垃圾文件,那么这个原因可能就是操作系统对文件系统的管理并不十分先进,我们设计了一套虚拟文件系统来解决操作系统的诸多问题。
虚拟文件系统整体设计
虚拟文件系统是相对于真实文件系统而言的,虚拟文件系统不是磁盘文件的组织格式,而是抽象出来的文件树的集合。例如在Windows下,真实文件系统可能是这样的:
C:\
C:\program files\
C:\windows\
C:\users\
...
但虚拟文件系统,更像是Windows中库的概念,是一组文件夹的集合,而且你可以通过api,动态的向其中增加或移除对应的目录。
虚拟文件系统的目录结构是仿照linux的,是按照功能区分,而不是物理结构区分。
例如: