• linux文件系统


    ext2文件系统示意图

    启动扇区:安装启动引导程序MBR
    data block:用于放置文件内容,格式化时每个block的大小就固定了,并且每个block都有编号,每个block最多只能放一个文件的数据
    inode table:存放inode信息,inode重点介绍
    inode记录的信息主要包括:
        • 文件访问模式:r w x
        • 文件所有者与组
        • 文件大小
        • 文件创建或改变的时间
        • 最近一次读取的时间
        • 最近修改的时间
        • 定义文件特征的标志,如SetUID
        • 文件真正内容指向
              每个inode大小为固定的128bytes,每个文件对应一个inode,系统读取文件时先找到inode,然后分析inode所记录的权限与用户是否符合,符合才能开始读取block的内容,inode结构如下:
    文件系统描述:记录每个block group的开始于结束的block号码,以及每个区段(superblock、bitmap、inodemap、datablock)分别介于哪个block号码之间,可以用dumpe2fs查看
    block bitmap:记录哪些block是使用的和未使用的
    inode bitmap:记录哪些inode是使用的和未使用的
     
    与目录树的关系:
    每一个目录同样对应一个inode,inode中记录该目录的相关权限和属性,该inode对应的block中记录在这个目录下的文件名与该文件名占用的inode号码数据,示意图如下
    因此目录所占的空间均为block大小的整数倍

     

    目录树的读取过程(以读取/etc/passwd文件为例):

    连接文件
     
    硬连接:文件内容是与inode相关的,文件名是与目录相关的,如果某个文件名对应到某个文件的inode号码,这就是一条硬连接
     
    举例来说:假设在我的/home/yg目录下有一个test文件:

     可以看到该文件inode序号为399406,目前只有一个连接指向它,然后我们创建一个硬连接test_link指向它,可以看到test test_link指向的是同一个inode,因而连接数变为2

    硬连接的实际示意图如下:

     

    删除文件时,只有当指向文件实际内容上所有的硬连接都被删除,才会将文件内容删除~硬连接不能跨文件系统,也不支持目录
     
    符号连接(软连接,类似windows的快捷方式)
    符号连接是一个新文件,文件的内容就是指向文件的文件名,举例来讲,对/home/yg/test文件创建符号连接/root/symbol_link

     

     示意图如下:

     

    连接文件的内容就是目标文件的文件名 /home/yg/test 正好13个字节,和命令行中显示的结果一样。若文件被删除,则通过软连接将会访问失败。

  • 相关阅读:
    python3.x:No matching distribution found for PIL
    类似No module named 'bs4'等错误的解决方法
    微信小程序(一)
    Eclipse (eclipse-jee-luna-SR2-win32)4.4.2 , jdk1.7, pydev 4.5.5版本的 完成的python环境集成
    C#学习笔记(12)——三种方法操作XML
    WPF学习笔记(3)——style
    ASP.NET学习笔记(2)——用户增删改查
    jquery加载页面的方法(页面加载完成就执行)
    ASP.NET学习笔记(1)——VS自动引入命名空间快捷键
    临时2017-6-19 00:02:03
  • 原文地址:https://www.cnblogs.com/yangang92/p/7350360.html
Copyright © 2020-2023  润新知