您现在的位置是:首页
>
8K虚拟网络架构技术 虚拟文件系统(VFS)简介:VFS架构
虚拟文件系统 VFS 简介:VFS架构 Li ux档案系统其实可以分为三个部分 第一部分叫Virtual File Sy tem Switch 简称VFS 这是Li ux档案系统对外的接口 任何要

虚拟文件系统(VFS)简介:VFS架构
Linux档案系统其实可以分为三个部分 第一部分叫Virtual File System Switch 简称VFS 这是Linux档案系统对外的接口 任何要使用档案系统的程序都必须经由这层接口来使用它 另外二部分是属于档案系统的内部 其中一个是cache 另一个就是真正最底层的档案系统 像Ext VFAT之类的东西 整个Linux档案系统可以用图 来表示 为了避免困扰 底下我们所讲的档案系统都是指Ext FAT等底层的档案系统 至于包含VFS Ext Buffer Cache等等我们总称为VFS 在图 里 我们可以清楚的看到当Kernel要使用档案系统时 都是经由VFS这层接口来使用 刚才我们有提到一个问题 就是当使用者或程序设计师去读取一个档案的内容时 它不会因为这个档案位于不同的档案系统就需要使用不同的方式来读取 因为这件事VFS已经帮我们做了 当我们要读取的档案位于CDROM时 VFS就自动帮我们把这个读取的要求交由iso 档案系统来做 当我们要读取的档案在FAT里时 VFS则自动呼叫FAT的函式来帮我们做到 当然 有需要时 VFS也会直接透过Disk driver去读取资料 但是当我们要求读写档案时 难道iso 或FAT档案系统会直接透过driver去读写吗? 不是的 就像PC上除了内存之外 还有一层的cache来加快速度 在Linux档案系统其实也是有一个Cache的机制以加快速度 叫做Buffer Cache 底层的档案系统要读写磁盘上的资料时都要经过Buffer Cache 如果资料在Buffer Cache里有的话 就直接读取 如果没有的话 才透过Buffer Cache要求driver去读写 除了Buffer Cache之外 其实 Linux档案系统里还有一个Cache 叫Directory Cache 你知道吗? 如果我们去统计使用者的行为的话 ls这种命令其实占的比重是蛮大的 每次的ls或读写档案其实都要对目录的内容做search 因此 如果在目录这方面能做个Cache的话 那系统整统的速度就会再往上提升 Directory Cache的功能就在此 其实 Linux档案系统里还有一个Cache 叫Inode Cache 故名思义 它是针对Inode做的Cache Directory Cache跟Inode Cache其实关系是很密切的 lishixinzhi/Article/program/Oracle/201311/17160 很赞哦! (1072)