zoukankan      html  css  js  c++  java
  • 虚拟文件系统

    安装点

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

    超级块

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

    目录项对象

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

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

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

    目录项缓存

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

    文件对象

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

    索引节点对象

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

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

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

    和进程相关的数据结构

    files_struct

    fs_struct

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

    namespace

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

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

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

  • 相关阅读:
    彻底解决Spring MVC 中文乱码 问题
    侯捷 c++面向对象程序设计
    folly学习心得(转)
    vcpkg —— VC++ 打包工具
    Windows下安装GCC
    Linux下编写 makefile 详细教程
    侯捷stl学习笔记链接
    《Effective C++(第三版)》-笔记
    CentOS 7 安装Boost 1.61
    Windbg查看w3wp进程占用的内存及.NET内存泄露,死锁分析
  • 原文地址:https://www.cnblogs.com/tianzeng/p/14019919.html
Copyright © 2011-2022 走看看