zoukankan      html  css  js  c++  java
  • vfsmount和dentry之间的关系

    对于每一个 mount 的文件系统,都由一个 vfsmount 结构来表示。
    对于每一个目录项,都用一个dentry来表示,例如对于/usr/local/lib : / usr local lib 表示4个目录项

    两者关系以一个例子来说明:
    例如我们要mount一个设备 /dev/sdb1 到 /home/my目录下,
    我们假设 /home/my 就是当前进程的根文件系统中的目录(即 home 和 my 都没有mount任何文件系统),
    命令行是: mount -t ext2 /dev/sdb1 /home/my
    我们mount的时候,传入的参数有三个: 要mount的设备( /dev/sdb1 ) , 设备的文件系统 ( ext2 之类的), mount到什么目录 ( /home/my )

    mount的过程就是把设备的文件系统入到 vfs 框架
    1. 首先,要mount一个新的设备,需要创建一个新的 super block。 这通过要mount的文件系统的 file_system_type, 调用其 get_sb 方法来创建一个新的 super block。
    2. 需要创建一个新的vfsmount ,对于任何一个 mount 的文件系统,都要有一个 vfsmount, 创建这个vfsmount, 并设置好vfsmount 中的各个成员
    3. 将创建好的 vfsmount 加入到系统中。

    对于新的vfsmount:
    其mountpoint为目录 "my" 的dentry,
    其mnt_root 是设备sdb1上的根目录的 dentry
    其父 vfsmount 就是原文件系统中的那个 vfsmount

  • 相关阅读:
    封装cookie
    敏感词过滤
    面向对象改成选项卡
    正则表达式
    cookie
    DOM
    系统对象
    cookie记录用户名
    6个原则
    23中设计模式
  • 原文地址:https://www.cnblogs.com/linengier/p/2991112.html
Copyright © 2011-2022 走看看