1、文件类型
---- 为了便于管理和控制文件而将文件分成若干种类型。由于不同系统对文件的管理方式不同,因而它们对文件的分类方法也有很大差异。
为了方便系统和用户了解文件的类型,在许多OS中都把文件类型作为扩展名而缀在文件名的后面,在文件名和扩展名之间用“.”号隔开。
下面是常用的几种文件分类方法。
-- 1)按用途分类
根据文件的性质和用途的不同,可将文件分为三类:
----- 系统文件。由系统软件构成的文件。大多数的系统文件只允许用户调用,但不允许用户去读,更不允许修改。
----- 用户文件。由用户的源代码、目标文件、可执行文件或数据等所构成的文件。用户将这些文件委托给系统保管。
----- 库文件。由标准子例程及常用的例程等所构成的文件。这类文件允许用户调用,但不允许修改。
-- 2)按文件中数据的形式分类
----- 源文件。由源程序和数据构成的文件。通常由终端或输入设备输入的源程序和数据所形成的文件都属于源文件。
----- 目标文件。把源程序经过相应语言的编译程序编译过,但尚未经过链接程序链接的目标代码所构成的文件。它属于二进制文件。
通常,目标文件所使用的后缀名是".obj".
----- 可执行文件。把编译后所产生的目标代码再经过链接程序链接后所形成的文件。
-- 3)按存取控制属性分类
根据系统管理员或用户所规定的存取控制属性,可将文件分为三类:
----- 只执行文件。只允许被核准的用户调用执行,既不允许读,更不允许写。
----- 只读文件。只允许文件主及被核准的用户去读,但不允许写。
----- 读写文件。允许文件主和被核准的用户去读或写的文件。
-- 4)按组织形式和处理方式分类
根据文件的组织形式和系统对其的处理方式,可将文件分为三类:
----- 普通文件。由ASCII码或二进制码组成的字符文件。
一般用户建立的源程序文件、数据文件、目标代码文件及操作系统自身代码文件、库文件等都是普通文件,它们通常存储在外存储设备上。
----- 目录文件。由文件目录组成的,用来管理和实现文件系统功能的系统文件,通过目录文件可以对其它文件的信息进行检索。
由于目录文件也是由字符序列构成,因此对其可进行与普通文件一样的种种文件操作。
----- 特殊文件。特指系统中的各类I/O设备。为了便于统一管理,系统将所有的输入/输出设备都视为文件,按文件方式提供给用户使用。
如目录的检索、权限的验证等都与普通文件相似,只是对这些文件的操作是和设备驱动程序紧密相连的,系统将这些操作转为对具体设备
的操作。根据设备数据交换单位的不同,又可将特殊文件分为块设备文件和字符设备文件。
前者用于磁盘、光盘或磁带等块设备的I/O操作,而后者用于终端、打印机等字符设备的I/O操作。
2、文件系统模型
文件系统模型分为三个层次,最底层是对象及其属性;中间层是对对象进行操纵和管理的软件集合,最高层是文件系统提供给用户的接口。
文件系统模型如下图所示:
1)对象及其属性
文件管理系统管理的对象有:a. 文件。文件管理的直接对象。b. 目录。为了方便用户对文件的存取和检索,在文件系统中必须配置目录,每个
目录项中,必须含有文件名及该文件所在的物理地址(或指针)。对目录的组织和管理是方便用户和提高对文件存取速度的关键。
c. 磁盘(磁带)存储空间。文件和目录占用存储空间,对这部分空间的有效管理,不仅能提高外存的利用率,而且能提高对文件的存取速度。
2)对对象操纵和管理的软件集合
这是文件管理系统的核心部分。文件系统的功能大多是在这一层实现的,其中包括:对文件存储空间的管理、对文件目录的管理、用于将文件
的逻辑地址转换为物理地址的机制、对文件读和写的管理,以及对文件的共享与保护等功能。
3)文件系统接口
为方便用户使用文件系统,文件系统通常向用户提供两种类型的接口:
----- 命令接口。作为用户与文件系统交互的接口。用户可通过键盘终端键入命令,取得文件系统的服务。
----- 程序接口。作为用户程序与文件系统的接口。用户程序可通过系统调用来取得文件系统的服务。