• 文件系统,软硬链接


    磁盘和磁带

    1. 磁盘和磁带的工作原理基本相同
    2. 对于磁盘,其有多个磁片,数据是存放在磁片中的一个同心圆的扇区(一般取512字节为一个单位)
    3. 当我们学习文件系统的时候,用2D的视角分析磁盘
    4. 我们可以把磁片按同心圆切割,最后连接起来的就成为磁带那种2D的线。
    5. 以连续的2D视角,方便学习。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hsoGylhk-1666880736668)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027193438911-1666870479903-1.png)]

    文件系统

    1. 直接管理一个磁盘的代价很高,如果将磁盘进行分区(也就是C盘,D盘等),只要管理好一个区,其它区就可以管理好,同时因为分块的原因,区块间的耦合性非常低,维护起来也很容易。
    2. 文件系统就是OS为了管理磁盘每个分区,为每个分区内置的一种管理系统。
    3. 理解文件系统是,要学会用2D的视角分析内存,采用一种虚拟映射思想,毕竟磁盘的数据定位需要很多操作协同。
    4. 以linux下的 文件EXT系统介绍

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gu85111u-1666880736678)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027204928976-1666874970293-1.png)]

    Data Block和Block Bitmap

    当文件写入内容时,OS会遍历 block bitmap,找到第一个为0的二进制位,使用这个编号对于的内存块。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mwOhalix-1666880736684)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027205012558.png)]

    inode Table 和inode Bitmap

    1. linux下,OS并不是通过文件名识别一个文件的,而是通过一个编号来标识一个文件的,也就是inode。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gu5HUXjz-1666880736687)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027210412304.png)]

    2. inode的内存块中存放的时文件属性,和data block中的编号数组,可以看成是一种映射数组

    3. 当创建一个新的文件时,OS会遍历inode bitmap,找第一个为0的二进制位,其对应的编号就是新文件的ionde。

    4. 当删除一个文件时,inode bitmap对应二进制位变为0,block bitmap对应二进制位也变为0

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UJRUgsQA-1666880736689)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027205434366-1666875275378-3.png)]

    Super block

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

    Group Descriptor Table:

    块组描述符,描述数据块的使用情况,inode块的使用情况等资源信息

    目录

    1. 目录也是一种文件,也拥有它独立的inode
    2. 目录存放的数据是:其子文件的inode和子文件名的映射关系

    对文件的指令

    对文件的指令本质都是对特定inode对应文件的访问与操作

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NYBP8vtt-1666880736692)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027213127555-1666877489276-5.png)]

    touch

    创建文件时,使用inode bitmap中第一个二进制位为0对应编号作为新文件的inode

    cat

    根据文件名与inode的映射关系,打印对应inode的data block中的数据

    rm

    将inode bitmap 中对应二进制位赋值为0,同时对block bitmap也继续同样的删除操作

    cp

    以指定文件为模板,建立新的inode,同时将这些新文件的文件名和inode放在指定的目录下

    mv

    将目录下的一对inode和文件名放到另外一个目录下。

    回收站

    回收站的本质是将一个目录下的inode与文件名移到另外一个目录下

    软硬链接

    软链接

    1. 软连接就像window下的快捷方式。通过window的快捷方式,即使软件的执行文件的路径不在当前路径下,也可以完成对软件的执行

    2. 软链接是新建一个文件,存放链接对象的地址。

    ln -s 目标文件名 软链接的新文件名
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v9Xa2hYo-1666880736694)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027215526937.png)]

    硬链接

    1. 硬链接是链接对象的别名,不生成新的文件
    2. 硬链接是一种引用计数
    ln -s 目标文件名 硬链接文件名
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tr48gR54-1666880736695)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027215914644.png)]

    删除链接

    unlink +链接名
    
    • 1

    软硬链接的区别

    1. 软链接是有自己独立的inode,会创建新的文件
    2. 硬链接是链接对象的inode的一种新的映射关系—也就是别名,不会创建文件。

    硬链接数

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qqmle9Ux-1666880736698)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027220953848.png)]

    硬链接的使用

    为什么一个新建的目录它的硬链接数为2?

    .就是指向当前目录,这也就是为什么一个新建的目录为什么链接数为2

    如何再当前目录里面下新建一个目录,当前目录的硬链接数会变为2是因为 新建目录里面有个‘’…’

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vCMnLL5Z-1666880736700)(./%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.assets/image-20221027222453624-1666880694550-10.png)]

  • 相关阅读:
    React高频面试题100+题,这一篇就够了!
    如何给win11安装安卓应用
    WinUI(WASDK)使用HelixToolkit加载机器人3D模型并进行项目实践
    小白优化Oracle的利器”sqltrpt.sql”脚本
    IDEA上配置mysql
    Spring: @ComponentScan注解,不设置basePackages时,为什么会扫描该注解所在的包?
    Mac MF打印机驱动程序安装(亲测MacOS11.6和Mac12.4都可以)
    centos服务器命令行安装虚拟机并ssh连接
    mysql 基本增删改查SQL语句
    Java学习入门偏(2)
  • 原文地址:https://blog.csdn.net/qq_55439426/article/details/127562129