- 0
- 0
- 约6.34万字
- 发布于河北
- 举报
- 文档已下架,其它文档更精彩
第七章文件系统
■Linux操作系统支持许多不同类型的文件系统。本章介绍
虚拟文件系统和高速缓存的概念,并讨论在Linux中最
常见的/proc、Ext2和Ext3文件系统。
7.1虚拟文件系统
-文件系统是Unix系统最基本的资源。文件系统的作用就是
在应用概念的文件和存储设备之间提供一个中间层,以使
多个文件驻留在一个存储设备上,由文件系统来管理所有
文件的存储。文件系统将每个存储设备化为一系列目录,
每个目录含有若干文件。
7.1」虚拟文件系统概述
■为了在不同文件系统之间可以方便地交换数据和管理,并
支持可任意地挂装不同文件系统,现代的操作系统大多都
在系统内核和文件系统之间提供一个叫做虚拟文件系统
(VirtualFileSystem,VFS)的标准接口。Linux虚
拟文件系统维护描述整个虚拟文件系统以及实际已挂装的
文件系统的数据结构。对于内核其他子系统来说,所有的
文件系统都是一样的。因此,一个逻辑文件系统要想被
Linux支持,就必须按照这个接口来编写自己的操作函数,
从而将自己的细节对其他子系统隐藏起来。对于逻辑文件
系统来说,VFS是一个管理者,而对于内核的其他部分,
则是一个统一的接口。图7」是虚拟文件系统和实际文件
之间的关系示意图。
7.1.1虚拟文件系统概述
图7.1虚拟文件系统和实际文件系统之间的关系示意图
711虚拟文件系统概述
■每个文件系统在初始化时,首先在VFS中进行注册。如
果文件系统内建于内核中,则在系统引导时初始化;如果
文件系统作为内核可装载的模块,则在挂装某个文件系统
时进行初始化。在挂装某种基于块设备的文件系统(包括
root文件系统)时,VFS必须读取其超块。不同类型的
文件系统所对应的超块读取例程必须能够理解实际文件系
统的拓扑结构,并且能够将实际的超块结构映射为VFS
超块结构。每个VFS超块包含了文件系统信息,并且还
包含一些完成特定功能的函数指针。例如,某个超块代表
一个已挂装的Ext2文件系统,则超块中包含有专门读取
Ext2文件系统索引节点的函数地址。每个VFS超块中包
含指向实际文件系统第一个VFS索引节点的指针。对于
root文件系统来说,第一个索引节点就是代表目录的
节点。对Ext2文件系统来说,这种映射关系非常高效。
7.1.2基本对象与方法
■虚拟文件系统的接口由一组对象及其由这些对象调用的一
组方法所构成的。这些基本的对象是files(文件),
file-systems(文件系统),inodes(索引节点)以及
namesforinodes(索引节点名字),下面对这些对象
进行简单的介绍:
7.1.2基本对象与方法
・1.文件―
■文件(files)是一个可读可写的对象,它也可以映射到内
存中,这和Unix中文件描述符的概念很接近。文件在
Linux中使用一个structfile”结高来实现,异且该结构
有一组操作窗数,保存在结构,,structfile_operations
中。
7.1.2基本对象与方法
■2,索引节点
■索引节点(inodes)是文件系统中的基本对象。它可以是
一个正常文件,一个目录,一个符号链接,或者是其他什
么东西。VFS并不明显地区分这些对象,而把它们留给
真正的文件系统,让它们自己实现适宜的行为。从而使内
核的高层子系统对于不同的对象区别对待。
■每一个索引节点都由一个structinode”结构表现,它的
q
一组方法保存在结构struct
原创力文档

文档评论(0)