频道栏目
首页 > 资讯 > 其他 > 正文

linux系统上的文件管理-神策-51CTO博客

19-11-29        来源:[db:作者]  
收藏   我要投稿

一、 inode、data block与super block

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中;

相关TAG标签
上一篇:在网上网赌被黑取款客服说系统抽查审核注单异常不能提款该怎么办?
下一篇:Ubuntu安装Nginx和正确卸载Nginx-相信,创造美好~-51CTO博客
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站