Linux——磁盘/文件/目录/i 节点 之间的关系

1. 磁盘分块
linux文件系统是Linux系统的心脏部分,提供了层次结构的目录和文件。文件系统将磁盘空间划分为每1024个字节一组,称为块(也有用512字节为一块的,如:SCOXENIX)。编号从0到整个磁盘的最大块数。

2. 块的分类
全部块可划分为四个部分:
a. 块0称为引导块,文件系统不用该块。
b. 块1称为专用块,专用块含有许多信息,其中有磁盘大小和全部块的其他两部分的大小。
c.从块2开始是i节点表,i节点表中含有i节点,表的块数是可变的,后面将做讨论。i节点表之后是空闲存储块(数据存储块),可用于存放文件内容。

3. 逻辑结构和物理结构
a. 逻辑结构是用户敲入cat命令后所看到的文件,用户可得到表示文件内容的字符流。
b. 物理结构是文件实际上如何存放在磁盘上的存储格式。

4. i节点
一般的文件都会长于一块(1024字节)大小,通常将分散地存放在盘上。当用户存取文件时,linux文件系统需要以正确的顺序取出各块,给用户提供文件的逻辑结构。如何正确的得到顺序就涉及到i节点了:
i节点是一个64字节长的表,含有有关一个文件的信息,其中有文件大小、文件所有者、文件存取许可方式,以及文件为普通文件、目录文件还是特别文件等。

5. 磁盘地址表
在i节点中最重要的一项信息是磁盘地址表:
a. 磁盘地址表中有13个块号。
b.前10个块号是文件前10块的存放地址。这10个块号能给出一个至多10块长的文件的逻辑结构,文件将以块号在磁盘地址表中出现的顺序依次取得相应的块。
c.当文件长于10块时,磁盘地址表中的第11项给出一个块号,这个块号指出的块中含有256个块号,至此,这种方法满足了至多长于266块的文件(272384字节)。
d.如果文件大于10+256块,磁盘地址表的第12项给出一个块号,这个块号指出的块中含有256个块号,这256个块号的每一个块号又指出一块,块中含256个块号,这些块号才用于取文件的内容。(256*256)
e. 磁盘地址中和第13项索引寻址方式与第12项类似,只是多一级间接索引。(256*255*256)

6. 最大文件大小
这样,在linux系统中,文件的最大长度是16842762块(10+256*256+256*255*256),即17246988288字节,有幸是Linux系统对文件的最大长度(一般为1到2M字节)加了更实际的限制,使用户不会无意中建立一个用完整个磁盘区所有块的文件。

7. 目录
目录实际上是一个含有目录表的文件:
a. 对于目录中的每个文件,在目录表中有一个入口项,入口项中含有文件名和与文件相应的i节点号。

b. 当用户敲入catxxx时,文件系统就在当前目录表中查找名为xxx的入口项,得到与文件xxx相应的i节点号,然后开始取含有文件xxx的内容的块。


原文链接:点击打开链接

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值