• 虚拟文件系统


    安装点

      文件系统是数据特殊的分层存储。被安装在一个特定的安装点,该安装点在全局层次结构中被称为命名空间,所有安装文件系统被称为根文件系统。

    超级块

      代表一个已经安装的文件系统。存储文件系统的额控制信息。

    目录项对象

      文件通过目录组织,路径中的目录条目被称为目录项。目录被当做特殊的文件。

      在路径中,包括普通文件在内,每一部分都是目录项对象。路径中的每个组成部分都有索引节点对象表示。

      目录项对象没有磁盘对应的数据结构,VFS根据字符串形式的路径现场创建它。由于并非真正保存在磁盘,所以目录项结构体没有被修改标志。

    目录项缓存

    1. 被使用的目录链表:该链表通过索引对象中的i_dentry项连接索引节点,给定一个索引节点可能有多个连接,所以可能有多个目录项对象
    2. “最近被使用的双向链表”:头结点是最新的数据,删除时从尾结点删除
    3. 哈希散列表:通过哈希函数将特定路径解析为目录对象

    文件对象

      可以当做有序的字节串,面向字节流的抽象。在磁盘上也没有相应的数据对应

    索引节点对象

      代表一个文件。包含内核在操作文件或

    目录时的全部信息。仅当文件被访问时,索引节点才被创建。他可以是设备或管道这种特殊文件。

      文件相关的信息和文件本身区分开。访问权限、大小、拥有者等信息被称为元数据,放在单独的数据结构中(inode)。

    和进程相关的数据结构

    files_struct

    fs_struct

      由进程描述符中fs域指向,包含文件系统和进程相关的信息,包含了当前工作目录和根目录

    namespace

      由进程描述符中的namespace域指向,使得每一个进程都看到唯一的文件安装系统而不是目录。

      对于使用克隆标志CLONES_FILES、CLONE_FS创建的进程,共享这两个结构体。

      默认所有进程共享命名空间,只有在clone时使用CLONE_NEWS标志时,才会给进程另一个命名空间拷贝。

  • 相关阅读:
    jquery
    实现元素垂直居中
    浏览器 标准模式和怪异模式
    cookie session ajax
    React props.children
    使用React.lazy报错Import in body of module; reorder to top import/first
    state 和 props 之间的区别
    Harbor打怪升级
    Centos7下安装yum工具
    正则表达式匹配两个特殊字符中间的内容(特殊字符不显示)
  • 原文地址:https://www.cnblogs.com/tianzeng/p/14019919.html
Copyright © 2020-2023  润新知