私有文件系统搭建(一)
文件系统给人的感觉就是不明觉厉的东西,但肯定是存在的,或者使用过的
一般使用者也很难发现其存在,更不可能知道其工作原理。
那么有必要了解下文件系统的概念
文件系统是干什么?
1. 归类,这样就比较有序,看起来也很顺眼。
2. 快速查找,不用从头到尾去找,比如先到哪里,然后再到哪里,这样一层层分下去,查找速度快了几何倍。
3. 设置边界,防止冲突,比如如果没有管理,那么已经存放的地方,很可能会被覆盖掉,这样也不是我们想要的结果。
总的来说,文件系统主要也是起到这些作用。当然,这是相对 通用的性质的。实际文件系统的价值,我们还可以再深入挖掘一下,比如如果该文件系统专门用于存储视频文件的,那就要结合视频一些特点进行优化,那就非常明显了,视频一般都比较大,就算H264的,也很大,那么就要意味着存储速度要快,读取也要快,甚至还要考虑到视频分析的方便,等等。因此就要对现有进行改进或重新开发文件系统。
文件系统在操作系统里的位置
常见操作系统都应该离不开文件系统,大型操作系统还同时存在多种文件系统。那么,文件系统是如何跟操作系统联系在一起呢?
下面是Linux系统下关系
VFS是虚拟文件接口,操作系统就要干这些事情。操作系统为了便于兼容多种文件系统,因此他设计了一堆接口以及一些机制,VFS就是这样产生的,就好比我们自己程序的虚接口,要派生类自己实现的。对调用者而言,是不要关心哪个派生类来实现的,只关心接口就够了。这样的设计是合理的,否则,我们就没办法写程序了。
其实,也就是说,如果我们想要搞一个标准文件系统,那么你的接口,机制必须符合VFS要求,否则系统不认。
这样,也会带来问题,比如说,我们是拿来存储视频文件的,要增加按时间查询视频流的接口,那就比较麻烦了,VFS里也没有这样的接口。自己定义的接口,系统又不支持
所以,私有文件系统一般来说,也是形势所逼的。
满屏源代码,一把辐射泪,都云编程痴,谁解其中味!