操作系统课程5-2_第1页
操作系统课程5-2_第2页
操作系统课程5-2_第3页
操作系统课程5-2_第4页
操作系统课程5-2_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、5.4 文件存储空间的管理5.4.1 磁盘组织 1.磁盘物理组织每个磁盘都是由盘片,磁道和扇区组成。磁道是盘片每个表面上的环形区域。柱面是有多个盘片的磁盘上处于同一磁头位置的一组磁道组成。盘片的每一个面有一个磁头,磁头一般都连在一个公用的磁头移动机构-磁臂上,这样所有的磁头都一起移动,每盘片的每个面上的磁头都永远定位在同一逻辑道上。每个磁道被分为扇区的部分,一个扇区是磁盘上最小的物理存储单元,扇区的数据大小永远都是2的幂,并且几乎永远是512B。MS-DOS、Windows 98/2000都以簇为单位来开辟存储区,而簇是一个或2的幂次个(2、4、8.)连续的扇区。 磁盘性能概述-22.磁盘的逻

2、辑组织一个物理磁盘在逻辑上可分为几个区域,分区信息存放在主引导块分区表中。分区表中保存磁盘各种分区起始和终止的磁头、柱面、扇区、总的扇区数等信息。在主引导块中有三种类型分区:主分区、扩展区和逻辑分区。主分区是常用的,加载一个操作系统所需文件安装其上,操作系统必须从主分区上引导,一个硬盘上只能有四个主分区。为了突破四个分区的限制,就要在四个分区中创建立一个扩展分区。扩展分区其实是一个逻辑盘,它不能格式化,也不能分配盘符。但可在扩展分区中创建一个或多个逻辑分区,(或称逻辑驱动器),每个逻辑分区分配一个盘符,可以格式化成一个特定的文件系统,MS-DOS、Windows98和WindowsNT可用fd

3、isk命令将硬盘分区。5.4.2 磁盘空闲空间管理和磁盘碎片整理 1.空闲表法 Counting它为外存上所有空闲区建立一张空闲表,每个空闲区对应一个空闲表项,其中包括该空闲区的第一盘块号,该区的空闲盘块数等信息,再将所有空闲区按起始盘块号递增的次序排列。UNIX S V操作系统盘对换区空间管理采用空闲表法,它与内存系统页表管理采用同样的数据结构和分配回收算法。空闲表法的缺点是需要专用盘区来存放空闲表,在文件系统中较少采用连续分配。addressnumber2. 位示图法Bit vector位示图是利用一位来表示磁盘中一个块的使用情况,当其值为0 时表示对应盘块空闲;值为1时盘块已分配。磁盘上

4、所有盘块都有一个二进制位与之对应,由所有盘块所对应的位形成了一个集合称为位示图,位示图用磁盘块存放,称为位图块。例如:SCO UNIX 操作系统盘块大小为1KB,每个位图块有8192位,即每个位图块能管理8MB磁盘空间,要管理大的磁盘空间就需要多个位图块,这就需增设位图索引块,每个位图块块号用4B记录,这样一个位图索引块可管理256个位图块,总共管理2GB大小磁盘空间。位图块在管理的8192块盘块的最前面,位图块中第i个字节(i=0,1,1023)的第j位(j=0,17)管理的块在该图块后块数为Ni*8j。 012n-1biti =0 blocki free1 blocki occupied位

5、示图法位示图的主要优点是位示图描述能力强,位示图较小,可以复制到内存,使查找既方便又快速。很多计算机提供了位操作指令,使位示图查找能够高效进行,能够简单有效地在盘上找到n个连续空闲块。例如Intel x86微处理器系列就有这样的指令:返回指定寄存器的所有位中值为1的第一位。Windows2000、Linux等操作系统的磁盘空闲空间管理都采用位示图法。3.空闲块链接法空闲块链接法是将磁盘上所有空闲盘区链接在一个队列中,称为空闲块链。请求分配时从链头依次摘下适当数目的空闲盘块来分配,回收时将回收空闲盘块链入空闲块链尾部。Linked Free Space List on Disk4. 成组链接法U

6、NIX S V操作系统采用成组链接法管理磁盘空闲块,该方法是空闲表法和空闲块链接法的结合,具备分配回收方便,不需专用块来存放分配表等优点。成组链接法将磁盘空闲块分成若干组,如将每100个盘块作为一组,该组空闲块总数和各空闲块块号存入下一组的第一个空闲块中。最后不满100块的那组空闲块总数和各空闲块块号记入磁盘区专用管理块的空闲块管理的数据结构:s_nfree和s_free100中,如下图所示。 成组链接法 39 50 49 .12 100150149 . . . 51100 . . . . . . . .1000499 . . .351盘专用管理块 (已读入内存)449块350块351块251

7、块51块12块149块49块150块50块s_nfree 0 1 s_free100 38 995磁盘碎片的整理磁盘存储器以块为单位离散分配,可提高盘的利用率,但盘块多次反复分配回收后造成盘空闲块散布在整个盘区,这称为磁盘碎片化。以后装入的文件所分配的盘块也分散在盘的各柱面。分散在盘许多柱面(磁道)的文件需要化费更多的时间进行读写。Windows2000在附件的系统工具中提供了磁盘碎片整理程序,它能对磁盘中文件重排,使文件存储在连续的盘块中,而把空闲块也集中,便于以后存入文件能连续分配。5.4.3 Linux ext2文件系统磁盘的结构EXT2是Linux使用的标准文件系统,它是性能优化、易扩

8、充、功能较强的一种文件系统。EXT2文件系统由一系列逻辑上线形排列的数据块组成,每个数据块具有相同的大小。所有块又被划分成若干个块组,每个块组包含相同个数的数据块。整个文件系统的布局如图5-11所示。ext2文件系统的体系结构 组0组1.组N超级块 文件系统描述符 块位图 Inode 位图Inode表 Data 数据块Boot5.4.3 Linux ext2文件系统磁盘的结构ext2的绝大多数的数据结构和系统调用与经典的UNIX一致。能够管理海量存储介质。支持多达4TB的数据,即一个分区的容量最大可达4TB。支持长文件名,最多可达255个字符,并且可扩展到1012个字符允许通过文件属性改变内核

9、的行为;目录下的文件继承目录的属性。支持文件系统数据“即时同步”特性,即内存中的数据一旦改变,立即更新硬盘上的数据使之一致。实现了“快速连接”(fast symbolic links)的方式,使得连接文件只需要存放inode的空间。允许用户定制文件系统的数据单元(block)的大小,可以是 1024、2048 或 4096 个字节,使之适应不同环境的要求。使用专用文件记录文件系统的状态和错误信息,供下一次系统启动时决定是否需要检查文件系统 。 ext2在磁盘上的物理布局 ext2分区的第一个磁盘块用于引导,其余的部分被分成组。所有的组大小相同并且顺序存放,所以由组的序号可以确定组在磁盘上的位置

10、。 组的构成: (1)文件系统的超级块; (2)所有组的描述符; (3)数据块的位图; (4)inode位图; (5)inode表; (6)数据块。 ext2体系结构超级块(super block):文件系统中最重要的结构,描述整个文件系统的信息。组描述符(group descriptor):记录所有块组的信息,如块组中的空闲块数、空闲节点数等。数据的块位图(block bitmap):每一个块组有一个对应的块位图。大小为一个块,位图的每一位顺序对应组中的一个块,0表示可用,1表示已用。 inode位图(inode bitmap):每一个块组有一个对应的inode位图。用来表示对应的inode

11、表的空间是否已被占用。 inode表(inode table):用来存放文件及目录的inode数据。每个文件用一个inode表示。EXT2超级块(super block) 超级块是用来描述EXT2文件系统整体信息的数据结构主要描述文件系统的目录和文件的静态分布情况,以及描述文件系统的各种组成结构的尺寸、数量等。超级块对于文件系统的维护是至关重要的。超级块位于每个块组的最前面,每个块组中包含的超级块内容是相同的。在系统运行期间,需要把超级块复制到内存的系统缓冲区内。只需把块组0的超级块读入内存,其它块组的超级块做为备份。在Linux中,EXT2超级块定义为ext2_super_block结构:超

12、级块struct ext2_super_block _u32 s_inodes_count;/* inode的总数 */ _u32 s_blocks_count;/* 块的总数 */ _u32 s_free_blocks_count;/* 空闲块的总数 */ _u32 s_free_inodes_count;/* 空闲inode的总数 */ _u32 s_first_data_block;/* 第一个数据块 */ _u32 s_log_block_size;/* 块的大小 */ _u32 s_blocks_per_group;/* 每组的块数 */ _u32 s_inodes_per_grou

13、p;/* 每组的inode数 */ _u32 s_mtime;/* 安装的时间 */ _u32 s_wtime;/* 写的时间 */ _u16 s_mnt_count;/* 安装的次数 */.;组描述符每个组都有自己的描述符,用来描述一个块组的有关信息 ,内核用结构ext2_group_desc描述。struct ext2_group_desc _u32 bg_block_bitmap;/*本组数据块位图所在块号*/ _u32 bg_inode_bitmap;/* 本组inode位图所在块号 */ _u32 bg_inode_table;/* 本组inode表的起始块号 */ _u16 bg_

14、free_blocks_count;/* 组中空闲块的数目 */ _u16 bg_free_inodes_count;/*组中空闲inode数目 */ _u16 bg_used_dirs_count;/* 组中目录的数目 */ _u16 bg_pad /*按字对齐*/ _u32 3 bg_reserved /*用null 填充24 个字节*/;inode索引节点EXT2文件系统inode大小为128B,inode在inode表中依次存放。inode表由一连串连续的块组成,其中每一块包含inode的一个预定义号。 inode表第一个块的块号存放在组描述符的bg_inode_table 字段中。所

15、有inode的大小相同,即128 字节。一个1024 字节的块可以包含8 个索引节点,一个4096 字节的块可以包含32 个索引节点。为了计算出inode表占用了多少块,用一个组中的inode总数(存放在超级块的s_inodes_per_group字段中)除以每块中的inode数。ext2_inodestruct ext2_inode _u16 i_mode;_u16 i_uid;/* 拥有者的用户ID */_u32 i_size;/* 文件大小 */_u32 i_atime;/* 最近一次访问时间 */_u32 i_ctime;/* 创建时间 */_u32 i_mtime;/* 最近一次修改

16、时间 */_u16 i_gid;/* 文件的组ID */_u32 i_blocks;/* 分配给该文件的磁盘块的数目 */_u32 i_blockEXT2_N_BLOCKS;/*指向磁盘块的指针 */.;inodei_mode:包含了文件的类型信息和文件的访问权限。文件的类型:0 未知 4 块设备1 普通文件 5 命名管道2 目录 6 套接字3 字符设备 7 符号链接i_blockEXT2_N_BLOCKS:一般用于放置文件的数据所在的磁盘块编号,EXT2_N_BLOCKS的默认值为15。不同类型文件的i_block的含义不同:设备文件:用ext2_inode就足以包含所有信息,不需要另外的数

17、据块。 目录:数据块包含了所有属于这个目录的文件信息。数据块的数据项是个ext2_dir_entry_2结构,用来描述属于这个目录的文件。inodestruct ext2_dir_entry_2 _u32inode;/* inode号 */_u16rec_len;/* 本项所占的长度 */_u8name_len;/* 文件名长度 */_u8file_type; /* 文件类型 */charnameEXT2_NAME_LEN;/* 文件名 */ ; 目录的各项在数据块中依次放置。普通文件:指向数据块,数据在磁盘上并不一定连续,需要保存各个磁盘块号。i_block的前12项可看成一级指针,直接存放

18、文件数据所在的磁盘块号。第13项是个二级指针,第14,15项分别是三级指针和四级指针。 这种方法保证了大量的小文件访问效率高,同时又支持大文件。5.4.4 FAT文件系统磁盘的结构FAT文件系统磁盘的结构FAT1和FAT2都为文件分配表,二表相同,FAT2作备份用。对软盘FAT表每表项为12位,表示簇号。对硬盘各区,FAT表项可为12位、16位和32位。根目录区是存放根目录,它有固定长度,由引导区BIOS参数块0 x11H-0 x12H字节决定。FAT16的C盘引导区为1个扇区,每个FAT表扇区数为256个,FAT表2个,共存2562512个扇区。由于每个根目录项为32B,则可知根目录区大小为

19、3251216KB;文件区的起始簇号为0002,起始扇区为545(221H)。对于FAT16硬盘C盘的BOOT区是1头0柱1扇区,512B大小。Windows98采用FAT32格式,FAT32其引导区记录被扩展为包括重要数据结构的备份,根目录成为一个普通的簇链,可以放在文件区任何地方。FAT32磁盘分配图主引导区基本分区引导区扩展分区引导区分区引导区扩展分区引导区分区引导区逻辑卷1逻辑卷2基本分区扩展分区FAT32磁盘的结构主引导记录MBR是主引导区的第一个扇区,它由二部分组成:第一部分主引导代码,占据扇区的前446个字节,磁盘标识符(FD 4E F2 14)位于这段代码的未尾。第二部分是分区

20、表,分区表中每个条目有16字节长,分区表最多有4个条目,第一个分区条目从扇区的偏移量位置是0 x01BE。主引导区的末端是标签字或扇区结束标记的2字节结构,常为0 x55AA。扩展引导记录与主引导记录类同,如该扩展分区未装操作系则第一部分主引导代码为0,标签字也标记一个扩展分区引导区和分区引导区的结束。一台PC计算机系统启动时,首先执行的是BIOS引导程序,完成自检,并加载主引导记录和分区表,然后执行主引导记录,由它引导激活分区引导记录,再执行分区引导记录,加载操作系统,最后执行操作系统,配置系统。 5.5 NTFS文件系统 5.5.1 NTFS的卷、蔟和卷布局卷又称为逻辑驱动器,在同一个卷中

21、使用同一份管理数据进行文件分配和外存空闲空间管理,而在不同的卷中使用相互独立的管理数据。NTFS以卷为基础,而卷则建立在磁盘分区上,通常一个卷与一个硬盘分区相对应,但NTFS支持由多个硬盘分区构成的卷,以提高文件I/O效率、提供动态增加卷大小和容错功能。当以NTFS格式来格式化磁盘分区时就创建了NTFS卷,Windows 2000常使用两种卷:FAT卷和NTFS卷。和FAT文件系统一样,NTFS仍以驱动器盘符表示已安装的文件卷。NTFS簇NTFS使用簇作为磁盘空间分配的基本单位NTFS使用逻辑簇号(LCN)和虚拟簇号(VCN)来进行簇的定位。LCN是对整个卷中所有的簇从头到尾所进行的简单编号。

22、卷因子乘以LCN,NTFS就能够取得卷上的物理字节偏移量,从而得到了物理磁盘地址。VCN则是对属于特定文件的簇从头到尾进行编号,以便于引用文件中的数据。VCN可以映射成LCN,所以不必要求在物理上连续。在磁盘管理器中,可以指定最大到4K簇大小,如采用命令行程序format来格式化NTFS卷,则可以指定表5-7中的任何簇大小。NTFS簇与扇区的关系 NTFS的卷、蔟和卷布局-1将一个卷格式化为NTFS文件系统的结果是系统创建了一些系统文件和一个主文件表(MFT),主文件表包含NTFS卷上所有文件和目录的信息。格式化NTFS卷布局如下图 所示。 引导扇区主文件表(MFT)系统文件文件区MFT前16

23、个元数据文件备份文件区5.5.2 NTFS的引导扇区引导扇区已扩展,它从1扇区开始,最大可以有16个扇区长。引导扇区各域见下表,它包含以下两个结构: BIOS参数块,包含有卷的布局和文件系统结构信息。有关怎样找到和加载正在被引导的操作系统所需要的启动文件的代码,这段代码加载NTLDR。字节偏移域长例意 义003BEB 5B 00跳转指令038BNTFSOEM标识符0B25BBIOS参数块2448B扩展BIOS参数块54426B自举代码1FE字0 x55AA扇区结尾标志5.5.3 NTFS系统文件和主文件表 1. 系统文件当格式化NTFS卷时,格式化程序创建出一系列文件,这些文件包含有用来实现文

24、件系统结构的元数据,称为元数据文件,它们都有一个以字符开头的名称。 主文件表(MFT)2.主文件表(MFT)主文件表是以文件记录数据来实现的,忽略簇的大小,每个文件记录的大小都被固定为1KB。从逻辑上讲卷中每一个文件在MFT上都有一个文件记录,包括MFT自己的一个记录。MFT前16个记录用来存放元数据文件的信息,它们占有固定的位置,12个元数据文件与记录号对应关系见表5-8,后4个记录保留供将来使用。MFT前16个元数据文件很重要,为了防止数据的丢失,NTFS系统在该卷文件存储部分的正中央对它们进行了备份,见图5-13所示。NTFS把磁盘分成了两大部分,其中大约12分配给了MFT,以满足其不断

25、增长的文件数量。为了保持MFT元文件的连续性,MFT对这12的空间享有独占权。余下的88的空间被分配用来存储文件。 5.5.4 NTFS 文件属性 NTFS文件系统把每个文件(或目录)都视为属性属性值的集合来处理。文件数据是未命名属性的值,诸如文件名、安全信息、文件拥有者等元素都是文件属性。每个属性由一个属性类型或一个可选的属性名来标识。NTFS卷上常用属性说明见表5-11 NTFS卷上常用属性说明表属性名属性描述$STANDARD_INFORMATION标准信息:包含基本文件属性、时间记号、连接计数等$FILE_NAME文件名:这是以Unicode字符表示的$SECURITY_DESCRIP

26、TOR安全描述符$DATA文件数据$INDEX_ROOT索引根$INDEX_ALLOCATION索引分配$BITMAP位图$ATTRIBUTE_LIST属性列表:当一个文件需要使用多个MFT文件记录时,这用来表示该文件的属性列表$OBJECT_ID对象ID:一个具有64B的标识符,其中最低的16B对卷是唯一$REPARSE_POINT重解析点:存储文件的重解析点数据(NTFS的软链接与装配点都包括这个属性)NTFS 文件属性小文件或小目录的所有属性,均可以在MFT中常驻。小文件的未命名属性可以包括所有文件数据, 小目录的索引根属性可以包括其中所有文件和子目录的索引。一个小文件/目录的MFT记录

27、如下: NTFS 文件属性如果MFT文件记录能存储得下一个文件的属性和属性值,这些属性称为常驻属性。有些属性总是常驻的,这样NTFS才可以确定其他非常驻属性。例如,标准信息属性、文件名、时间标记和根索引就总是常驻属性。如果一个文件的所有信息太大无法存储在MFT文件中,它的一些属性就成为非常驻的,系统为非常驻的属性在卷上其它地方开辟一个或多个簇, 这些区域通常称为一个运行(run),NTFS还创建一个称为属性列表的属性来描述所有属性记录的位置。值存储在运行中而不是在MFT文件记录中的属性称为非常驻属性。当一个属性为非常驻时,如大文件的数据,它的头包含了NTFS需要在磁盘上定位该属性值的有关信息。

28、在标准属性中,只有可以增长的属性才是非常驻的。对文件来说,可增长的属性有数据、属性列表等。图5-14显示了一个存储在两个运行中的非常驻属性。 存储在两个运行中的非常驻属性 NTFS 文件属性每个属性由单个的流组成,即简单的字符队列。由于文件有一组属性,所以NTFS文件或目录可以包含多个数据流,NTFS文件有一个默认的数据流,它没有名称。严格地说,NTFS并不对文件进行操作,而只是对属性流的读写。NTPS提供对属性流的各种操作:创建、删除、读取(字节范围)及写入(字节范围)。读写操作一般是针对文件的非命名属性的,对于已命名的属性则可以通过已命名的数据流句法来进行操作。 5.5.5 NTFS 文件

29、名 NTFS和VFAT文件系统允许路径中每一个文件长度在255个字符以内。文件名可以包含Unicode字符,多个句点以及内嵌的空格,但是提供给MSDOS的FAT文件系统的文件名被限定在8个字符以内(非Unicode代码),后面跟一个句点和3个字符长的扩展名。Windows 2000支持不同的三个文件名空间:POSIX子系统名空间、它所包含的Win32子系统名空间和前二者包含的MS-DOS-Windows客户名空间。NTFS 文件名Win 32子系统可以在一个NTFS卷上创建文件名,而在MSDOS和16位Windows应用程序中则不能看到此名。这个组中包含了长于MSDOS名称8.3格式的文件名,

30、带有Unicode(国际的)代码的文件名、包括多个句点或是以句点开始的文件名以及内嵌空格的文件名。当用此文件名创建一个文件时,NTFS会自动生成一个备用的MSDOS形式的文件名,也自动生成了一个含有MS-DOS文件名文件的MFT记录。NTFS由Win32长文件名生成MSDOS短文件名规则同Windows98 VFAT。 5.5.6 索引 在NTFS系统中,文件目录仅仅是文件名的一个索引。NTFS使用了一种特殊的方式把文件名组织起来,以便于快速访问。当创建一个目录时,NTFS必须对目录中的文件名属性进行索引。图5-15显示了一个卷的MFT的根目录记录。 NTFS根目录结构索引 一个目录的MFT记

31、录将其目录中的文件名和子目录名进行排序,并保存在索引根属性中。对于一个大目录,文件名实际存储在组织文件名的固定4 KB大小的索引缓冲区中。索引缓冲区是通过B+树数据结构实现的。B+树是平衡树的一种,对于存储在磁盘上的数据来说,平衡树是一种理想的分类组织形式,因此使查找一个项时所需的磁盘访问次数减到最少。根索引属性包含B+树的第一级(根子目录)并指向包含下一级(大多数是子目录,也可能是文件)的索引缓冲区中。索引索引中的每一项还包括了位于MFT中的描述文件所在位置的文件引用以及文件时间和文件大小等信息。NTFS根据文件的MFT记录来复制时间标记和文件大小信息。索引分配属性包含了索引缓冲区的VCN到

32、LCN映射,而位图属性跟踪在索引缓冲区中哪些VCN是在使用而哪些是空闲的。图中显示了每个文件项占有一个VCN,而实际上多个文件项被包装在同一个簇中。每个4KB大小的索引缓冲区可以容纳20到30个文件项。 5.6安全和保护影响文件安全性的主要因素:第一是人为因素,即由于人们有意或无意的行为,而使文件系统中的数据遭到破坏或丢失;第二是系统因素,即由于系统的某部分出现异常情况,而造成对数据的破坏或丢失,特别是作为数据存储介质的磁盘,在出现故障或损坏时,会对文件系统的安全性造成影响;第三是自然因素,即存放在磁盘上的数据,随着时间的推移将可能发生溢出或逐渐消失。为了确保文件系统的安全性,可针对上述原因而

33、采取以下措施:通过存取控制机制来防止由人为因素所造成的文件不安全性。通过磁盘容错技术,来防止由磁盘部分的故障所造成的文件不安全性。通过“后备系统”来防止由自然因素所造成的不安全性。 5.6.1文件的存取控制 文件系统对文件的保护常采用存取控制方式进行,所谓文件的存取控制就是不同的用户对文件的访问规定不同的权限,以防止文件被未经文件主同意的用户访问。 1. 存取控制矩阵理论上存取控制方法可用存取控制矩阵,它是一个二维矩阵,一维列出计算机的全部用户,另一维列出系统中的全部文件,矩阵中每个元素Aij是表示第i个用户对第j个文件的存取权限。通常存取权限有可读、可写、可执行以及它们的组合如下表所示。文件

34、的存取控制-1存取控制矩阵在概念上是简单清楚的,但实现上却有困难。当一个系统用户数和文件数很大时,二维矩阵要占很大的存储空间,验证过程也费时。2. 存取控制表存取控制矩阵由于太大而往往无法实现。一个改进的办法是按用户对文件的访问权力的差别对用户进行分类,由于某一文件往往只与少数几个用户有关,所以这种分类方法可使存取控制表大为简化。UNIX系统就是使用这种存取控制表方法。它把用户分成三类:文件主、同组用户和其它用户,每类用户的存取权限为可读、可写、可执行以及它们的组合。在用ls长列表显示时每组存取权限用三个字母RWX表示,如读、写和执行中那一样存取不允许则用“-”字符表示,用ls -l长列表显示

35、ls文件如下:存取控制表-r-xr-xr-x 1 root root 43296 May 13 2005 /bin/ls显示前2-10共9个字符表示文件的存取权限,每3个字符为一组,分别表示文件主、同组用户和其它用户的存取权限。由于存取控制表对每个文件将用户分类,所以该存取控制表可存放在每个文件的文件控制块(即目录表目)中,对UNIX它只需9位二进制来表示三类用户对文件的存取权限,它存在文件索引节点的di_mode中。Linux:Stored in a 16-bit locationu16 i-mode3用户权限表 改进存取控制矩阵的另一种方法是以用户或用户组为单位将用户可存取的文件各集中起来

36、存入一表,这称为用户权限表,表中每个表目表示该用户对应文件的存取权限,如下表所示。这相当于存取控制矩阵一行的简化。每当用户访问文件时,由系统中存取控制验证模块,把用户的请求与存取控制矩阵(或存取控制表,或用户权限表)中该用户对所访问文件的存取权限进行比较,以确定本次访问是否合法。若不合法,系统就拒绝执行,起到了对文件的保护作用。5.6.2 分级安全管理 1. 系统级安全管理 系统级安全管理的主要任务是不允许未经核准的用户进入系统。系统级管理的主要措施有:注册注册的主要目的是使系统管理员能够掌握要使用的各用户的情况,并保证用户在系统中的唯一性。例如linux操作系统中Passwd文件为系统的每一

37、个帐号保存一行记录,这条记录给出了每个账号的一些属性,如用户真实名字、口令等,Passwd是ASCII文件,普通用户可读,只有root 可写,为使口令保密,使用shadow口令可使Passwd文件中存放口令的地方放上一个“”。加密口令和口令有效期信息存放在Shodow文件中,只有root才能读取。任何一个新用户在使用系统前,必须先向系统管理员申请,由系统管理员root使用adduser命令创建用户帐号。当用户不再使用系统时,由root帐号使用userdel命令删除一个帐号和帐号的主目录。系统级安全管理登录:用户经注册后就成为该系统用户,但在上机时还必须进行登录。登录的主要目的是通过核实该用户的

38、注册名及口令来检查该用户使用系统的合法性。Windows需用户同时按下Ctrl+Alt+Del键来启动登录界面,提示输入用户名和口令。在用户输入后系统调用身份验证包来接收登录信息,并与安全帐号管理库中存放的用户名和口令进行对比,如果找到匹配,则登录成功,于是允许用户进入系统。SCO UNIX可设置访问注册限制次数,当不成功注册次数超过这个限度后,帐号和终端就被封锁,这称为凶兆监视(threat monitoring)。系统还可设置参数控制口令有效时间,当一口令到了退役时间,口令死亡,该用户帐号也封闭。Windows采用Ctrl+Alt+Del键来启动登录界面也是为了防止非法程序模拟登录界面扮作

39、操作系统来窃取用户名和口令。用户级安全管理 用户级安全管理是通过对不同的用户对不同文件设置不同的存取权限来实现。目录级安全管理目录级安全管理,是为了保护系统中各种目录而设计的,它与用户权限无关。为保证目录的安全规定只有系统核心才具有写目录的权利。用户对目录的读、写和执行与一般文件的读、写和执行的含义有所不同,对于目录的读权限意味着允许打开并读该目录的信息.例如UNIX系统使用ls命令可列出该目录的子目录和文件名。对于目录的写权限意味着可以在此目录中创建或删除文件,禁止对于某个目录的写权限并不意味着在该目录中的文件不能修改,只有在一个文件上的写权限才真正地控制修改文件的能力。对于一个目录的执行权

40、限意味着系统在分析一个文件时可检索此目录。禁止一个目录的执行权限可真正地防止用户使用该目录中的文件,用户不能使用cd命令来进入此目录。4文件级安全管理当文件/目录被共享时,缺省将给该共享文件/目录赋予过多的权限。例如,通过网络访问共享文件/目录的任何人对它都有“完全控制”权限。尽管这一方法简化了对等连网技术,但在大型的、重视安全的组织中,这一方法产生潜在的安全危险。在Windows 2000计算机中,需要限制共享资源或本地文件的缺省权限,利用文件权限来实现文件系统的安全性。文件级安全管理,是通过系统管理员或文件主对文件属性的设置来控制用户对文件的访问。Windows 2000提供了两种分配文件

41、和目录权限的方法:特殊和标准。 (1) Windows2000特殊权限如果需要出色的控制,就应该使用特殊权限。用于描述特殊(单独)权限的符号有:R特殊权限读;W特殊权限写;X特殊权限执行;D特殊权限删除;P特殊更改权限;O特殊取得所有权权限。下表展示了特殊权限以及它们在文件上的关联操作。 操作R W X D P O显示文件的所有者和权限 x x x显示文件的数据 x显示文件的属性 x x更改文件的属性 x更改数据并把数据追加到文件中 x x运行文件 x删除文件 x更改文件的权限 x取得文件的所有权 x(2)windows 2000 标准权限 标准权限是预定义的特殊权限组合。其基本原理是:总是希

42、望为诸如读或写之类的操作分配特殊权限的一些组合。赋予文件的标准权限和用于实现这些标准权限的特殊权限如下:读取(R)用户能读取文件。读取及运行(RX)用户能读取文件并且执行它(假如它是应用程序的话)。修改(RWXD)用户能够读取、修改或删除文件。完全控制(RWXDPO)用户能够读取、修改或删除文件,设置文件的权限以及取得文件的所有权。 Windows 2000标准文件权限和特殊文件权限表 特殊权限完全控制修改读取并运行读取写入遍历文件夹运行文件xxx列出文件夹读取数据xxxx读取属性xxxx读取扩展属性xxxx创建文件写人数据xxx创建文件夹附加数据xxx写入属性xxx写入扩展属性xxx删除子文

43、件夹及文件x删除xx读取权限xxxxx更改权限x取得所有权x同步xxxxx文件级安全管理用户对文件的访问,将由用户访问权、目录访问权限及文件属性三者的权限所确定。或者说是有效权限和文件属性的交集。例如对于只读文件,尽管用户的有效权限是读写,但都不能对只读文件进行修改、更名和删除。对于一个非共享文件,将禁止在同一时间内由多个用户对它们进行访问。5.6.3 备份和恢复 文件系统中不论硬件和软件都会因电源中断和变化,用户粗野和不慎的操作而发生损坏和错误,所以为使至关重要的文件系统万无一失,应对保存在辅存中的文件采取一些保险措施,这些措施中最简便方法是“定期转储”,使一些重要的文件有多个副本。1.分级

44、备份为了使备份更有效,可将备份分为几个等级,最低级备份级是全量转储,它将文件存储器中所有文件都保存起来。增量转储是将前一段时间内修改过的文件和新文件保存起来。分级备份 Windows 2000可以实现以下几种类型的备份:常规备份:这种备份方式将拷贝所有选定的文件,且将其标记为已经备份状态。增量备份:这种备份方式只备份那些自从上一次常规或增量备份后创建的或改动的文件,且将其标记为已经备份。差异备份:这种备份方式将拷贝那些自从上一次常规或增量备份后创建的或改动的文件,但不将文件标记为已经备份。拷贝备份:这种备份方式将拷贝所有选定的文件,但不将文件标记为已经备份。日常备份:这种备份方式则是拷贝在实施

45、日常备份的当天被改动的选定文件。备份文件不标记已备份状态。2. 存储设备与介质存储设备存储设备的容量应该有足够大的容量以备份用户系统中容量最大的服务器,并且存储设备可以探测并纠正备份和恢复操作中的错误。存储设备可包括磁带驱动器、可移动磁盘等。介质类型 最常见的介质为磁带。用于备份的初级磁带包括14英寸磁带(QIC)、数字声频带(DAT),8mm盒式带和数字线性带(DLT)。高容量、高性能磁带驱动器一般使用SCSI控制器。其他的介质类型包括磁盘、光盘和CDROM(CD-R和CDRW)。 3. 建立备份计划用户创建备份的频率依赖于用户数据改动的频率以及数据的重要程度。用户可实施每周备份、每月备份以

46、及存档备份。下以12个星期的计划为例说明。12个星期的计划就是对两个星期的每一天使用不同的备份磁带,第一个使用的磁带将再次使用于第三周的那一天。如表5-16所示,增量备份在星期一到星期四执行,常规备份在星期五实施,对于最近一次常规备份采用现场存储方式。在12周结束时,循环又重新开始于新的磁带集合。 4. 备份实现 (1) 利用“备份” 系统工具在“开始”菜单中打开“程序”/“附件”/“系统工具”/“备份”,出现图5-16所示备份窗口。它有欢迎、备份、还原和计划作业四选项卡,欢迎选项卡有备份向导、还原向导、紧急修复磁盘三个按钮选择,它们指导用户一步步完成备份或还原工作 (2)使用Backup工具

47、Backup是一种使用不同的存储介质将文件备份和恢复到NTFS或文件分配表(FAT)卷中的图示化工具。备份还简化了存档,并允许用户使用Windows 2000工作调度程序来进行自动备份工作。安装和拆卸磁带或磁盘这类工作可由可移动存储来完成。它跟踪并控制存储设备上的通常被组织成库的备份介质,并允许Backup此类的应用程序共享自动转换器和介质库。一旦开始,可移动存储器对数据路径是透明的,因此在改变介质而不是执行备份或恢复操作时,用户只需访问它即可。 5.6.4 Windows2000安全性 Windows2000提供了一组全面的、可配置的安全性服务,这些服务达到了美国政府用于受托操作系统的国防部

48、C2级要求。1Windows2000安全性服务Windows2000的安全性服务及其基本特征如下:登录服务:要求在允许用户访问系统之前,输入唯一的登录标识符和密码来标识自已。谨慎访问控制:允许资源的所有者决定哪些用户可以访问资源和它们可以处理这些资源。属主可以授权给某个用户或用户组,允许他们进行访问。安全审核:提供检测和记录与安全有关的任何创建、访问或删除系统资源的事件或尝试的能力。登录标识符记录所有用户的身份,这们便于跟踪任何非法操作的用户。内存保护:防止非法进程访问其它进程专用虚拟内存。它保证当物理内存页面分配给某个用户进程前被重新初始化,保证这一页绝对不含有其它进程的脏数据。Window

49、s2000安全性2存取控制NT利用面向对象的概念提供了一个强大而灵活的存取控制能力,NT提供一个统一的存取控制机制应用到进程、线程、文件、信号量窗口和其它对象。存取控制是由二个实体来管理,与每个进程相关的存取令牌和使进程存取可能的每个对象相关的安全描述体。(1)存取令牌(access token)存取令牌的一般结构包括以下参数(如图5-17所示):拥存该进程的用户SID(在网络所有机器中唯一标识一个用户的安全标识符)。用户归属组的安全标识符组SID。缺省的CACL,假如没有其它的ACL被确定,它是由进程产生的分配到对象是上的存取控制列表。限制的SIDs,它允许不可靠的进程参加可靠的进程的作业,

50、但有较少的危险。特权列表,它给出该进程的特权。例如关机权,存取文件的权限,否则存取文件被拒绝。在事实上,特权列表把管理员的特权分成几组权力,分别分配给各个进程。 存取令牌的结构 (2)安全描述体(security descriptor) 安全描述体包括以下参数:定义一个安全描述体的类型和内容标志。对象的所有者SID,对象的所有者能够完全控制对象并且给它赋予权限。自由访问控制列表(Discretionary Access Control List,DACL),它标识将要被赋予或剥夺访问对象权限的用户和组SID。访问控制列表(ACL)由存取控制项(ACE)组成, ACE有二种类型,允许(allow

51、)类型指定了一个用户的SID和在该对象上被赋予操作权限的位图;拒绝(deny)类型指定了一个用户的SID和在该对象剥夺操作权限的位图。系统存取控制列表(SACL),它也由访问控制项(ACE)组成,每项确定那个用户的SID和在对象上应该产生审查信息(记录在系统范围的安全事件日志上)操作权限的位图。访问控制项(ACE)中操作权限依赖于对象的类型,对文件的操作权限是RWXDPO(特殊权限读、写、执行、删除、更改、取得所有权),一个文件的安全描述体例如图5-18所示。 一个文件的安全描述体例 (3)存取控制方式当一个用户登录接受后,系统为用户产生了一个进程和一个进程相连的存取令牌,存取令牌保持所有所需

52、安全信息。而与每个对象相连的是安全描述体,安全描述体有一个自由访问控制表DACL,它确定不同的用户和用户组对这个对象的存取权。当一个进程为存取而打开一个对象时,发生了安全审查操作。每一个Openxxx需要被打开的对象名和使用权限集合等参数,在处理打开时,安全管理器检查调用者是否有所需全部权限,它通过查看调用者的存取令牌和对象相关的DACL完成检查。它按序检查DACL中入口列表,一旦它在允许存取ACE中发现匹配调用者的SID或一个调用者的组的入口,存取被确认。假如调用者所有权限是有效的,打开就成功,否则失败。在一个对象打开后,一个句柄返回给调用者。接下去调用仅检查试图对对象的操作是否在允许存取操

53、作集中。4.可恢复性文件系统 可恢复性文件系统NTFS通过基于事务处理模式的日志记录技术,成功保证了NTFS卷的一致性,实现了文件系统的可恢复性。(1) NTFS可恢复性NTFS将每一个改变NTFS卷中系统文件的IO操作看作一次传输,并将每一个作为一个整体单元进行管理。一旦开始,传输要么完成,要么在磁盘故障时重新运行(例如当NTFS卷返回到传输开始前的状态时)。为确定传输是完成,还是重新运行,NTFS在传输的子操作写入磁盘之前将其记录到日志文件当中。当完成的传输被记录到日志文件中时,NTFS在卷的高速缓存中执行传输的子操作。NTFS更新缓存之后,将在记录文件当中记下全部传输已经完成。 可恢复性

54、文件系统当系统启动后文件记录服务就开始记录对所有文件的变动。这些记录包括文件的创建、打开、更新和其他操作。文件更新时系统会让高速缓存记录哪些文件变动了,同时事务日志将记录文件的更新操作。如果文件更新的磁盘操作失败了,事务日志就可以帮助恢复;如果文件更新的磁盘操作成功了,则事务日志也会被更新。 NTFS使用一个基于事务的记录方案来实现可恢复性。即便是对最大的磁盘,该方案也可确保整个磁盘被非常快地恢复(大约几秒)。NTFS限制它的恢复过程只是对文件系统数据,以确保在文件系统遭到破坏时,至少用户不会丢失卷,但是如果发生崩溃后,用户数据就不能保证被完全更新。 (2)日志 NTFS对每个要改变头结构的事

55、务的所有子操作在磁盘运行前都要求把一个记录(logging)写入每一个事务的子操作的日志文件中。NTFS将事件记录在三种日志中:系统日志中包括由NT的系统组件记录的事件,例如在启动时驱动器失败或其它的系统组件被载入将被记录在系统日志中。安全日志中包括正确和非正确的登录尝试事件以及如建立、打开和删除文件或其它对象的有关资源使用的事件,例如通过User Manager来使用登录和注销审核,进行系统登录则将被记录在安全日志中。应用程序日志中包含了由应用程序记录的事件。例如一个数据库程序可以将文件错误记录到应用程序日志中。系统日志和应用日志可被所有的用户查看,安全日志只能由系统管理员访问。 (3)事件

56、日志事件日记由头、事件说明(基于事件类型)和可选的或外加的数据组成。大部分进入安全日志的事件头和事件说明组成。启动“设置”/“控制面板”/“管理工具”/“事件查看器”,出现“事件查看器”窗口,在左边子窗口选择“树”标签和系统日志,在右边子窗口出现系统日志窗口,如图5-19所示。 事件查看器显示窗口 可恢复性文件系统事件查看器窗口中有“操作”、“查看”菜单。窗口中每行显示有关一个时间的信息。每行中各项信息依次是事件类型、日期、时间、来源、分类、事件、用户和计算机。(4) 日志记录的实现NTFS通过日志文件服务(LFS) 例程来访问日志文件的。LFS将日志文件分为重启动区域和无限记录区域。NTFS使用重启动区域来存储相关信息,在系统失败后的恢复过程中,NTFS将从这个位置开始读取信息。在LFS重启动区域之后,为记录区域,用于存放NTFS的日志记录。LFS利用逻辑序列号(LSN),来标识日志文件中的记录。 可恢复性文件系统LFS允许用户在日志文件中写入任何类型的记录。更新记录和检查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论