我正在阅读有关 EXT2 文件系统的文章,并对其有所了解。每个文件系统都包含数据和元数据 (inode)。文件系统分为多个块,其中 4 个主块包含有关其他块的信息。
如果我们尝试从用户空间打开一个文件,交互是如何发生的?
当用户调用open()
系统调用时,如何通过inode号定位文件,以及如何识别存储在下一个块中的内容?
open()
调用sys_open()
该函数,该函数通过查找文件名的 inode 编号来调用该do_path_search()
函数。它通过查看 inode 编号表来获取保存数据块地址的 inode 编号。
- 它如何搜索剩余的连续块?
- 它如何识别必须搜索哪个文件系统才能获取正确的文件?
- 多个进程访问同一个文件时,文件结构如何维护?