• 文件系统


    文件系统的架构层次包括:用户层、虚拟文件系统层、文件系统层、缓存层、块设备层、磁盘驱动层和磁盘物理层。

    1、用户层

    最上面用户层是日常使用的各种用户应用程序,需要的接口主要是文件的创建、删除、打开、关闭、写、读等。

    2、虚拟文件系统层VFS

    Linux操作系统分为用户态和内核态,当用户态请求硬件资源时需要调用System Call通过内核态去实现。VFS 作为一个通用的文件系统,抽象了文件系统的挂载点、索引节点、目录项和文件四个基本概念,在内核空间层中为用户空间层的文件操作(文件的创建、删除、打开、关闭、写、读等)提供了相关的接口。

    VFS 存在四个基本对象:
    超级块对象:代表一个已安装的文件系统;
    索引节点对象:代表一个文件;
    目录项对象代表一个目录项;
    文件对象代表由进程打开的文件。

    超级块、索引节点、目录项、文件这四个基本对象是对挂载点、索引节点、目录项和文件四个基本概念的一一对应的。

    3、文件系统层

    不同的文件系统实现了VFS的系统调用函数接口,通过指针注册到VFS里面。用户层的各种操作是通过VFS转到各种文件系统的。
    文件系统大体上可分如下几类:
    网络文件系统,如 nfs、cifs 等;
    磁盘文件系统,如 ext4、ext3 等;
    特殊文件系统,如 proc、sysfs、ramfs、tmpfs 等。

    4、缓存层

    文件系统底下有缓存,Page Cache,加速性能。对磁盘LBA的读写数据缓存到这里。

    5、块设备层

    块设备接口Block Device是用来访问磁盘LBA的层级,读写命令组合之后插入到命令队列,磁盘的驱动从队列读命令执行。

    6、磁盘驱动层

    磁盘的驱动程序把对LBA的读写命令转化为各自的协议,或者是自己硬件可以识别的自定义命令,发送给磁盘控制器。

    7、磁盘物理层

    读写物理数据到磁盘介质。

  • 相关阅读:
    Busybox制作ARM(iTOP4412) 根文件系统
    01.高并发底层原理
    设计模式
    高并发实战
    # 记一次shell编写
    shell if条件语句
    scrapy使用
    整理JAVA知识点--基础篇,能力有限不足地方请大神们帮忙完善下
    mybatis-generator使用
    优先级队列实现
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8504096.html
Copyright © 2020-2023  润新知