- 1、本文档共109页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式Linux操作系统 嵌入式系统教研室 张荣高 第一章 嵌入式系统基础 1.4 Linux目录结构及文件 Linux文件系统采用多级目录的树型层次结构管理文件,最上层是根目录,用/表示。在根目录之下是各层目录和文件。每个目录和文件都有由多个字符组成的目录名或文件名。 系统在运行中通过使用命令或系统调用进入任何一层目录,这时系统所处的目录称为当前目录。 Linux使用两种方法来表示文件或目录的位置,绝对路径和相对路径。 绝对路径是从根目录开始依次指出各层目录的名字,它们之间用“/”分隔,如/usr/include。 相对路径是从当前目录开始,指定其下层各个文件及目录的方法,如系统当前目录为/usr,bin/cc。 需要注意的是Linux文件系统区分大小写,并且Linux文件没有扩展名的概念。 1.4 Linux目录结构及文件 Linux 文件系统组件的体系结构 1.4 Linux目录结构及文件 Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各类文件系统进行统 一管理,Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口。 1.4 Linux目录结构及文件 Linux的文件系统由两层结构组成。第一层是虚拟文件系统(VFS),第二层是各种不同的具体的文件系统。 VFS就是把各种具体的文件系统的公共部分抽取出来,形成一个抽象层,是系统内核的一部分。它位于用户程序和具体的文件系统之间,对用户程序提供了标准的文件系统调用接口。对具体的文件系统,它通过一系列对不同文件系统公用的函数指针来调用具体的文件系统函数,完成实际的操作。任何使用文件系统的程序必须经过这层接口来使用它。通过这样的方式,VFS就对用户屏蔽了底层文件系统实现上的细节和差异。 1.4 Linux目录结构及文件 1.4 Linux目录结构及文件 VFS的主要目的在于引入了一个通用文件模型(common file model),这个模型的核心是4个对象类型,即 超级块对象(superblock object) 索引节点对象(inode object) 文件对象(file object) 目录项对象(dentry object) 它们都是内核空间中的数据结构,是VFS的核心,不管各种文件系统的具体格式是什么样的,都要和VFS的通用文件模型相交互。 1.4 Linux目录结构及文件 1.4 Linux目录结构及文件 1.超级块对象 超级块对象是用来描述整个文件系统的信息。VFS超级块是由各种具体的文件系统在安装时建立,只存在于内存中。包含以下主要信息: 设备标识符。这是存储文件系统的物理块设备的设备标识符,如系统中第一个IDE磁盘/dev/hda1的标识符是0x301。 索引节点指针。安装索引节点指针指向被安装的子文件系统的第一个索引节点;覆盖索引节点指针指向安装文件系统目录(安装点)的索引节点。根文件系统的VFS超级块中没有覆盖索引节点指针。 数据块大小。文件系统中数据块的字节数。 超级块操作集。指向一组超级块操作例程的指针,VFS利用它们可以读写索引节点和超级块。 文件系统类型。指向所安装的文件系统类型的指针。 文件系统的特殊信息。指向文件系统所需要信息的指针 1.4 Linux目录结构及文件 2.索引节点对象 Linux继承了UINX的文件管理方法,把文件名和文件控制信息分开管理,文件控制信息单独组成一个称为i节点(inode)的结构体,即索引节点。 索引节点实质上是一个由系统管理的“目录项”。每个文件对应一个inode,它们有唯一的编号,称为inode号。Linux的目录项只由两部分组成:文件名和inode号 1.4 Linux目录结构及文件 3.目录项对象 在VFS中,目录也属于文件。路径中的每个组成部分都由一个索引节点对象表示。VFS经常需要执行和目录相关的操作, VFS引入了目录项的概念。 每一个文件除了有一个索引节点对象外,还有一个目录项dentry结构。dentry结构描述的是逻辑意义上的文件,描述其逻辑意义上的属性,因此目录项对象在磁盘上并没有对应的映像。 dentry和inode所描述的目标不同,dentry结构代表的是逻辑意义上的文件,所描述的是文件逻辑上的属性,因此,目录项对象在磁盘上并没有对应的映像;而inode结构代表的是物理意义上的文件,记录的是物理上的属性 dentry结构有个d_inode指针指向相应的inode结构 1.4 Linux目录结构及文件 4.文件对象 文件对象是已打开的文件在内存中的表示,主要用于建立进程和磁盘上的
文档评论(0)