590 likes | 848 Views
第 5 章 文件系统. 本章内容. 5.1 文件系统概述 5.2 文件的逻辑组织和物理组织 5.3 目录文件 5.4 文件存储空间的管理 5.5 文件的共享和文件系统的安全性 5.6 Linux 文件系统. 5.1 文件系统概述. 5.1.1 文件及其分类 5.1.2 文件系统的功能. 1. 文件. 文件 是 被命名的相关信息的集合体 ; 通常存放在 外存上 ,可作为一个 独立单位 被存放和实施相应的操作。 一般地,文件是由二进制代码、字节、行或记录组成的序列,它们由文件创建者或用户定义。
E N D
本章内容 5.1 文件系统概述 5.2 文件的逻辑组织和物理组织 5.3 目录文件 5.4 文件存储空间的管理 5.5 文件的共享和文件系统的安全性 5.6 Linux文件系统
5.1 文件系统概述 5.1.1 文件及其分类 5.1.2 文件系统的功能
1. 文件 • 文件是被命名的相关信息的集合体; 通常存放在外存上,可作为一个独立单位被存放和实施相应的操作。 • 一般地,文件是由二进制代码、字节、行或记录组成的序列,它们由文件创建者或用户定义。 • 很多不同类型的信息都可存放在文件中,如源程序、目标程序、可执行程序、数值数据、文本、工资单、图形图像、录音等。
2. 文件类型 (1)按用途分类 • 系统文件: 由OS及其它系统程序的信息所组成的文件, 一般不对用户直接开放,只能通过系统提供的系统调用为用户服务。 • 库文件:由标准子程序及常用的应用程序组成,允许用户使用,但不能修改。 • 用户文件:由用户创建、管理的文件,如源程序、目标程序、原始数据、计算结果等。可由其创建者(即文件主)或被授权者进行适当的读、写或其它操作。
(2)按文件中的数据形式分类 • 源文件:从终端或输入设备输入的源程序和数据所构成的文件,通常由ASCII码或汉字组成。 • 目标文件:源程序经过相应语言的编译程序进行编译后,尚未经链接处理的目标代码所形成的文件。它属于二进制文件。 • 可执行文件:经过编译、链接之后所形成的可执行目标文件。
(3)按存取权限分类 • 只读文件:仅允许对其进行读操作的文件,不允许写操作。 • 读写文件:允许文件主和被授权用户对其进行读或写操作的文件。 • 可执行文件:允许被授权用户执行它,但通常不允许读或写。
(4)按保存时间分类 • 临时文件: 用户在一次解题过程中建立的”中间文件”,它只保存在磁盘上,当用户退出系统时,它也随之撤销。 • 永久文件:长期保存的有价值的文件,以备用户经常使用。
(5)UNIX/Linux和MS-DOS系统文件构成 • 普通文件:由表示程序、数据或文本的字符串构成,内部无固定的结构。包括如下类型:源程序文件、数据文件、目标代码文件、系统文件、库文件(如标准I/O文件和数学函数文件)。 • 目录文件:由下属文件的目录项构成的文件。对目录文件可进行读、写等操作。
特殊文件:特指各种外部设备。为了便于统一管理,将所有I/O设备都作为文件对待,按文件格式提供用户使用。如目录查找、存取权限验证等方面与普通文件相似,而在具体读、写操作上,要针对不同设备的特性进行相应处理。特殊文件:特指各种外部设备。为了便于统一管理,将所有I/O设备都作为文件对待,按文件格式提供用户使用。如目录查找、存取权限验证等方面与普通文件相似,而在具体读、写操作上,要针对不同设备的特性进行相应处理。 • 特殊文件分为: • 字符特殊文件:有关I/O设备,如终端、打印机和网络等; • 块特殊文件:存储信息的设备,如硬盘、软盘和磁带等。
普通文件分为:ASCII码和二进制文件. • ASCII码文件:由只包含ASCII码字符的正文行组成,每个正文行以回车符或换行符终止,各行长度可不同。又称为正文文件,用来存储资料、源程序代码和文本数据。 特点: 可直接显示和打印,可用普通文件编辑器编辑。 • 二进制文件:由二进制代码构成,是一种更为有效的方式,但它不能在终端上直接显示出来。如可执行文件(有内部结构)。
举例1 UNIX/Linux系统二进制文件构成: • 文件头: 由幻数(标志可执行文件的特征), 正文段长度, 数据段长度, BSS段长度, 符号表长度, 入口单元及各种标志组成。 • 正文段: • 数据段: • 重定位区: 实现重定位; • 符号表区: 用于调试程序。
举例2 存档文件也是二进制文件: • 存档文件: 在UNIX/Linux系统中,它由编译过、但未链接的库过程(模块)集合组成. • 结构:在在其目标模块前有一文件头。文件头由模块名、 创建日期、 文件主、保护代码和文件长度等项组成. 文件头全是二进制代码。
3. 文件命名 • 文件是抽象机制,其最重要的特性就是“按名”管理对象。用户对文件也是“按名存取”的。 • 不同系统对文件的命名规则是不同的,但所有操作系统都允许由1~8个字母构成的字符串作为合法的文件名。数字和特殊字符也可出现在文件名中。 • 文件名.扩展名。二者间用圆点分开,如prog.c。
5.1 文件系统概述 5.1.1 文件及其分类 5.1.2 文件系统的功能
5.1.2 文件系统的功能 • 文件系统:是指OS中负责操纵和管理文件的一整套机制,实现文件的共享与保护,方便用户“按名存取” 。 • 文件系统的功能: • 文件管理 • 目录管理 • 文件存储空间的管理 • 文件的共享和保护 • 提供方便的接口
文件管理:能够按照用户要求创建、删除文件,对指定的文件进行打开、关闭、读、写、执行等操作。 • 目录管理:为每个文件建立一个文件目录项,若干文件的目录项构成一个目录文件,对用户指定的文件进行检索和权限验证、 更改工作目录等。 • 文件存储空间的管理:由文件系统对文件存储空间进行统一管理,包括对文件存储空间的分配与回收,并为文件的逻辑结构与它在外存上的物理地址之间建立映射关系。
文件的共享与保护:在系统控制下使一个用户可共享其它用户的文件。另外,为防止对文件的未授权访问或破坏,文件系统应提供可靠的保护和保密措施,如口令、存取权限及文件加密等。并应具有数据转储和恢复的能力。 • 提供方便的接口:为用户提供统一的文件存取方式,即用户只要用文件名就可对存储介质上的信息进行相应操作,实现“按名存取”。OS向用户提供一个使用方便的接口,主要是有关文件操作的系统调用,供用户编程时使用。
本章内容 5.1 文件系统概述 5.2 文件的逻辑组织和物理组织 5.3 目录文件 5.4 文件存储空间的管理 5.5 文件的共享和文件系统的安全性 5.6 Linux文件系统
5.2 文件的逻辑组织和物理组织 5.2.1 文件的逻辑组织 5.2.2 用户对文件的存取方法 5.2.3 文件的物理组织
用户和系统设计人员看待同一文件的角度往往是不同的。用户和系统设计人员看待同一文件的角度往往是不同的。 • 用户对文件的观察和使用是从自身处理文件中数据时采用的组织方式来看待文件组织形式。这种从用户观点出发所见到的文件组织形式称为文件的逻辑组织。 • 系统设计人员看待文件时要考虑文件具体在存储设备中如何放置、如何组织目录、如何实现存取等细节,这与存储介质的存储性能有关。文件在存储设备上的组织形式称为文件的物理组织。
一个字节 5.2.1 文件的逻辑组织 1.无结构文件:文件内部不再划分记录,是由一组相关信息组成的有序字符流,又称为流式文件。长度直接按字节计算。如:源程序、可执行程序、库函数等。UNIX和Windows系统将所有文件都看做流式文件。
一条记录 • 有结构文件:又称记录式文件。它在逻辑上可被看成一组连续记录的集合,即文件由若干相关记录组成,且对每个记录编上号码,依次为记录1、记录2、······、记录n。 每个记录是一组相关的数据集合,用于描述一个对象某个方面的属性,如年龄、姓名、职务、工资等。
记录式文件按记录的长度是否相同,又可分为:记录式文件按记录的长度是否相同,又可分为: • 定长记录文件:文件中所有记录的长度都相同,文件的长度可用记录的数目来表示。定长记录处理方便,开销小,被广泛用于数据处理中。 • 变长记录文件:文件中各记录的长度不相同。在处理之前,每个记录的长度是已知的。
5.2 文件的逻辑组织和物理组织 5.2.1 文件的逻辑组织 5.2.2 用户对文件的存取方法 5.2.3 文件的物理组织
5.2.2 用户对文件的存取方法 • 文件的存取方法是由文件的性质和用户使用文件的方式决定的。按存取的顺序来分,有顺序存取和随机存取两类。 • 顺序存取方法:文件可以看成一条信息带,按顺序存取。针对的存储介质是磁带。 • 顺序存取定长记录 rpi+1 = rpi+l(记录长度) • 顺序存取变长记录 rpi+1 = rpi+li (第i个记录的长度)
随机存取方法:也称为直接存取,是基于磁盘的文件存取模式。随机存取方法:也称为直接存取,是基于磁盘的文件存取模式。 • 随机存取定长记录文件:将文件视为一系列编上号的块或记录,每块大小相同,访问时,计算出块位置,直接读取。 • 随机存取变长记录文件:允许以任意顺序读取文件中的信息,主要用于对大批信息的立即访问,如对大型数据库的访问。当接到访问请求时,系统计算出信息所在块的位置,然后直接读取其中的信息。 先要设置读写指针的当前位置,可用专门的操作seek实现。然后,从这个位置开始读取文件内容。
3. 其他存取方法 • 建立在随机存取方法之上,一般包含对文件的索引构造。 • 通常采用索引表组织方式。每个文件有一个索引表。索引表是按记录号顺序排列的,每个表项有两个数据项:记录长度和指向该记录在文件空间中首地址的指针。 • 首先利用记录号作为索引,可以很快找到表中的项,从而获取所需记录的首地址。 • 对于大型文件,索引文件本身也变得很大,需占用大量内存。解决此问题的一种办法是建立二级索引。
5.2 文件的逻辑组织和物理组织 5.2.1 文件的逻辑组织 5.2.2 用户对文件的存取方法 5.2.3 文件的物理组织
5.2.3 文件的物理组织 • 文件的物理组织涉及文件在存储设备上是如何放置的。它和文件的存取方法有密切关系,另外也取决于存储设备的物理特性。 • 基本的文件物理存储组织形式有4种:连续文件、链接文件、索引文件、多重索引文件。
连续文件 • 连续文件(又称作顺序文件)是基于磁带设备的最简单的物理组织形式,它是把一个逻辑上连续的文件存放在连续编号的物理块(或物理记录)中 。 • 优点:顺序存取时速度较快,适合存放系统文件。 • 缺点: • 建立文件时确定其长度,依此分配存储空间,很难实现; • 不便于文件的动态扩充; • 可能出现外部碎片。
…… …… 文件说明 首块块号30 磁带 文件长度4 29 30 31 32 33 …… fileA 目录 连续文件的结构
链接文件 • 将逻辑上连续的文件分散存放在不同的物理块中,这些物理块不要求连续和按规则排列。在各物理块中设立文件指针(链接字),指示该文件的下一个物理块。 • 优点:克服连续文件的缺点,不会产生外部碎片。 • 缺点: • 一般仅适合于对信息的顺序访问,不利于对文件的随机存取; • 各物理块增加链接字,为信息管理增加了麻烦; • 可靠性降低。
…… 文件FileB说明 首块块号1 1块 8块 3块 14块 28块 …… 8 3 14 28 NULL 目录 链接文件的结构
索引文件 • 索引文件是实现文件信息非连续存放的另一种方案。系统为每个文件建立一个索引表,其中的表项指出存放该文件的各个盘块号,而索引表本身也保存在一个盘块中。 • 优点:克服链接文件的缺点,可方便地进行随机存取。 • 缺点: • 增加索引表带来了空间开销; • 降低了文件存取速度,加重了I/O负担。 • 改进方法:把索引表部分或全部放入内存。这是以内存空间代价来换取存取速度的方法。
多重索引文件 • 因单一的索引表结构无法满足灵活性和节约内存的要求,故引出多重索引结构(又称多级索引结构)。这种结构采用间接索引方式。即最初由索引项中得到某个盘块号,该块中存放的信息是另一组盘块号;而后者每一块中又可存放下一组盘块号(或者是文件本身信息),这样间接几级(通常为1~3级),最末尾的盘块中存放的信息一定是文件内容。 • 优点:除具有一般索引文件的优点外,还可满足对灵活性和节约内存的要求。 • 缺点:间接索引需要多次访问磁盘而影响速度。
本章内容 5.1 文件系统概述 5.2 文件的逻辑组织和物理组织 5.3 目录文件 5.4 文件存储空间的管理 5.5 文件的共享和文件系统的安全性 5.6 Linux文件系统
5.3 目录文件 5.3.1 文件控制块和文件目录 5.3.2 目录结构
1. 文件控制块 • 文件控制块:为了便于对文件进行控制和管理,在文件系统内部,给每个文件唯一地设置一个文件控制块。 • 数据结构: • 文件名:符号文件名,如file5,mydata,m1.c等; • 文件类型:指明文件的属性,是普通文件/目录文件/特别文件;是系统文件/ 用户文件等;
位置:指针,指向存放该文件的设备和该文件在设备上的位置,如哪台设备的 哪些盘块上。 • 大小:文件的大小(以字节/字/块为单位)和允许的最大值; • 保护信息:对文件读、写及执行等操作的控制权限标志; • 使用计数:打开该文件的进程数; • 时间:日期和进程标志,这个信息反映出文件有关创建、最后修改、最后使用等情况、可用于文件实施保护和监控等。
2. 文件目录 • 文件目录:文件控制块的有序集合。 • 目录项:文件目录中的一个文件控制块。 • 目录文件:由目录项构成的文件。 • 文件目录的最基本的功能:将文件名转换成该文件在外存的物理位置的功能,实现文件名与存放盘块之间的映射。
5.3 目录文件 5.3.1 文件控制块和文件目录 5.3.2 目录结构