6.2 内容精要

6.2.1 文件与文件系统

文件是由操作系统管理的。有关文件的组织、命名、存取、使用、保护、管理方法都是操作系统设计的主要内容。操作系统中与管理文件有关的软件和数据称为文件系统,它负责为用户建立文件,撤销、读写、修改和复制文件,并对文件按名存取和存取控制。

1.文件

文件是数据的一种组织形式。在计算机系统中,文件是存储在外部存储介质上,由文件名标志的一组信息的集合。具体地说,文件是一组赋名的相关联的字符流集合,或者相关联的记录集合。文件建立在外存空间,并且一旦建立,就一直能够长期保存,直到被删除或超过事先规定的保存期限。

基于不同的划分方式,可以将文件划分成不同的类型。

(1)按文件性质和用途

1)系统文件:由系统软件构成的文件,多数只能被调用,有些对用户不开放。

2)用户文件:是用户委托文件系统保存的文件,主要由源程序、目标程序、用户数据库等组成。

3)库文件:由标准子程序及常用的例程等组成,允许用户调用但不能修改的文件。

(2)按数据的形式

1)源文件:由源程序和数据构成的文件。

2)目标文件:源程序经编译器编译后的文件。

3)可执行文件:源程序经编译器编译后的目标代码与连接程序连接后所形成的文件。

(3)按组织形式

1)普通文件:既包括系统文件,也包括用户文件和库文件与实用程序文件。

2)目录文件:由文件的目录信息构成的文件。

3)特殊文件:在UNIX系统中,所有的输入、输出设备都看成是特殊文件。

(4)按信息保存期限

分为临时文件、永久文件、档案文件。

(5)按文件的保护级别

分为只读文件、读写文件、可执行文件。

(6)按文件的逻辑结构

分为流式文件和记录文件。

(7)按文件的物理结构

分为顺序(连续)文件、链接文件、索引文件。

2.文件的组成

从文件的管理角度来说,一个文件包含两部分的内容:文件体和文件控制块(File Control Block,FCB)两部分。文件体是指文件所包含的内容,它可能是记录式文件或字符流式文件。文件控制块是文件的说明,主要是文件自身的说明信息。文件控制块一般包括如下信息:

1)基本信息类:文件名、用户名、文件类型、文件的外存地址、文件逻辑结构、文件的物理结构。

2)存取控制信息类:文件拥有者的存取权限、核准用户的存取权限、一般用户的存取权限、文件口令等。

3)使用信息类:文件当前大小、文件建立的日期与时间、文件最近修改的日期与时间。

3.文件系统的概念

文件系统是操作系统在磁盘上组织文件的方法,是操作系统中负责管理和存储文件信息的软件机构。对于文件的访问最后都将落实到对磁盘等设备的I/O操作,因而从软件层次上说,文件系统位于设备之上。文件系统通常由两部分组成:一组文件和目录结构。

从用户的角度看,一个文件系统最重要的内容是文件如何组织、如何命名、如何保护以及允许对文件执行什么操作。

4.文件系统的功能和主要特点

从操作系统角度看,文件系统是对文件存储空间进行组织和分配、负责文件存储并对存入的文件进行保护和检索的系统。其主要任务是文件建立、保存、修改、撤销、复制、文件按名存取和存取控制等。

(1)文件系统的主要功能

1)文件的按名存取。实现名字空间到存储空间的映射。

2)文件目录的建立与维护。

3)文件组织。将逻辑文件保存在存储介质上。

4)文件共享、保护和保密。

5)统一管理文件的存储空间,实施存储空间的分配与回收。

6)向用户提供一个方便使用的接口,即一组易用的文件操作命令。

7)提供与设备管理交互的统一接口。

(2)文件系统的主要特点

1)友好的用户接口。

2)文件存取操作对用户是透明的。

3)多个用户可以共享某个文件。

4)可以存储大容量的信息。

5.文件系统层次结构

文件系统是操作系统中以文件方式管理计算机软件资源的软件,以及被管理的文件和数据结构的集合。文件系统的传统模型为层次模型,该模型由许多不同的层组成。每一层通过下一层的功能特性来创建新的功能,并向上层提供更多的功能,由下至上逐层扩展,最终形成一个功能完备、层次清晰的文件系统。1968年,Madnick和Dijkstra提出了图6-1所示的文件系统模型。

6.2 内容精要 - 图1

图 6-1 Madnick和Dijkstra提出的文件系统模型

第一层是用户接口,该层将不同的系统调用转换成相应的内部调用格式。

第二层是符号文件系统,该层将第一层提供的用户文件名转换成文件内部标志符fd。搜索符号文件目录表(Symbolic File Directory,SFD)(该表存放文件名和文件内部标志符),找到文件名对应的fd,并将fd作为参数传给第三层。

第三层是基本文件系统,该层根据第二层的调用参数fd,获得文件的说明信息,包括存取控制表、文件的逻辑结构、物理结构以及第一个物理块的地址等。

第四层是存取控制验证,主要功能是合法性检查,根据存取控制信息和用户访问要求,检验文件访问的合法性,从而实现文件的共享、保护和加密。

第五层是逻辑文件系统,主要功能是根据文件的逻辑结构,找到所要进行操作的数据或记录的相对块号,即将逻辑块号转换为相对块号。

第六层是物理文件系统,主要功能是根据文件的物理结构,将相对块号转换成实际的物理地址。

第七层是存储设备分配模块和设备策略模块。存储设备分配模块负责实现空闲存储块的管理;设备策略模块主要是将物理块号转换成相应文件存储设备所要求的地址格式。

第八层是文件系统与设备管理程序的接口层。

6.常用文件系统

随着操作系统的不断发展,越来越多的文件系统不断涌现。实际上现在几乎所有的操作系统都支持多种不同类型的文件系统。下面给出了一部分有代表性的文件系统。

(1)第二代扩展文件系统

第二代扩展文件系统(Second extended file system,Ext2)是GNU/Linux系统中标准的文件系统,支持长文件名、可选的逻辑数据块大小;可管理特大磁盘分区,文件系统最大可达4TB;数据更新时提供同步写入磁盘以及快速符号链接功能等。

(2)第三代扩展文件系统

第三代扩展文件系统(Third extended file system,Ext3)是Ext2系统的扩展,是一种日志式文件系统。在日志式文件系统中,当某个过程被中断时,系统可以根据详细记录的细节直接回溯并重整被中断部分,而不必花时间去检查其他部分,故重整的工作速度相当快。

(3)网络文件系统

网络文件系统(Network File System,NFS)是FreeBSD支持的文件系统中的一种,允许多台计算机之间共享文件系统,通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。

(4)高性能文件系统

高性能文件系统(High Performance File Systems,HPFS)是IBM的OS/2的文件系统。HPFS提供了DOS文件系统中FAT所没有的长文件名和性能增强特性,能访问较大的硬盘驱动器,并改善了文件系统的安全特性。

(5)文件分配表

文件分配表(File Allocation Table,FAT)文件系统开始应用于MS-DOS中。经过MS-DOS、Windows 3.x、Windows 9x、Windows NT、Windows 2000、Windows XP和OS/2等操作系统的不断改进,已经发展成为包含FAT12、FAT16和FAT32的庞大家族。FAT文件系统最适用于大约200 MB以下的驱动器或分区。

(6)新技术文件系统

新技术文件系统(New Technology File System,NTFS)是为Windows NT设计的新技术文件系统,是一个基于安全性的文件系统,建立在保护文件和目录数据的基础上。可以支持大小为2TB的分区,是一个可恢复的文件系统。NTFS通过使用标准的事务处理日志和恢复技术来保证分区的一致性。发生系统失败事件时,NTFS使用日志文件和检查点信息自动恢复文件系统的一致性。任何基于Windows的应用程序对NTFS分区上的压缩文件进行读取时,文件将自动进行解压缩,文件关闭或保存时会自动对文件进行压缩。在NTFS分区上,可以为共享资源、文件夹以及文件设置访问许可权限。