前文中讲到了文件系统有哪几类操作,这里对没类操作文件系统是如何寻址,如果读写的进行一个详细的说明。
1、目录树的读取
所有对文件的操作,给用户看来第一步就是得知道这个文件的目录,所以首先就需要读取目录。
每个目录都是一个文件,该文件存放该目录下所有文件的相关信息,同样该文件也有对应的innode。
简答步骤:由于目录树是由根目录开始读起,因此系统透过挂载的信息可以找到挂载点的 inode 号此时就能够得到根目录的 inode 内容,并依据该 inode 读取根目录的 block 内的文件名数据,再一层一层的往下读到正确的档名。
具体步骤:读取 /etc/passwd 这个文件时,系统是如何读取的呢?
- / 的 inode: 透过挂载点的信息找到 /dev/hdc2 的 inode 号码为 2 的根目录 inode,且 inode规范的权限让我们可以读取该 block 的内容(有 r 与 x) ;
- / 的 block: 经过上个步骤取得 block 的号码,并找到该内容有 etc/ 目录的 inode 号码 (1912545);
- etc/ 的 inode: 读取 1912545 号 inode 得知 vbird 具有 r 与 x 的权限,因此可以读取 etc/ 的block 内容;
- etc/ 的 block: 经过上个步骤取得 block 号码,并找到该内容有 passwd 文件的 inode 号码(1914888);
- passwd 的 inode: 读取 1914888 号 inode 得知 vbird 具有 r 的权限,因此可以读取 passwd 的bl