【学习笔记】文件系统结构 二

本文深入解析了UNIX文件系统的存储机制,介绍了目录文件、磁盘文件的存储方式与链接文件的概念,详细阐述了文件读取的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.2  磁盘文件的存储

UNIX文件系统的存储通过目录和文件系统结构共同完成,其中前者存储了文件的层次结构,后者存储了文件的位置与内容。

 

1目录文件

UNIX中,目录是一种特殊的文件,它的内容是一系列的目录项,每个目录项由该目录下的一个文件名及此文件占用的i节点编号两部分组成。可以通过”ls –ai”命令查看各目录项内容。

目录搭建了一个树状文件结构体系,并且记录了文件名称和i节点之间的对应关系,从而在文件名与文件属性,内容之间架起了一座桥梁。

 

2磁盘文件

文件系统通过目录记载文件名称及其对应的i节点编号,通过i节点记录文件的信息与内容。事实上,i节点直接记录的只是文件的属性,文件的具体内容存储在数据区的数据块中,i节点中仅保留了一个磁盘地址表来记录文件内容存储的位置。

磁盘地址表13个块号组成,每个块号占用4个字节,代表了数据区的一个数据块编号。

 

图4-2

 

UNIX文件系统采用三级索引结构存储文件,它把磁盘地址表分为直接索引地址,一级间接索引地址,二级间接索引地址和三级间接索引地址四个部分。

UNIX文件存储方式复杂,在处理大文件时,由于间接索引的存在,导致磁盘利用率低,数据寻址速度慢,但是在处理小文件时却非常便利,长度不高于10K的文件可以直接寻址,实际上,统计数据表明,在UNIX中,80%为小文件,20%为大文件,其中85%的文件小于8K48%的文件小于1KB,只有1%的文件为超大文件。

 

 

3链接文件

链接文件分为硬链接文件和符号链接文件。创建文件的硬链接并不占用额外的磁盘块,它在目录文件中增加一个目录项。登记了文件名和被链接文件的i节点号,再将i节点中di_nlink(文件链接数)字段值加1即可。链接文件是原文件的另外一个访问路径,二者指向同一块磁盘区域,因此,通过硬链接更改文件,就是更改原文件本身。

在执行删除文件操作时,文件系统将i节点di_nlink字段减1,只有当值为0时,即没有任何链接指向该节点时,才真正从磁盘上删除文件。

硬链接只能在文件系统内实现,当跨越文件系统链接时,需要创建符号链接,符号链接又名软链接,它类似于window中的快捷方式,本身是占用磁盘块的文件,内容上记录了一个指向目标文件的链接,访问时操作系统先读取此链接再读取目标文件。

 

 

4磁盘文件读取工作原理

下面,我们以命令”cat T1.c”执行过程为例

步骤一:在当前目录文件中查找文件T1.c及对应的i节点编号,假设为1109

步骤二:i节点表中读取第1109号节点

步骤三:读取i节点中文件属性,访问权限等信息。

步骤四:读取i节点中磁盘地址表,按照三级索引规则在数据区读取文件内容。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

szwm1010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值