• Linux 中简单的文件系统


    一、查看文件的相关信息:

    ls -l     stat       

    二、磁盘保存文件的方式:

    文件在磁盘的保存方式:一个磁盘可以被划分为多个分区,每个分区都有自己的文件系统

    Block Group:文件系统会根据分区的大小划分为多个Block Group,而每个BlockGroup都有相同的组成结构 

    Super Block 超级块:

    存放文件系统本身的结构信息。记录的信息主要有:bolck 和 inode的总量,未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,可以说整个文件系统结构就被破坏了

    Group Descriptor Table:块组描述符,描述了块组属性信息。

    Data bolcks:存放文件的内容。

    Block Bitmap:块位图:记录着Data Block中哪个数据块已经被占领,哪个数据块还能使用

    inode table:存放节点的属性:大小、所有者、修改时间等。

    indode map:每一个bit表示inode是否空闲可用

    磁盘存储文件的规则:并不是按照连续存储的规则,而是将文件进行离散化的存储

    三、创建一个新文件主要的4个操作:

      1.存储属性:

    在内核空间找到一个空闲的inode,内核将文件的信息存入到其中。

    2.存储数据:

    在数据区找到空闲块,将内核缓冲区的数据复制到各个离散的块中。

    3.记录分配的情况:

    在inode表中记录文件在数据区中的存放位置。。

    4.添加文件名称到目录:

    内核将入口添加到目录文件,文件名与inode之间的对应关系将文件名和文件属性连接起来。

    四、软硬链接:

    软链接:

    生成目标的快捷方式

    操作:ln -s 源文件   目标文件

    (软链接文件的inode节点和源文件相同)

    以 _ln结尾

    **修改了软连接文件,其源文件也会被修改;修改软连接文件,会重新建立源文件,重新建立链接关系,一定要在删除源文件的时候将软连接文件也一并删除。

    硬链接:

    目标文件的替身

    操作:ln  源文件   硬链接文件

    (硬链接文件的inode节点和目标文件一致)

  • 相关阅读:
    ResourceBundleViewResolver类简介说明
    【数据结构】二叉搜索树(Java + 链表实现)
    C++11的内容介绍
    十分钟速成DevOps实践
    FreeRTOS开始的宏和任务状态
    软件过程的介绍
    总结下.NET后端已经熟悉或者使用过了这么多东西,有没你喜欢用的
    MyBatis 源码分析 - SQL 的执行过程
    文献阅读-VQAR-基于计算机视觉和自然语言处理的信息检索技术综述
    0基础学习VR全景平台篇 第105篇:调色原理和色彩分析
  • 原文地址:https://blog.csdn.net/m0_60010936/article/details/127793975