外观

在现代操作系统引入文件系统主要基于以下4方面原因。
因此,现代操作系统基恩上都有文件系统,使用户按文件名存取文件信息更加方便。
文件是信息的一种组织形式,是存储在外存中具有文件名的一组相关信息的集合,如源程序、数据、目标程序等。文件由创建者定义,任何一段信息,只要给定一个文件名并将其存储在某一存储介质上就形成了一个文件,它包含两个方面的信息:一是本身的数据信息;二是附加的组织与管理信息。文件是操作系统进行信息管理的最小单位。文件主要有以下三个特点。
一个文件通常由若干称为逻辑记录的较小单位组成,记录是一个有意义的信息集合,是对文件进行存取的基本单位。一个文件的各个记录可以是等长的也可以是不等长的。最简单的情况下一个记录只有一个字符(视为字符流文件)。所以文件的记录是一个可编址的最小信息单位,其意义由用户或文件的创建者定义。文件应保存在一种存储介质上,如磁带、磁盘、光盘、优盘等。 某些慢速的字符设备,因为设备上传输的信息可以视为一组顺序字符序列,所以也可以视为一个文件,称为设备文件。此外,多数文件都有一个扩展名,并通过扩展名来表示文件的类别。 用户看到的文件称为逻辑文件,逻辑文件的内容(数据)可由用户直接处理,它是独立于文件的物理特性。逻辑文件是以用户观点并按用户“思维”把文件抽象为一种逻辑结构清晰 、使用简便的文件形式,供用户存取、检索和加工文件中的信息。物理文件是按某种存储结构实际存储在外存上的文件,它与外存介质的存储性能有关,操作系统按文件的物理结构管理文件并与外存设备打交道。 文件是文件系统管理的基本对象。用户通过文件名来访问和区分文件。每个文件都有自己的属性,常见的文件属性包括:
大部分操作系统支持多种文件。根据文件的内容是用户数据还是文件系统本身的数据将文件分为以下三种:
文件系统是操作系统中负责管理和存取文件的程序模块,它由实现文件管理的有关软件、实施文件管理所需的数据结构(如文件控制块、存储分配表等)以及被管理的文件组成。从系统角度来看,文件系统是对外存文件存储空间的组织和分配,负责文件存储并的存入的文件进行保护和检索的系统。文件系统的主要目的是实现对文件的按名存取,它具有以下6种功能。
Madnick将文件系统划分为以下8层。
传统的操作系统中只设计了一种文件系统,因此只能支持一种类型的文件系统,但随着信息技术的快速发展,对文件系统提出了新的要求。如要求在UNIX系统中支持费UNIX文件系统,要求在Windows系统中支持非Windows文件系统,要求现代操作系统能够支持分布式文件系统和网络文件系统,甚至一些用户希望能定制自己的文件系统。解决上述问题有多种方案,其中成文事实上工业标准的是虚拟文件系统。 虚拟文件系统的主要设计思想体现在两个层次上,即虚拟层和实现层。虚拟层是在对多个文件系统的共同特性进行抽象的基础上形成的,并在此层次上定义用户的一致性接口;实现层使用类似开关表技术进行文件系统转接,实现各文件系统的具体细节,包含文件系统实现的各种设施,各种数据结构以及对文件的操作函数。 虚拟文件系统要实现以下目标:1、应同时支持多种文件系统;2、系统中可以安装多个文件系统,它们应与传统的单一文件系统没有区别,用户的使用接口不变;3、对网络共享文件提供完全支持,即访问远程节点上的文件系统应与访问本地节点的文件系统一直。4、支持新开发出的文件系统,并以模块方式加到操作系统中。 严格地说,虚拟文件系统并不是一种实际存在的文件系统,它只存在于内存张红,不存在与外存空间,在操作系统启动时建立,在系统关闭时消亡。
文件系统将用户的逻辑文件按一定的组织方式,转换成物理文件存放到外存(如磁盘)上。也就是说,文件系统为每个文件与该文件在外村上的存放位置建立了对应关系。为了方便使用,文件系统通常向用户提供来各种调用接口,用户通过这些接口对文件进行各种操作。当用户使用文件时,文件系统通过用户给出的文件名查找出该文件在外存上的存放位置,并读出文件的内容。有的文件操作系统是对文件自身的操作,如建立文件、打开文件、关闭文件、读写文件及设置文件权限等,有的文件操作是对记录的操作(最简单的记录可以是一个字符),如查找文件中的字符串、插入和删除等。 在多用户环境下,为了文件安全和保护起见,操作系统为每个文件建立和维护关于文件访问权限等方面的信息。因此文件系统提供了操作文件的命令接口、图形接口和程序接口(系统调用)。用户可以使用命令接口和图形接口直接进行文件操作,或者在程序中通过系统调用实现文件操作。
当用户进程将信息存放到外存上时,需要向系统提供文件名、设备号、文件属性及存取控制信息(文件类型、记录大小、保护级别等),以便建立文件。因此文件系统应完成以下5种功能。
在某些文件系统中,可以隐含地执行文件建立操作,即系统发现有一批信息呀写入一个尚未建立的文件时,就自动先建立一个临时文件,当用户进程真正写文件时,才将临时文件中的信息写入用户命名的文件中。
使用已经存放在外存(如磁盘)上的文件之前,要通过打开文件操作系统建立起文件与用户之间的联系。打开文件应完成以下三种功能。
文件读操作是通过读指针将位于外存中的数据读到内存缓冲区;文件写操作是通过写指针将内存缓冲区中的数据写到外存中。文件打开以后,就可以使用读写文件的系统调用访问文件,要进行文件读写应给出文件名、内存地址、读写字节数等有关信息。读写文件应完成以下4种功能。
一旦文件使用完毕应当及时关闭文件,关闭文件操作就是切断该外存文件与内存之间的联系。关闭文件时系统要做的主要工作有以下两项。
文件关闭之后若要再次访问该文件,则必须将其重新打开。
当一个文件不再使用时,可以向系统提出删除该文件的请求。删除文件时系统要做的工作主要有以下两项。
除上述常用的文件操作外,为了方便用户使用文件,通常文件系统都提供了有关文件操作的系统调用。可将这些系统调用分成若干类,最常用的一类是有关文件属性操作的,即允许用户直接设置和获得文件的属性,如改变已有文件的文件名、改变文件的所有者(文件主)、改变文件的访问权限以及查询文件的状态(包括文件类型、大小和所有者以及对文件的访问权限)等;另一类是有关目录的,如创建一个目录、删除一个目录、改变当前目录和工作目录等。此外,还有用于实现文件共享的系统调用和用于对文件系统进行操作的系统调用等。 要说明的是,许多文件操作可以利用上述基本操作加以组合来实现。如创建一个文件副本的操作可以利用两条基本操作来实现:第一步是利用创建文件的系统调用来创建一个新文件;第二步是将原有文件中的内容写入新文件。