网络操作系统 ——
第五章 文件管理
前言
操作系统对 信息 进行的管理称为文件管理,主要是对信息的存储、检索、
更新、共享和保护进行管理。用户可以不必考虑文件存储空间的使用情况及如何组织 I/O,只需通过操作系统的文件管理实现“按名存取”。文件管理使用户彻底摆脱了与辅存在存储物理特性方面的联系。
这里的信息主要指软件资源由各种系统程序、应用程序、
数据库和图形库等信息资料组成。
主要内容介绍
本章主要介绍文件系统有关概念、文件系统组织基本原理、文件系统基本管理方法,然后以 windws2000系统中的服务器端的 NTFS文件系统为例来讨论文件系统的实现方法,以进一步了解和掌握文件系统管理方法。
5.1 文件系统概念
5.2 文件组织管理
5.3 文件系统结构
5.4 文件系统应用
应用实例,NTFS的文件管理
5.1 文件系统概念
0、简介
1、文件的概念
2、文件的操作
0、简介
文件系统:操作系统中与管理文件有关的程序和运行这些程序所需要的各种数据称为文件系统。
系统角度:文件系统是对文件存储器的存储空间进行组织、分配和回收,负责文件的存储、保护和检索。
用户角度:文件系统主要实现“按名存取”,使用户与文件具体的存放位置和文件的存储结构等透明,从而使文件系统成为用户与辅存之间的接口。
1、文件的概念
1)、文件:是具有一定名称的一组相关数据的集合。文件通常存储在外部存储介质上。
2)、文件命名
功能:将数据保存在外部存储介质上以便于访问
命名的差异:因文件系统而已,像
FAT2,8.3格式
NTFS:长文件名
EXT2( linux):没有长度限制在给文件命上不管哪种文件系统都会有一定的限制
3)、文件属性
一、文件数据:文件所包含的数据。
二、文件属性:文件本身的说明信息或属性信息。
文件属性主要描述文件的信息。
文件名称:是供用户使用的外部标识
文件内部标识:是一个编号,方便管理和查找
文件物理位置:具体标明文件在存储介质上所存放的物理位置
文件拥有者:
文件权限:
文件类型:
文件长度:
文件时间:
4)、文件分类
一、按文件的用途分类:
系统文件
库文件
用户文件
二、按文件的性质进行分类
普通文件
目录文件
特殊文件:
三、按文件的保护级别进行分类
只读文件:
读写文件:
可执行文件:
不保护文件:
四、按文件的数据的形式构成的文件
目标文件:
可执行文件:
5)、文件结构
一、定义:是指文件的组织形式
二、分类:
逻辑结构:从用户的观点出发,所看的是独立于文件物理特性的文件组织形式,
是用户可以直接处理的数据及其结构;
用户对文件的读写以记录为单位来进行。
物理结构:是文件在辅存上具体的存储结构。 文件由字符流组成,文件内部的信息不再划分单位。
2、文件的操作
1)、文件存取
定义:是指用户在使用文件时按何种次序存取文件。
存取方式:
文件顺序访问:按从前到后的顺序对文件进行读写操作。
文件随机访问:也称为直接访问,可以按任意的次序对文件进行读写操作。
文件索引访问:对文件中的记录按某个数据项的值来排列,从而可以根据键值来快速存取。
2)、文件操作
一、对文件的身身的操作
二、对记录的操作
三、常用的操作:
文件创建:
文件删除:
文件截断:
文件读 /写:
文件的读写定位:
文件打开:
文件夹关闭:
5.2 文件组织管理
1、文件的逻辑组织
2、文件的物理组织
3、文件的管理
4、文件系统模型
1、文件的逻辑组织
文件组织的目的:为了操作者能够快速访问、易于修改、节约存储空间,维护简单并逐步形成要有很好的可靠性,但是这些原则可能是矛盾。
1)、堆
组织方式:数据按它们到达的顺序被采集,每个记录由一串数据组成。
堆的目的仅仅是积累大量的数据并保存数据。
记录可以有不同的域,或者域相似但顺序不同。
因此,每个域 应该得自描述的,包括域名各值。
每个域的长度由定界符隐式地指定,或者明确地包含在一个子域中,或者是该域类型的默认长度。
在堆文件中没有结构,因而对记录的访问是通过穷举搜索。
当数据在处理前采集并存储时,或者当数据难以组织时,会用到堆文件。
2)、顺序文件
实现方法:所有记录都具有相同的长度,
并且由相同数目、长度固定的域按特定的顺序组成。
关键字域:每个记录的第一个域,唯一的标识这个记录
顺序文件通常用于批处理应用中。
具体采用存放的方法:
日志文件
把顺序文件组织成链表形式
3)、索引顺序文件
特征:
一、记录按照关键字域的顺序组织起来
二、支持自由访问的文件索引
三、备份文件
一级索引:每个记录由两个域组成,即关键字域和指向主文件的指针
4)、索引文件
方法:通过索引来访问记录,其结果是对记录的放置位置不再有限制,只要至少有一个索引的指针指向这个记录即可。
完全索引:包含主文件中每条记录的索引项,为了易于搜索,索引自身被组织成一个顺序文件
部分索引:只包含那些有可能会引起兴趣的域的记录的索引项。
5)、直接文件(散列文件)
直接文件开创了直接访问磁盘中任何一个地址已知的的块的能力。和顺序文件以及索引顺序文件一样,直接文件使用基于关键字的散列。
直接文件常在要求快速访问时使用,并且记录的长度是固定的,通常一次只访问一条记录。
2、文件的物理组织
文件组织实现的主要问题是如何在外部存储介质上为创建文件而分配空间,
为删除文件而回收空间,以及对空闲空间进行管理。磁盘可以随机存取的特性非常适合文件系统的实现,因此磁盘是最常用的文件系统实现的外部存储介质。
1)、空间分配策略
一、连续空间分配
每一个文件都占据了一个完整且连续的磁盘区域。对于这样的文件,由于空间的连续性,
当访问下一个磁盘块时,通常无需移支磁头,
而只有当磁头从一个磁道的最后一个块移向下一个磁道的第一个块时,才需要移磁头。
优点:实现简单、存取速度快
缺点:文件长度不易动态增加,易产生碎片二、链接空间分配
方式:每一个文件都有一张相应的磁盘块的链表。
优点:没有外部碎片,每一个空闲块都可以用来分配,文件的长度可以动态的增长
缺点:只有在顺序访问时,链接空间分配策略才是高效的。
三、索引空间分配
方式:每一个文件都有一个索引块。这个索引块就是一个表,每一个表项存放文件所占有的单个磁盘块的地址。
优点:避免了连续空间分配存在的外部碎片问题和文件长度受限制的问题,而且还支持对任何一个文件块的直接访问。
缺点:索引块的分配增加了系统存储空间的开销。
解决方案:多级索引技术四、组合空间分配
方法:是多种分配策略的组合
Unix文件系统中,每个文件都有一个对应的 I节点,其中可以有 15个指针用于空间分配。前 12个指针指向可以直接访问的磁盘块。
优点:不但具有以上多种分配策略的所有优点,而且非常灵活
2)、空闲空间管理
为了记录磁盘空闲空间,系统通常维持一个空闲空间表。这个表记录了所有的空闲块,也就是那些尚未分配给文件或目录的块。
一、空闲块位示图
空闲空间表可由位图或位矢量的方法实现。
优点:简单,查找容易
缺点:除非整个位图都装载入内存中,否则这个方法效率不高。
二、空闲块链表
实现方式:是通过链表来实现,它把磁盘上的所有的空闲块链接在一起。
成组链接,Unix中常用的一种方法
优点:是内存消耗少,
缺点:空闲空间表遍历的效率低
三、其他空闲块管理方法
3、文件的管理
建立文件系统的主要任务之一,是为了让用户借助于文件系统方便地访问辅存。
1)、目录功能
2)、目录结构
3)、目录操作
4)、目录实现
1)、目录功能
目录最基本的功能就是通过文件名可以快速方便地获取文件的属性信息
一、实现“按名操作”
二、提高检索速度
三、允许文件同名
四、允许文件共享
2)、目录结构
一、单级目录
不允许文件重名、文件查找速度慢
二、二级目录
提高了文件检索速度,部分地允许文件名重名
三、多级层次目录
查找快,允许文件重名、利用多级层次结构关系。
四、无环结构目录
五、图状结构目录
3)、目录操作
一、目录创建
二、目录删除
三、文件检索
四、目录打开
五、目录关闭
4)、目录实现
一、线性表算法
二、哈希表算法
三、其他算法( B+)
4、文件系统模型
一、文件系统的层次模型
二,SUN虚拟文件系统模型
三,Windows文件系统模型
四、常用的文件系统一、文件系统的层次模型
该模型由许多不同的层组成。
每一层都使用下一层的功能特性一类创建新的功能,为上一层服务
每一层都在下层的基础上,向上层提供更多的功能,由下至上逐层扩展,从而形成一个功能完备,层次清晰的文件系统。
优点:便于维护
能够满足操作系统和一般用户两方面的需要
层次模型的分层方法:
基本 I/O控制层
基本文件系统层
文件组织模块层
逻辑文件系统层二,SUN虚拟文件系统模型
1)、支持多个文件系统。
2)、有两个接口:用户和特定文件系统
VFS与用户的接口主要是 V节点。
VFS与特定文件系统的接口主要是通过 vfsops
来实现。
Linux文件系统包括三部分:
第一部分为 VFS,是 linux文件系统对外的接口。
第二部分是高速缓存区。
第三部分为真正最底层的具体文件系统。
三,Windows文件系统模型
I/O管理器:
负责处理所有设备的 I/O操作,通过设备驱动程序、中间驱动程序、过滤驱动程序、文件系统驱动程序来完成。
设备驱动程序:
中间驱动程序:
文件系统驱动程序:
过滤驱动程序:
具体见 P191图 5-10 windows文件系统模型
在以上组成构件中,与文件系统管理工作最为密切相关的当属 FSD。 FSD工作在内核模式中,但与其他标准驱动程序有所不同。 FSD必须先要向 I/O管理器注册,
FSD还要与内存管理与高速缓存管理器产生大理交互。因此,FSD使用了
Ntoskrnl出口函数的超集。
四、常用的文件系统
Sysv:Xenix的文件系统
Ext,ext2的旧版,linux早期的文件系统
Ext2:linux最常用的文件系统
NFS:网络文件系统
Hpfs:IBM OS/2文件系统
FAT,FAT12,FAT16,FAT32
NTFS:新技术文件系统所谓新技术指的是从操作上,和其结构上都采用了一些新的方法
5.3 文件系统结构
1,FSD体系结构
2,NTFS体系结构
3,windows2000文件系统
1,FSD体系结构
1)、本地 FSD
本地 FSD负责向 I/O管理器注册自已,当开始访问某个卷时,I/O管理大将调用
FSD来进行卷识别。
启动扇区位每个卷的第一个扇区。大小为 512B。包含了供确定卷上文件系统的类型和定位文件系统元数据的位置。另外,卷识别常常需要对文件系统进行一致性检查。
本地 FSD
远程 FSD
续前一页:
当完成卷识别后,本地 FSD还创建一个设备对象以表示所装载的文件系统。 I/O管理器也通过卷参数块为由存储管理所创建的卷设备对象和由 FSD所创建的设备对象之间建立连接。该
VPB连接将 I/O管理器的有关卷的 I/O请求转交给 FSD设备对象。
本地 FSD常用高速缓存管理器来缓存文件系统的数据,以提高性能。本地 FSD与内存管理器一起实现内存映射文件夹。本地 FSD也支持文件系统卸载操作,以便提供对卷的直接访问。
当应用程序需要通过文件系统访问数据时,
I/O管理器将重新装载文件系统
2)、远程 FSD
客户端 FSD:允许应用程序访问远程的文件和目录。
服务器端 FSD监听网络命令,接收网络文件系统协议命令并转交给本地 FSD去执行。
Windows 2000下,
客户端 FSD为 lanman重定向器。
服务器 FSD为 lanman服务器。
3),FSD与文件系统操作
显式文件 I/O
高速缓存延迟写
高速缓存提前读
内存脏页写
内存缺页处理
2,NTFS体系结构
一,NTFS重要特征
二,NTFS文件系统驱动程序
三,NTFS卷和文件结构
四、文件的可恢复性一,NTFS重要特征
可恢复性
安全性
大磁盘和大文件
多数据流
通用索引功能
文件名的特点
碎片整理
文件压缩
加密二,NTFS文件系统驱动程序
应用程序通过 NTFS的 FSD创建和存取文件的步骤:
Windows2000进行有关使用权限的检查,
只有合法用户的请求,才会被执行。
I/O管理器将文件句柄转换为文件对象指针
NTFS通过文件对象指针来获得磁盘上的文件三,NTFS卷和文件结构
扇区:磁盘中最小的物理存储单元,大小为 512个字节
簇:一个或多个连续的扇区
卷:磁盘的逻辑分区 (一个卷可以是整个磁盘,也可以一部分磁盘,还右以跨多个磁盘 )
特点,NTFS不识别扇区,簇是最基本的分配单位,
NTFS的卷的由四个区域组成:
分区引导扇区
主文件表
系统文件
文件区域四、文件的可恢复性
NTFS可以在系统崩溃或磁盘出现故障后,
把文件系统恢复到与崩溃或故障前一致的状态。支持可恢复的重要组件包括:
I/O管理程序
日志文件服务
高速缓存管理程序
虚存管理程序
注,NTFS是为恢复文件系统的数据而设计的,不是用于恢复文件的内容。
3,windows2000文件系统
1) CDFS与 UDF
CDFS为只读光盘文件系统,
文件和目录名的长度必须少于 32个字符
目录树的深度不能超过 8层
UDF为 CDFS的扩展,
文件名区分大小写
文件名的长度可以有 255字符
Windows2000通 Udfs.sys来实现对 UDF的支持
2) FAT12,FAT16与 FAT32
FAT12:簇标识为 12位,在 windows2000中其大小在 512B~8kB之间,因而 FAT12的卷最大为 32MB,windows 2000使用 FAT12来作为软盘的标准格式。
FAT16:簇标识为 16位,在 windows2000
中最大卷可达到 4GB,一般限制 <2GB
条目:备份
文件分配链
FAT12和 FAT16的根目录最多只能存放
256个文件或目录。一个 FAT目录项包含
32个字节来存放文件的名字、大小,开始簇以及时间戳。
FAT16的优点:可以被多种操作系统访问。
缺点:不支持长文件名,也无法支持系统容错特性,不具有内部安全特性。
FAT32:是基于 FAT模式的文件系统
其簇标识为 32位,大小可达 32kB
windows2000中限制它的卷大小
为 32GB,理论上可达 8TB
FAT32的根目录区不再是固定区域、固定大小。根目录已改为根目录文件。
特点:可靠性大大提高根目录用簇链管理支持长文件名,仍保留扩展名
5.4 文件系统应用
1,NTFS磁盘结构
2、文件系统可恢复性
3、文件系统安全性
1,NTFS磁盘结构
1)、卷和簇
NTFS是以卷为基础的,而卷是建立在磁盘分区上。当以 NTFS格式来格式化磁盘分区时就创建了 NTFS卷。
分区是磁盘的基本组成部分,是一个能够被格式化和单独使用的逻辑单元。
分区包括基本分区和扩展分区,扩展分区可以由逻辑分区组成。
分区的目的主要是:
一、使磁盘初始化,以便可以格式化和存储数据。
二、用来分隔不同的操作系统,以保证多个操作系统在同一磁盘上正常运行
三、便于管理,可以有针对性的数据进行分类存储
四、可以更好地利用磁盘空间与 FAT卷的比较:
FAT卷不但包含所有存储文件,而且还包含
FAT文件系统所特有的区域,如 FAT表。
NTFS卷存储所有的文件系统数据,例如位图和目录,甚至包括作为一般文件的系统引导程序。
簇是作为磁盘空间分配和回收的基本单位。文件系统的存储空间是以簇为单位进行划分和管理,这就不需要知道磁盘扇区的大小,使
NTFS保持了与磁盘物理扇区大小独立性,从而能够为不同大小的磁盘选择合适的簇。
NTFS卷
NTFS使用逻辑簇号和虚拟簇号来进行簇的定位。
LCN是对整个卷中所有的簇从头到尾所进行简单编号,LCN乘以卷大小就可取得卷上的物理字节偏移量,从而得到物理磁盘地址。
VCN则是对属于特定文件的簇从头到尾进行编号,以便于引用文件中的数据。
VCN可以映射 LCN,所以不不必要求物理的连续。
2)、主控文件表
MFT是 NTFS卷结构的核心,是 NTFS中最重要的系统文件,它包含了卷中所有文件的信息。 MFT是以文件记录数据来实现的,每个文件记录的大小都固定为
1KB。卷上的每个文件都有一行 MFT记录。
MFT开始的 16个元数据文件是保留的,
即在 NTFS中只有这 16个数据文件占固定的位置。
MFT的元数据文件:
镜像文件、日志文件、卷文件、位图文件、引导文件、坏簇文件、安全文件、大写文件
NTFS把磁盘分成两部分,12%分配给 MFT,
88%分配用来存储文件
NTFS通过 MFT访问卷的步骤:
装载卷要访问的卷
获得 VCN到 LCN的映射信息
打开所有元数据文件后,并处理相关的问题后开始访问该卷
3)、文件
文件引用:包括 16位的文件号和一个 48
痊的系列号。文件号对应着 MFT中的文件记录位置减 1。
属性 /值对:其中的一个是 NTFS所包含的数据。 NTFS查看文件是作为 属性 /值对 的集合存储文件。
一个小文件的 MFT记录包括:标准信息、
文件名和文件数据。
每个文件属性以单独的字节流存储在文件中。
4)、驻留与非驻留属性
定义:当属性值直接存储在 MFT中时,
属性被称为驻岛国属性,其他为非驻留属性。
标准头:包含有关属性信息和 NFTS用一般方法管理属性所需的信息。这个头总是驻留的。对于驻留属性,头也包含了从头到属性值的偏移量和属性值的长度。
2、文件系统可恢复性
以下几个方面主要考虑文件系统的一致性:
1)、谨慎写文件系统
2)、延迟写文件系统
3)、可恢复性文件系统
3、文件系统安全性
NTFS中主要采用以下两个措施进行安全性保护:
一是对文件和目录的权限设置
二是对文件和目录进行加密应用实例,NTFS的文件管理
1,NTFS文件压缩
2、文件加密
3、文件与文件夹访问权限管理
1,NTFS文件压缩
特点:
只有在 NTFS分区才能实现 NTFS压缩
压缩对象:文件、文件夹和驱动器
可以只压缩一个文件夹,而不压缩其中文件
可以使用不同颜色来标识压缩和非压缩
不能对 NTFS压缩文件进行加密
压缩文件和文件夹仅当存储在 NTFS驱动器中才有效
使用 NTFS压缩文件时会降低计算机系统性能步骤 1
步骤 2
步骤 3
可以在 DOS命令行中使用
compact命令来进行解压缩
2、文件加密
1),EFS文件加密
该技术可用于在 NTFS卷上存储已加密的文件。在使用 EFS加密了文件和文件夹之后,用户仍然可以像使用其他文件夹一样使用它们。 EFS对加密该文件的用户是透明的,即加密该文件的用户不必再使用前先手动解密已加密的文件,就可以正常打开和更改文件。而非法入侵者即使可以物理访问加密的文件夹或文件,也将无法阅读这些文件和文件夹的内容。
EFS只能加密文件,而不能防止文件被删除或列出文件或目录,并且只能对存储在磁盘上的数据进行加密,而对在网络上传输的数据不起作用。要加密在
TCP/IP网络上传输的数据,可以选择,Internet协议安全性”或,PPTP”加密方法。
用户在使用 EFS加密文件或文件夹时,应注意以下几点:
只有 NTFS卷上的文件或文件夹才能实现 EFS加密
不能加密已压缩的文件或文件夹
当非加密文件被移动到加密文件夹中时,这些文件将在新文件夹中被自动加密,但是将加密文件或文件夹移动到非加密文件夹时,加密文件和文件夹不能自动解密,必须通过解密过程进行解密。
如果将加密的文件和文件夹复制或移动非 NTFS卷上,
则该文件将被解密。
不能加密标记为 System属性的文件位于 systemroot文件夹中的文件也无法加密。
2)、实现加密
像设置文件或文件夹属性(只读、压缩或隐藏)一样,可以通过为文件夹和文件设置加密属性,来实现对文件夹或文件进行 EFS的加密或解密一个文件夹,
则在加密文件夹中创建的所有文件和子文件夹都将自动加密,因此推荐用户在文件夹级别上实现加密。
步骤 1
步骤 2
步骤 3
3)、命令行加密方式
使用 Cipher命令来加密文件和文件夹。
Cipher命令可以在 NTFS分区上显示或改变文件来件及文件的加密属性。
在命令提示符下输入,cipher/?,可以查看 Cipher命令的语法规则及其参数。
4)复制和移动加密文件和文件夹
加密一个文件夹,该文件夹中所有的子文件夹和文件将被自动加密。当用户复制或移动一个加密文件或文件夹时,可能会改变这些文件或文件夹的加密状态。
复制加密文件或文件夹
移动加密文件或文件夹
3、文件与文件夹访问权限管理
共享文件夹权限
NTFS文件及文件夹的权限
有效权限的确定简答题
1、服务器上有一个共享文件夹 tools,管理员为用户小王设置了“读取”的共享文件夹权限和“写入”、“修改”的
NTFS权限。当小王通过网络访问共享文件夹 tools时,他只能查看该共享文件和文件夹的内容,而不能修改、删除共享文件夹的内容,这是什么原因呢?
2、标准的 NTFS文件夹和文件权限有哪些?
3、共享文件夹权限有哪些?