Unix文件系统概述 中国科学技术大学计算机系 陈香兰(0512-87161312) xlanchen@ustc.edu.cn 助教:裴建国、冯晓静 Autumn 2008 嵌入式系统实验室 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
Unix文件系统概述 中国科学技术大学计算机系 陈香兰(0512-87161312) xlanchen@ustc.edu.cn 助教:裴建国、冯晓静 Autumn 2008
提纲 必文件 冬硬链接和软链接 必文件类型 冬文件描述符与索引节点 冬访问权限和文件模式 衣eCe。 必文件操作的系统调用 嵌入式系统实验室 2023/7/14 Linux OS analysis 4184 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 4/84 提纲 ❖文件 ❖硬链接和软链接 ❖文件类型 ❖文件描述符与索引节点 ❖访问权限和文件模式 ❖文件操作的系统调用
文件 Uniⅸ文件是以字节序列组成的信息载体 冬内核不解释文件的内容 ?文件的组织 Figure 1-1.An example of a directory tree dev home bin usr fdo hda CD 2023/7/14 EMBEDDED白YSTEM LAB口RAT口RY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 5/84 文件 ❖Unix文件是以字节序列组成的信息载体 ❖内核不解释文件的内容 ❖文件的组织
文件、目录和目录树 冬文件被组织成一个树状的命名空间 >文件:叶结点 >目录:根节点(根目录“”)和中间节点 ●目录使用一个目录名标识。 ●目录节点包含它下面的文件及子目录的所有信息 ?文件名和目录名1958 >不能使用"P和字符“八0”,其他ASCII字符都OK >长度:不同的文件系统有不同的限制 通常同一个目录下,不允许文件重名;不同目录下无妨 cience and Techn 嵌入式系统实验室 2023/7/14 Linux OS analysis 6/84 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 6/84 文件、目录和目录树 ❖文件被组织成一个树状的命名空间 ➢文件:叶结点 ➢目录:根节点(根目录“/”)和中间节点 ⚫目录使用一个目录名标识。 ⚫目录节点包含它下面的文件及子目录的所有信息 ❖文件名和目录名 ➢不能使用“/”和字符“\0”,其他ASCII字符都OK ➢长度:不同的文件系统有不同的限制, 通常<256个字符 ➢同一个目录下,不允许文件重名;不同目录下无妨
冬当前工作目录 > Unix的每个进程都有一个当前工作目录,current working directory,属于进程的执行上下文 必绝对路径:用来在命名空间中指定一个特定的文 件,以“打头,表示以根目录作为起点, 形如 958 >"/home/chenxl/sample/test.c" 冬相对路径:以当前工作目录作为起点 >例如当前目录为"home/chenxl'”,则上述文件的相对 路径可以是"sample/test.c” cience and Techno 嵌入式系统实验室 2023/7/14 Linux OS analysis 7184 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 7/84 ❖当前工作目录 ➢Unix的每个进程都有一个当前工作目录,current working directory,属于进程的执行上下文 ❖绝对路径:用来在命名空间中指定一个特定的文 件,以“/”打头,表示以根目录作为起点, 形如 ➢“/home/chenxl/sample/test.c” ❖相对路径:以当前工作目录作为起点 ➢例如当前目录为“/home/chenxl”,则上述文件的相对 路径可以是“sample/test.c
“和 >前者表示当前工作目录 >后者表示当前工作目录的父目录 >若当前工作目录是根目录“”,那么“和”.相等 >例如,当前目录是“home/chenxl”,则上述文件的相 对路径还可以表示为 ●"./sample/test.c ●“././chenx/sample/test.c” ●“././home/chenxl/,sample/test.c” 嵌入式系统实验室 2023/7/14 Linux OS analysis 8/84 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 8/84 ❖“.”和“..” ➢前者表示当前工作目录 ➢后者表示当前工作目录的父目录 ➢若当前工作目录是根目录“/”,那么“.”和“..”相等 ➢例如,当前目录是“/home/chenxl”,则上述文件的相 对路径还可以表示为 ⚫“./sample/test.c” ⚫“./../chenxl/sample/test.c” ⚫“../../home/chenxl/sample/test.c
硬链接和软链接 冬硬链接(hard link) >一 般情况下,一个常见的文件名代表了到对应文件的 个硬链接 > 一个文件可以有不同的硬链接,他们可以在同一个目 录下,也可以在不同的目录下,因此一个文件可以有 不同的文件名 >下面的命令可以创建一个硬链接 Inpl p2 ●其中p1指明一个现有的文件的路径名 ●p2指明新建立的硬链接的路径名 cience and Technol 嵌入式系统实验室 2023/7/14 Linux OS analysis 9/84 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 9/84 硬链接和软链接 ❖硬链接(hard link) ➢一般情况下,一个常见的文件名代表了到对应文件的 一个硬链接 ➢一个文件可以有不同的硬链接,他们可以在同一个目 录下,也可以在不同的目录下,因此一个文件可以有 不同的文件名 ➢下面的命令可以创建一个硬链接 $ ln p1 p2 ⚫其中p1指明一个现有的文件的路径名 ⚫p2指明新建立的硬链接的路径名
硬链接的限制 >不允许用户给目录创建硬链接 >只有在同一个文件系统的文件之间才能创建硬链接 冬车 软链接(symbolic link) >符号链接是一种特殊的文件(短文件),它包含另一个文件的 任意一个路径名 >可以指向任意一个文件系统的任意文件,甚至一个不存在的文 件 >下面的命令可以创建一个软链接 In -s pl p2 ● p2指明新建立的软连接的路径名。在实现上,文件系统抽出p2的目 录部分,在此目录下创建一个符号链接文件 cience and Techno 嵌入式系统实验室 2023/7/14 Linux OS analysis 10/84 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 10/84 ❖ 硬链接的限制 ➢ 不允许用户给目录创建硬链接 ➢ 只有在同一个文件系统的文件之间才能创建硬链接 ❖ 软链接(symbolic link) ➢ 符号链接是一种特殊的文件(短文件),它包含另一个文件的 任意一个路径名 ➢ 可以指向任意一个文件系统的任意文件,甚至一个不存在的文 件 ➢ 下面的命令可以创建一个软链接 $ ln -s p1 p2 ⚫ p2指明新建立的软连接的路径名。在实现上,文件系统抽出p2的目 录部分,在此目录下创建一个符号链接文件
文件类型 冬Uniⅸ文件的类型可以是 >常规文件(regular file) >目录 基本类型 >符号链接 >面向块的设备文件 设备和驱动相关 >面向字符的设备文件 >管道和命名管道 用于进程间通信 > 套接字 tof Science and Technolos 嵌入式系统实验室 2023/7/14 Linux OS analysis 11184 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 11/84 文件类型 ❖Unix文件的类型可以是 ➢常规文件(regular file) ➢目录 ➢符号链接 ➢面向块的设备文件 ➢面向字符的设备文件 ➢管道和命名管道 ➢套接字 基本类型 设备和驱动相关 用于进程间通信
文件描述符和索引节点 文件系统处理文件所需要的所有信息都包含在索引|节点inode中 必每个文件都有自己的inode 冬一般而言,inodel应当包含如下信息 >文件类型 >与文件相关的硬链接的个数 > 以字节为单位的文件的长度 设备标识符(即包含文件的设备的标识符) > 在文件系统中标识文件的inode号 > 文件拥有者的UID >文件的GID > 些时间戳:inode"状态的改变时间、文件的最后访问时间、 最后修改 时间 访问权限和文件模式 CCience and Techil 嵌入式系统实验室 2023/7/14 Linux OS analysis 12/84 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 12/84 文件描述符和索引节点 ❖ 文件系统处理文件所需要的所有信息都包含在索引节点inode中 ❖ 每个文件都有自己的inode ❖ 一般而言,inode应当包含如下信息 ➢ 文件类型 ➢ 与文件相关的硬链接的个数 ➢ 以字节为单位的文件的长度 ➢ 设备标识符(即包含文件的设备的标识符) ➢ 在文件系统中标识文件的inode号 ➢ 文件拥有者的UID ➢ 文件的GID ➢ 一些时间戳:inode状态的改变时间、文件的最后访问时间、最后修改 时间 ➢ 访问权限和文件模式