第7章 文件系统.pdfVIP

  • 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)

1亿VIP精品文档

相关文档