深入理解Linux内核个人小结12---虚拟文件系统

来源:互联网 发布:mac windows8 iso 编辑:程序博客网 时间:2024/06/09 17:40

一.  综述:

      虚拟文件系统(VFS):是一个内核软件层,用来处理与Unix文件系统相关的所有系统调用;可看作是一个通用的文件系统,必要时可以依赖某种具体的文件系统调用其底层函数。

     高速缓存的种类:

      1.  硬件高速缓存: 一个快速的静态RAM,其加快了直接对慢速RAM的请求。

      2. 内存高速缓存:一种软件机制,引入它是为了绕过内核内存分配器(slab分配器)。

      3. 磁盘高速缓存:一种软件机制,其允许原先在磁盘上的某些信息保存在RAM上,以加快磁盘的访问速度。主要有:索引节点高速缓存,目录项高速缓存,页高速缓存等。


     VFS的主要结构:

        超级块对象:存放已安装文件系统的相关信息,对应存放于磁盘上的文件系统控制块。

       索引节点对象:存放具体文件的一般信息,对应于存放在磁盘上的文件控制块。每个索引节点都有一个索引节点号来唯一地标识此文件。

       文件对象:存放打开文件与进程之间进行交互相关的信息。仅当进程访问文件期间存在内核内存中,磁盘上无映像。

       目录项对象:存放目录项与对应文件进行链接的有关信息,目录项在磁盘上无对应的映像,目录项对象存放在对应的slab高速缓存中。


二.  文件系统类型

      特殊文件系统提供一种方式来操作内核数据结构,并实现操作系统的特殊特征。

     文件系统类型注册: file_system_type对象 加入到对应的链表。

     文件系统的操作及其实现:命名空间,安装(层层覆盖的方式),卸载。

     路径名查找:充分利用目录项高速缓存,考虑以下因素: 权限/符号链接/文件系统切换/进程命名空间等四种情况。


三.  文件加锁机制:



原创粉丝点击