操作系统综合实验(五)——文件系统
实验题目
下面的练习检查了UNIX或Linux系统上文件和inode之间的关系。在这些系统上,文件用inode表示。也就是说,一个inode是一个文件(反之亦然)。可以在随本文提供的Linux虚拟机上完成此练习。也可以在任何Linux、UNIX或MacOSX系统上完成练习,但需要创建两个名为file1.txt和file3.txt的简单文本文件,其内容是唯一的句子。
相关原理与知识
- inode(索引节点)
在UNIX和Linux系统中,每个文件都由一个唯一的inode表示。inode是文件系统中用于存储文件元数据的数据结构,包括文件的大小、权限、时间戳等信息,但不包含文件名。文件名仅作为目录条目的一部分存在。 - 硬链接与软链接
• 硬链接:多个文件名可以指向同一个inode。硬链接不会创建新的文件,而是为现有文件提供额外的入口。
• 软链接(符号链接):软链接是一个特殊的文件,它指向另一个文件的路径。软链接有自己的inode。 - 文件与inode的关系
• 每个文件都有一个唯一的inode编号。
• 删除文件时,实际上是从目录中移除文件名与inode的关联。只有当inode的引用计数降为0时,文件才会被真正删除。
实验过程
创建文件
在Linux系统中,创建两个简单的文本文件file1.txt和file3.txt,分别写入唯一的句子
查看文件的inode编号
使用ls-i命令查看文件的inode编号
从输出可以看出,file1.txt和file3.txt的inode编号不同,说明他们是两个独立的文件。创建硬链接
为file1.txt创建一个硬链接file2.txt,再次查看文件的inode编号
可以看到,file1.txt和file2.txt共享同一个inode编号,说明它们是同一个文件的不同入口。创建软链接
为file3.txt创建一个软链接file4.txt,查看文件的inode编号:
可以看到,file3.txt和file4.txt的inode编号不同,说明软链接是一个独立的文件,只是指向了file3.txt的路径。删除文件
• 删除file2.txt(硬链接)后,file1.txt仍然存在,因为它们共享同一个inode。
• 删除file4.txt(软链接)后,file3.txt不受影响,因为软链接只是一个路径指向。
实验结果与分析
实验结果

结果分析
- 文件与inode是一一对应的,inode存储了文件的元数据。
- 硬链接不会创建新的文件,而是为现有文件提供额外的入口,所有硬链接共享同一个inode。
- 软链接是一个独立的文件,有自己的inode,但它指向另一个文件的路径。
问题总结
- 遇到的问题
- 在创建软链接时,如果目标文件不存在,软链接会变成无效链接。
- 删除硬链接时,需要理解inode的引用计数机制。
- 解决方法
- 确保目标文件存在后再创建软链接。
- 通过ls-l查看文件的链接数量,了解inode的引用计数。
源代码
1 | #创建文件 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 just.ok的个人博客!





