linux系统上的文件管理-创新互联

一、 inode、data block与super block

创新互联公司为企业级客户提高一站式互联网+设计服务,主要包括成都网站建设、成都网站设计、app软件开发小程序设计、宣传片制作、LOGO设计等,帮助客户快速提升营销能力和企业形象,创新互联各部门都有经验丰富的经验,可以确保每一个作品的质量和创作周期,同时每年都有很多新员工加入,为我们带来大量新的创意。 

1. inode用于记录文件的属性与权限等信息;一个文件占用一个inode,同时inode还记录了该文件的data block的位置。inode的大小有128、256字节两种规格。

2. data  block:用于存储文件的实际内容。块大小为1K、2K、4K字节三种规格。

3. super block: 记录文件系统的整体信息,包括了inode与data block的总量、已使用量、剩余的旦、卷标、文件系统格式等相关的信息。可以使用tune2fs -l  Partition_Name来查看。

注意:以ext2文件系统为例,对于128字节的inode,除了存储文件的权限属性等信息外,只能存12个4字节的文件指向的数据块号码。那对于一个大文件来呢,需要几十上百万个数据块来存放文件内容。这个怎么弄?其中inode除了12个直接的数据指向以外,还有一个间接、一个双间接、一个三间接的记录区。所谓间接的意思就是inode的直接指向会指向一个数据block,这个block不存数据,而是存放的文件的数据块的号码。对于1K大小的数据块,可以存储256个指向。而256个数据区块,可以存储的文件大小为256KB;双间接可以存储64MB数据,三间接可以存储16G大小的文件;     对于2K和4K大小以及其他文件系统,算法不相同。但都借用了数据区块来存放数据区块号。

二、 文件是如何存取的

每个文件系统在其内部划分了多个block group,而每个block group内又包括了以下几个内容:

1. super block:   inode与数据区块的总量,剩余的数量,inode与数据区块的大小,保留等信息。第一个块组肯定有超级块,后续的块组,有的有,有的没有。

2. 文件系统描述: 描述区块群组的开始与结束的区块,以及说明每个区段(超级区块、对照表、inode对照表、数据区块)分别介于哪一个区块之间,这部分也能用dumpe2fs来查看。

3. block bitmap:用于记录哪些block是空的,哪些是已经使用的。

4. inode bitmap:  用于记录哪些inode是空的,哪些是已经使用的。

5. inode table:  用于存储文件属性以及该文件数据区块号码

6. data block: 用于存储文件的实际内容。

存取文件时,先检查用户对目录是否有写和执行权限;接着系统通过inode bitmap查询哪些inode表是空的,将新文件的属性写入空的inode表;根据block bitmap查找哪些data block是空的,是空的则可以将文件内容写入到这些block中;更新inode bitmap以及block bitmap,并更新超级块的信息。

三、 系统如何通过路径读取文件内容

举例说明,查找/etc/passwd文件

1. 先查找/的inode号码,/的inode里有记录/对应的data block;

2. 在/的data block中找到etc目录对应的inode

3.  读取etc目录对应的inode表中,找到etc目录的数据块

4. 在etc目录的数据块中,找到passwd文件的inode号码

5. 读取passwd文件的inode中数据块指向,并将内容读取出来。

总结: 从根目录开始,先找inode,通过inode找到对应的数据区块;在数据区块中,分两种情况:1. 该文件是目录,则数据区块记录了其下属子目录及文件的文件名以及对应的inode; 2. 该文件是非目录文件,则数据区域记录了文件的内容。   通过inode--->block--->inode--->block依次循环来读取文件。在这个过程中,需要检查用户对目录及文件的权限。

四、 硬链拉与软链接

1. 硬链接是指向同一个inode的多个文件路径; 目录不支持硬链接,不能跨文件系统,创建硬链接会增加inode计数。

2. 软链接指向的是文件实际的访问路径,可以跨文件系统,支持对目录创建软链接,删除软链接不会影响原文件。

五、 MBR

存储设备的第一个扇区,也就是最前面的512字节,叫做入引导记录

1. 主引导记录的结构

主引导记录只有512字节,放不了太多东西,它的主要作用是告诉计算机到硬盘的哪一个位置去找操作系统。

主引导记录由以下3个部分组成:

A. 第1-446字节:调用操作系统的机器码

B. 第447-510字节:分区表 (Partition  table)

C. 第511-512字节:主引导记录签名(0X55和0XAA)

2. 分区表

硬盘分区有很多好处,考虑到每个区可以安装不同的操作系统,主引导记录呢须知道 将控制权转交给哪个区。

分区表的长度只有64字节,里面又分成4项,每项16字节。所以一个硬盘 最多只能分4个一级分区,又叫作主分区。每组的记录区主要记录了该区段的起始与结束的柱面号码。

每个主分区的16个字节由以下6部分组成:

A. 第1个字节,如果为0X80,就表示该主分区是激活分区,控制权要转交给这个分区。4个主分区里面只能有一个分区是激活的。

B. 第2-4字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等)

C. 第5字节:主分区类型

D. 第6-8字节:主分区最后一个扇区的物理位置

E. 第9-12字节:该主分区第一个扇区的逻辑地址

F. 第13-16字节:主分区的扇区总数。

最后的4字节(主分区的扇区总数)决定了这个主分区的长度,也就是说,一个主分区的扇区总数最多不超过2的32次方。

如果每个扇区为512字节,则意味着单个分区大不超过2TB。再考虑到扇区的逻辑地址也是32位,所以单个硬盘可利用的大空间也不超过2TB。如果想再使用更大的硬盘,只有两个方法:一是提高每个扇区的字节数,二是增加扇区总数。

六、 文件名存储在哪里,文件的属性存储在哪里

1. 目录也是文件;

2. 文件的文件名存储在目录的数据块中;

3. 文件的属性,权限等信息存储在inode中;

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:linux系统上的文件管理-创新互联
分享网址:http://ybzwz.com/article/igdjo.html