




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.取证技术基础目录CONTENTS3.1存储基础3.1.1 存储原理 3.1.2 存储系统结构 3.1.3 存储设备 3.2文件系统及编码3.2 文件系统及编码 3.2.1 文件系统 3.2.2 编码与解码 3.3操作系统3.3.1 Windows 3.3.2 MacOS 3.3.3 Unix/Linux 3.3.4 Android 3.3.5 iOS 目录CONTENTS3.4网络基础3.4.1 网络的分类 3.4.2 网络体系结构 3.4.3 网络协议 3.5恶意代码分析基础3.5.1 恶意代码简介 3.5.2 恶意代码分类 3.5.3 恶意代码的分析原理 3.6移动终端取证基础3.6.1 移动终端概述 3.6.2 移动终端的操作系统 3.6.3 移动通信技术 3.6.4 移动终端的存储 3.1存储基础3.1.1存储原理数据在计算机中的存储,都是以二进制为基础的。存储单位按照不同要求,具有不同格式:
二进制位(bit):又称为比特,是计算机中存储的最小信息单位,只有“0”和“1”两种状态。计算机中最直接、最基本的操作就是对二进制位的操作。字节(Byte):一个字节是8位二进制,即1Byte=8bit。字节是计算机处理数据的基本单位,即以字节为单位解释信息。通常,一个ASCII码占1个字节;一个汉字国标码占2个字节;整数占2个字节。字(word):是计算机内部进行信息处理的基本单位,是计算机可以同时处理的二进制数的位数,即一组二进制数码作为一个整体来参加运算或处理的单位。一个字通常由一个或多个字节构成,用来存放一条指令或一个数据。3.1.1存储原理存储单元:表示一个数据的总长度称为计算机的存储单元。在计算机中,当一个数据作为一个整体存入或取出时,这个数据存放在一个或几个字节中组成一个存储单元。存储单元一般是字节的整数倍,常见的有8位、16位、32位、64位。32位的系统存放数据的形式是对每个数据用32个二进制位来存放,64位的意思就是用64个二进制位来存放,位数越多每次处理存储的数据也就多地址:计算机中每个存储单元都有一个编号,称为地址,是以字节为单位进行的。地址号与存储单元是一一对应的,CPU通过地址对存储单元中的数据进行访问和操作。地址也是用二进制编码表示,为便于识别通常采用十六进制。3.1.2存储系统结构虽然存储介质的物理结构、存储原理不尽相同,但是从数据存储的逻辑层面来看,它们具有相似的逻辑结构,这也是电子数据取证能够对不同介质上的数据进行取证的基本原理。下面以电子数据取证中最常见的硬盘为例,介绍电子数据组织的知识。1.存储的常识硬盘在存储数据之前,一般需经过低级格式化、分区、高级格式化三个步骤之后才能使用。硬盘经过这三个步骤的处理,将建立一定的逻辑数据结构,如果是FAT文件系统,一般会将硬盘分为5个区域,即主引导记录区(MBR)、操作系统引导记录区(DBR)、文件分配表区(FAT)、文件目录表区(FDT)和数据区(DATA),以实现对数据的存储和管理。高级格式化后,硬盘也并不是所有空间都能使用,由于数据不可能全部占满空间,因此产生了松弛区和未分配空间。3.1.2存储系统结构(1)低级格式化硬盘低级格式化(LowLevelFormat)简称低格,也称为物理格式化(PhysicalFormat),用于检测硬盘磁介质、划分磁道、为每个磁道划分扇区、安排扇区在磁道中的排列顺序、硬盘表面测试、为每个扇区写入某一ASCII码字符等。(2)分区硬盘的容量比较大,为了便于硬盘的规划和文件管理,通常需要进行逻辑分区。通过分区不仅根据用户需求将硬盘的存储空间进行了合理划分,而且还在硬盘的0柱面、0磁头、1扇区上建立硬盘的主引导记录(MasterBootRecorder,MBR),即主引导扇区。(3)高级格式化高级格式化又被称为逻辑格式化,是根据用户选定的文件系统(如FAT12、FAT16、FAT32、NTFS、Ext2、Ext3等),在硬盘的特定区域写入特定数据,以达到初始化硬盘或硬盘分区、清除原硬盘或硬盘分区中所有文件的操作。3.1.2存储系统结构(4)文件松弛区(Slack)
硬盘存储空间是以簇为单位分配的,如果文件的长度不是簇长度的整数倍,那么分配给文件的最后一簇中会有未被当前文件占用的剩余空间,这部分空间叫文件松弛区(Slack)。文件松弛区中可能包含了先前文件遗留下来的信息,这部分信息可能是有用的证据。如下图所示:(5)未分配空间(Allocatedspace)
没有分配给任何卷的可用硬盘空间称为未分配空间。这部分空间同样会保存有重要数据。在犯罪嫌疑人重新格式化硬盘或者删除分区之后,这些区域中还有留存有重要信息,通过特定技术,可以还原出硬盘原有分区乃至所有未被覆盖信息。3.1.2存储系统结构2.存储结构当前主流的存储结构主要包括MBR硬盘分区、动态硬盘分区、GPT硬盘分区、Solaris硬盘分区、APM硬盘分区等。这里主要阐述最为常用的MBR硬盘分区、动态硬盘分区、GPT硬盘分区三种分区结构。(1)MBR硬盘分区MBR硬盘分区是使用最为广泛的一种分区结构,不仅应用于微软的操作系统平台中的分区结构,而且Linux系统、基于x86架构的UNIX系统都能够支持MBR硬盘分区。MBR硬盘分区都有一个引导扇区,被称为主引导记录(MainBootRecord,即MBR)。MBR位于整个硬盘的第一个扇区,即0柱面0磁头1扇区,其LBA地址为0,共有512字节。3.1.2存储系统结构(2)动态硬盘分区
MBR硬盘分区是通过分区表项对分区进行管理,由于分区表项中管理分区大小的参数是由4个字节组成的,所以能够管理的分区最大为2048GB,也就是2TB。随着硬盘容量的不断增大,用户对存储空间的需求增大,2TB的分区限制已经无法满足用户的需求,微软提供的动态硬盘分区就很好地解决了这个问题。动态硬盘分区能够实现数据的容错、高速的读/写操作、相对随意的修改卷大小、跨越硬盘建立分区等操作。Windows的逻辑硬盘管理(LogicDiskManager,LDM)子系统负责管理动态硬盘,动态硬盘的结构布局如下图所示:3.1.2存储系统结构
动态硬盘的第一个扇区与MBR硬盘一样,是一个MBR,MBR的分区表中有一项MS-DOS类型的分区表项,在6号扇区是动态硬盘的私有头,它是动态硬盘的重要结构,在LDM数据库中还有两个备份,私有头的结构如下表所示:字节偏移字段长度(字节)字段名和定义字节偏移字段长度(字节)字段名和定义00H8为固定值PRIVHEAD112H9总为零08H4校验和(本扇区所有字节之和)11BH8逻辑硬盘起始地址0CH2主版本号123H8逻辑硬盘大小0EH2次版本号12BH8LDM数据库的起始地址10H4未知133H8LDM数据库的大小14H4更新时间13BH8TOC数量3.1.2存储系统结构18H4总为零143H8TOC大小1CH4更新序列号14BH4配置信息数量20H8私有头第一备份地址14FH4日志数量28H8私有头第二备份地址153H8配置信息大小30H64硬盘ID15BH8日志大小70H64主机ID163H4硬盘签名B0H64硬盘组ID167H16硬盘集GUIDF0H32硬盘组名177H16硬盘集GUID110H2未知
LDM软分区区域用于给动态硬盘划分软分区,LDM通过一个单独的数据库来存储系统动态硬盘的分区信息,包括多分区卷的设置,LDM的数据库保存在每个动态硬盘最后1MB的保留空间内,LDM数据库结构如下图、表所示:3.1.2存储系统结构扇区地址扇区数结构名称01总为零11目录表1(TOCBLOCK)21目录表2(TOCBLOCK)171数据库的配置信息(VMDB)181481数据库的配置记录(VBLK)1498224数据库的日志记录(KLOG)18561私有头的第二个备份20451目录表2的备份20461目录表1的备份20471私有头的第一个备份3.1.2存储系统结构(3)GPT硬盘分区GPT(GUIDPartitionTable,全局唯一标识分区表)是解决MBR硬盘分区无法支持2TB以上容量问题的又一种硬盘分区,是一种由基于Itanium计算机中的可扩展固件接口(EFI*)使用的硬盘分区架构。在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中。如下图所示,在GPT硬盘中,分区表的位置信息储存在GPT中,但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT,传统MBR信息存储于LBA0,GPT头存储于LBA1,接下来是GPT分区表,64位Windows操作系统使用16,384字节(或32扇区)作为GPT分区表,每个分区表大小为128字节,每个扇区存储4个分区表。接下来的LBA34是硬盘上第一个分区的开始。为了减少分区表损坏的风险,GPT在硬盘最后保存了一份GPT头和分区表的副本。GPT头和GPT头备份分别位于硬盘的第二个扇区(即LBA1)以及硬盘的最后一个扇区(标记为LBA-1)。3.1.2存储系统结构
在GPT硬盘上可以创建EFI系统分区(EFISystemPartition,ESP)、微软保留分区(MicrosoftReservedPartition,MSR)、LDM元数据分区、LDM数据分区、OEM分区和主分区6种分区,这6种分区在GPT硬盘上通常的排列顺序是ESP(如果有)、OEM(如果有)、MSR、其他的分区。在将基本的GPT硬盘转换为动态GPT硬盘时,系统会创建LDM元数据分区和LDM数据分区,LDM元数据分区大小为1MB,用于存储LDM数据库,而LDM数据分区用于存储转换时创建的动态卷。OEM分区时系统制造商创建的分区,系统制造商会将附加内容放在特定的OEM分区中。主分区是GPT分区的基本数据分区,用于存储用户数据。3.1.3存储设备
电子数据的主要载体是机械硬盘、U盘、固态硬盘和光盘,以及新型的、形形色色的各种电存储器,这些载体统称为存储介质。1.机械硬盘(1)机械硬盘的物理结构
机械硬盘由一个或几个表面镀有磁性物质的金属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成。
机械硬盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径向移动到指定位置。可以将数据“读取”或者“写入”。读取数据时,盘片表面磁场使磁头产生感应电流或线圈阻抗产生变化,经相关电路处理后还原成数据;写入数据时,磁头电流产生磁场使盘片表面磁性物质状态发生改变,并在写电流磁场消失后仍能保持,这样数据就被存储。
机械硬盘的尺寸主要为3.5英寸和2.5英寸,还有少部分为1.8英寸等其他尺寸。其中3.5英寸的机械硬盘主要用于台式机和服务器中,2.5英寸和1.8英寸的机械硬盘主要用于笔记本和便携式设备中。3.1.3存储设备(2)机械硬盘的逻辑结构
机械硬盘由多个盘片组成,每个盘片都有两个面,这两个面都可以用来存储数据,依次称为0面、1面、2面……,每个盘片的每个面都有一个读写磁头。按照机械硬盘的容量和规格不同,盘片数不同,面数也就不同。如果有N个盘片,就有2N个面,对应2N个磁头(Heads),从0、1、2开始编号。
由于机械硬盘在读写时是以电机主轴为轴高速旋转的,则连续写入的数据是排列在一个圆周上的,这个圆周称为“磁道(Heads)”,读写磁头可以沿着盘片半径方向移动,所以每个盘片可以划分成若干逻辑上的同心圆磁道[根据硬盘规格不同磁道数可以是几百到数千不等,一个磁道上可以容纳数量不等的数据。磁道是不可见的。];磁道又被划分成若干段,每段称为“扇区(Sector)”,一个扇区一般存放512字节的数据,扇区从1开始,称为1扇区,2扇区……。这样每个盘片同样的磁道,逻辑上形成了一个以电机主轴为轴的“柱面(Cylinders)”,从外至里编号为0、1、2……。硬盘的物理容量就为:柱面(Cylinders)×磁头(Heads)×扇区(Sector)×512KB。3.1.3存储设备2.闪存
闪存(Flash存储器)技术上属于带电可擦除可编程只读存储器(EEPROM)的一种。但与普通EEPROM在字节单位上进行删除和重写操作的存储原理不同,闪存的存储以数据块单位进行。因此,闪存的优势在于写入大量数据时的高速度。
1984年,日本人舛冈富士雄首先提出快速闪存存储器的概念。1988年,Intel推出了第一款闪存芯片(NOR),存储容量只有256Kbit,但它是早期可移除式快闪存储介质的基础。1989年,日本东芝公司研制出第二代闪存,NAND闪存,与NOR闪存相比,具有更快的擦除时间,存储单元面积更小,存储密度更高,成本更低。随着技术的不断进步,闪存存储介质主要有U盘、SD卡、XD卡、记忆棒等。
闪存存储器在物理封装方式上,TSOP48和BGA是最常见的两种封装方式。3.1.3存储设备
TSOP又称薄型小尺寸封装,是在内存芯片周围做出GullWing形式引脚,采用表面安装技术(SMT技术)直接将芯片附着在PCB板上,具有引脚与外部通信,整个封装体呈矩形,厚度在0.95-1.05mm范围内,总高度不超过1.2mm,是一种使用金属引线框架的封装方式。TSOP48是TSOP封装的一种,是指封装引脚数为48的TSOP封装方式,一般用于内存或者U盘中。BGA又称球栅阵列封装,相比TSOP,封装体积更小(只有TSOP封装的三分之一),具有更好的电性能和散热性。BGA封装的I/O端子以柱状或圆形焊点按阵列形式分布在封装体下面,I/O引脚数目增多,引脚间距离增大,封装成功率提高。BGA是目前主流的闪存存储的封装方式,多用于内存、显存、固态硬盘和U盘中。3.1.3存储设备(1)U盘
以U盘(全称为USB闪存盘,UniversalSerialBusflashdisk)为例来简要说明闪存存储器的构成。U盘是一种采用USB接口的移动存储器,其存储介质为闪存,只需通过USB接口连接到计算机上就可以进行读写操作,实现了即插即用。U盘的结构很简单,主要有外壳和机芯两部分构成。外壳的主要作用是保护内部机芯不受损坏;机芯主要由PCB板、闪存、主控芯片、晶振、稳压IC等组成。(2)固态硬盘
在架构上,固态硬盘(Solid-StateDrive,SSD)与传统机械硬盘基本相似,只是将原来机械部分的马达、碟片、磁头换成了闪存颗粒。主控芯片、总线接口均保留了下来。固态硬盘相对传统机械硬盘,改变的仅仅是存储介质。但是制造技术门槛大大降低,固态硬盘出现了大量厂商。主流固态硬盘厂商有:Intel,Samsung、Toshiba、OCZ等。目前主流的固态硬盘的读写速度超过500MB/s,性能远远超过机械硬盘。3.1.3存储设备3.存储设备指标
在电子数据取证过程中取证人员不仅要了解存储介质的结构和存储原理,还需要了解存储介质的主要技术指标。电子数据取证涉及的存储设备的指标有:存储容量、数据传输率和接口。(1)存储容量
存储容量是存储介质中可以容纳二进制信息的总量,即。(2)数据传输率
数据传输率是指单位时间内存储器所存取的信息量,度量单位通常为位(bit)/秒或字节(Byte)/秒,是衡量电子数据取证效率的重要技术指标。3.2文件系统编码3.2.1
文件系统②FAT16文件系统
Fat16文件系统是伴随DOS3.0推出的,采用了16位长度的FAT项,最多可以管理4GB的分区。由于FAT16分区对大容量硬盘利用效率低、不支持4GB以上分区等原因,现在应用范围越来越小。③FAT32文件系统
FAT32文件系统是从Windows95开始推出的,采用了32位长度的FAT表,硬盘的管理能力大大增强,能够支持从32MB到32GB的分区管理,提高了硬盘的利用率,但是由于FAT表变长,运行速度较FAT16要慢很多,而且不支持大于4GB的单个文件,现在主要应用于存储卡、U盘或WindowsXP系统盘等。3.2.1
文件系统2)FAT文件系统结构
FAT文件系统由DBR区、FAT区、FDT区和DATA区4个区域组成。计算机系统启动后,由MBR引导调入活动分区的DBR,控制权移交给DBR,再由DBR来引导操作系统。通过读取DBR扇区内的“保留扇区数”和“每FAT扇区数”,系统可以定位到文件目录表FDT区。FAT表对于FAT文件系统是极为关键的一个组成部分,DATA区中的数据文件都是以簇为单位进行存储的,每一个簇都会与FAT表中的有且仅有一个FAT项相对应。文件系统写入数据时只是改写相应的FAT区、FDT区和DATA区。各区域数据结构如下图所示:3.2.1
文件系统3.2.1
文件系统①DBR区
引导记录区(DOSBootRecord),开始于硬盘0柱面1磁头1扇区,是操作系统可以直接访问的第一个扇区。DBR的主要功能是:在DOS/Windows操作系统进行引导时,DBR是除硬盘的MBR之外第一个需装载的程序段。DBR被引导调入内存后,便开始执行引导程序段,引导操作系统,其主要任务是装载DOS的系统隐藏文件IO.SYS。3.2.1
文件系统②FAT区
文件分配表(FileAllocationTable),是文件系统用来给每个文件分配硬盘物理空间的表格,其中记录着数据区中每个数据文件对应的簇,以及每个簇的当前使用状态。FAT文件系统一般都有两个FAT表:FAT1是基本FAT表,FAT2是备份FAT表。两个表都由格式化程序在对分区进行格式化时创建,长度和内容相同,FAT1紧接着DBR之后存放,FAT2跟在FAT1之后。
文件分配表(FAT)由表头和簇映射(ClusterMap)组成。FAT表的表头包含紧跟在引导扇区之后的两个项:分区所在的介质类型和分区状态。在FAT表头之后的是簇映射。簇映射由FAT表项构成,每个FAT表项都与数据区中的簇一一对应,分区上每一个可用的簇在FAT中都有且仅有一个FAT表项与之相对应。FAT表项值用于标记该簇的使用状态,其中记录簇的使用状态包括Unallocated(未分配簇),Allocated(已分配簇),以及Bad(坏簇)。各个簇描状态具体说明如下:3.2.1
文件系统
未分配簇:是指该簇可以用于存储数据。当一个文件被删除时,文件系统就会更新删除文件所对应簇的FAT表项值来声明该文件对应的所有簇都是可用的,直到有新的文件写入硬盘并占用那些簇,否则那里的数据仍然是存在的,可以对其进行数据恢复。
已分配簇:是指该簇当前被占用,正存储着数据。当一个文件占用多个簇时,这些簇的簇号不一定是连续的,但这些簇号会形成一个有确定顺序的簇号链存储在簇映射中,借此可以找到文件下一个簇在硬盘中的物理位置。3.2.1
文件系统
坏簇:是指该簇中包含一个或多个坏扇区,系统不会将之分配给用户文件。在格式化过程中,损坏的簇可以由Format命令发现并记录在相应的FAT表项中。一个簇中只要有一个扇区损坏,该簇就不能使用,但十六进制编辑器或取证工具仍有可能对这些扇区进行浏览和读取。有时坏簇也作为用户故意进行数据隐藏的一种手段,通过将部分扇区标记为坏扇区,使操作系统无法正常读取,达到特定目的。3.2.1
文件系统
EOF:是指该簇是一个文件项的结束。
当一个文件较大,占用了多个簇的空间,这些簇的空间又不是连续的,这时就会形成硬盘碎片(Fragmentation),使用工具进行碎片整理就是合并这些碎片数据以使某些文件的大部分簇保持连续的过程。碎片整理对于电子数据取证工作会产生一定影响,其对取证分析有利的可能是,即使原文件在新的位置已经被擦除了,但一些被合并的簇中的数据可能在一段时间内不会被覆盖,为数据恢复提供了可能,但其弊端是驱动器开头部分的簇有可能会被擦除得很干净。3.2.1
文件系统③FDT区
文件目录表(FileDirectoryTable),位置紧跟在FAT2之后,用于存储目录名称以及操作系统使用的文件的有关信息。在FAT文件系统的FDT表中会为每个文件和文件夹分配一个文件目录项,用以记录文件或文件夹的名称、属性、大小、起始簇号、创建时间(CreatedTime)、创建日期、访问日期、修改日期、最近修改时间(ModifiedTime)等内容。3.2.1
文件系统
在电子数据取证分析中,文件创建、访问、修改的日期和时间都有可能是重要信息,尽管有些信息可能通过使用程序或改变系统时间被有意或无意地进行修改,但FDT中的信息经常会在调查中发挥重要作用,修改时间(ModifiedTime)是文件被修改的时间;访问时间(AccessedTime)是应用程序引用该文件的时间;但是并不是所有应用程序都一定会更新访问时间(AccessedTime),例如备份程序读取这些文件时就不会更新访问时间(AccessedTime);创建时间(CreatedTime)是指文件首次被写入FDT中的时间。3.2.1
文件系统④DATA区
数据区(DATA),是FAT文件系统的主要区域,用于实际存储文件数据,以“簇”为单位进行管理。FAT32文件系统DATA区的内容主要包含三部分内容:根目录、子目录和文件内容,以“树”形结构存储数据,DATA区存储数据是取证的主要对象。每个文件系统(FAT、NTFS等)都会记录如下内容:
对象(文件/文件夹)的基本属性,包括名称、日期、时间、长度等。
对象的起始位置,即起始簇。
对象的数据片段(不连续的簇)。
逻辑卷上所有簇的状态。3.2.1
文件系统2.NTFS文件系统
TFS是新技术文件系统(NewTechnologyFileSystem)的简称,是随着WindowsNT操作系统的诞生而产生的文件系统。NTFS是一个建立在保护文件和目录数据基础上,同时兼顾节省存储资源、减少硬盘占用量的一种先进的文件系统。NTFS是目前主流的文件系统。(1)NTFS文件系统的特点
NTFS文件系统之所以能够取代老式的FAT文件系统,是因为相较于FAT,NTFS具有许多新的特性和优点,在安全性、可恢复性、容错性、文件压缩和硬盘配额等方面都较为出色。NTFS基于可恢复文件结构而设计,能有效降低用户数据文件丢失或毁坏的风险;提供容错结构日志,通过全部记录用户的操作来保护系统的安全;使用中不易产生文件碎片,有效节约硬盘占用;利用B+树文件管理方法来跟踪文件在硬盘上的位置,相较于在FAT文件系统中使用的链表技术具备更多的优越性,B+树排序方法如下图所示:3.2.1
文件系统
在NTFS文件系统中,使用“卷”(Volume)来表示一个逻辑硬盘,卷可以是一个基本分区,一个扩展分区中的逻辑硬盘,或者是一个被视为非DOS分区的硬盘上的一部分空间,一个卷也可以是被操作系统指定为一个逻辑驱动器的硬盘空间,它甚至可以不是一个硬盘上的相邻空间。NTFS支持大容量硬盘和在多个硬盘上存储文件,基于NTFS的大型数据库可能会跨越不同的硬盘。NTFS文件系统与FAT文件系统一样,也是以簇为基本单位管理硬盘空间和文件存储的,一个文件总是占用若干个簇,即使在最后一个簇没有完全用完的情况下,也是占用了整个簇的空间,这样造成了硬盘空间的浪费,但是也为残留数据的恢复提供了可能。与其他文件系统一样,NTFS文件系统也记录以下内容:
3.2.1
文件系统①对象(文件/文件夹)的基本属性,包括名称、日期时间信息、大小、属性等。②对象的起始位置,即起始簇。③对象的数据片段(不连续的簇)。④逻辑卷上所有簇的状态。
NTFS和FAT文件系统记录这些数据的方法不同,NTFS的原则是硬盘上只有文件,所有存储在卷上的数据都包含在文件中。NTFS文件系统将文件作为属性/属性值的集合来处理,文件的数据部分作为未命名属性的值,其他文件属性包括文件名、文件拥有者和时间标记等。3.2.1
文件系统(2)NTFS文件系统结构
NTFS文件系统结构如下图所示:NTFS文件系统和FAT文件系统一样,第一个扇区为引导扇区,即DBR扇区,其中有NTFS分区的引导程序和一些BPB参数,在第一个扇区之后的15个扇区是NTLDR区域,这16个扇区共同构成$Boot文件。在NTLDR后(但不一定是物理上相连的)是主文件表(MasterFileTable,MFT)区域,主文件表由文件记录(FileRecord,FR)构成,每个文件记录占2个扇区,用来记录文件在硬盘上的存储位置,NTFS文件系统分配给主文件表的区域大约占据了硬盘空间的12.5%,剩余的硬盘空间用来存放其他元文件和用户的文件。
3.2.1
文件系统NTFS文件系统中文件的文件名、扩展名、建立时间(CreatedTime)、访问时间(AccessedTime)、修改时间(ModifiedTime)、文件属性、文件大小、文件在硬盘中所占用的簇等信息被称为属性,包括文件内容在NTFS中也称为属性,各种属性被放在文件记录中进行管理,如果一个属性太大,文件记录中存放不下时,就会分配多个文件记录进行存放,而如果一个属性太小时,可能这个文件的所有属性,甚至包括这个文件的数据都会包含在一个文件记录中。3.2.1
文件系统
NTFS文件系统的主文件表中还记录了一些非常重要的系统数据,这些数据被称为元数据(metadata)文件,简称为“元文件”,其中包括了用于文件定位和恢复的数据结构、引导程序数据及整个卷的分配位图等信息,这些数据被NTFS文件系统当做文件进行管理,这些文件的文件名的第一个字符都是“$”,这些文件是隐藏的,不允许用户访问。在NTFS文件系统中,这样的文件主要有16个,包括引导文件($Boot)、MFT本身($Mft)、MFT镜像($MftMirr)、日志文件($LogFile)、卷文件($Volume)、属性定义表($AttrDef)、根目录($Root)、位图文件($Bitmap)、坏簇文件($BadClus)、安全文件($Secure)、大写文件($UpCase)、扩展元数据文件($Extendedmetadatadirectory)、重解析点文件($Extend\$Reparse)、变更日志文件($Extend\$UsnJrnl)、配额管理文件($Extend\$Quota)、对象ID文件($Extend\$ObjId)等,这16个元数据文件占据着MFT的前16项记录,在这16项之后就是用户建立的文件和文件夹的记录了。除了$Boot文件以外,其他元文件的位置不是固定的,有时$Mft也会出现在$MftMirr文件之后,虽然NTFS文件系统最后一个扇区是DBR的备份,但是这个扇区并不属于NTFS文件系统。3.2.1
文件系统(3)NTFS文件记录结构
MFT以文件记录(FR)来实现对文件的管理,每个文件记录都对应着不同的文件,每个文件记录占用2个扇区,如果一个文件有多个属性或是分散成很多碎片,就可能需要多个文件记录,这时存放其文件记录位置的第一个记录就称做“基本文件记录”,文件记录在MFT中物理上是连续的,从0开始依次按顺序编号。文件记录分为两部分:一部分是文件记录头,一部分是属性列表,最后以FFFFFFFFH为结束标志,文件记录结构如下图所示:3.2.1
文件系统①文件记录头的结构在同一个操作系统中,文件记录头的长度和偏移位置的数据含义是基本不变的,属性列会随数据的不同而不同,不同的属性列的含义也不相同。如下图所示,偏移量00H~37H是一个文件记录头,文件记录头的信息含义如下表所示。偏移长度含义00H4MFT标志,总为字符串“FILE”04H2更新序列号(UpdateSequenceNumber)的偏移位置06H2更新序列号的大小与数组,包括第一个字节3.2.1
文件系统08H8日志文件序列号($LogFileSequenceNumber,LSN)10H2序列号(SequenceNumber)12H2硬连接数(HardLinkCount),即有多少目录指向该文件14H2第一个属性的偏移地址16H2标志(Flag),00H表示删除文件,01H表示正常文件,02H表示删除目录,03H表示正常目录18H4文件记录的实际长度1CH4文件记录的分配长度20H8基本文件记录中的文件索引号28H2下一属性ID,当增加新的属性时,将该值分配给新属性,然后该值增加,如果MFT记录重新使用,则将它置为0,第一个实例总是02AH2边界,WindowsXP中为偏移30H处2CH4文件记录参考号,WindowsXP中使用,Windows2000中无此参数30H2更新序列号32H4更新数组3.2.1
文件系统②文件记录中的属性结构
在NTFS文件系统中所有与文件相关的数据均被认为是属性,包括文件的内容,文件记录是一个与文件相对应的文件属性数据库,记录了文件数据的所有属性。每个文件记录中都有多个属性,它们相对独立,有着各自的类型和含义,每个属性的偏移00H~03H为该属性的类型标志,属性类型及含义如下表所示。属性类型属性类型名属性描述10000000$STANDARD_INFORMATION标准信息,包括只读、系统、存档等基本文件属性和创建时间、最后修改时间等时间属性,以及多少目录指向该文件20000000$ATTRIBUTE_LIST属性列表,当一个文件需要多个文件记录时,用来描述文件的属性列表30000000$FILE_NAME文件名,用Unicode字符表示的文件名,由于MS-DOS不能识别长文件名,因此NTFS文件系统会自动生成一个8.3文件名40000000$VOLUME_VERSION早期NTFSv1.2中的卷版本40000000$OBJECT_ID对象ID,具有64字节的标识符,其中最低位的16字节对卷来说是唯一的50000000$SECURITY_DESCRIPTOR安全描述符,为向后兼容而保留的,用于保护文件以防止未授权的访问,该属性在Windows2000/XP中已存放在$Secure元数据中3.2.1
文件系统60000000$VOLUME_NAME卷名,即卷标识,该属性仅存在于$Volume元文件中70000000$VOLUME_INFORMATION卷信息,该属性仅存在于$Volume元文件中80000000$DATA文件数据,即文件的数据内容90000000$INDEX_ROOT索引根A0000000$INDEX_ALLOCATION索引分配B0000000$BITMAP位图C0000000$SYMBOLIC_LINK早期NTFSv1.2中为符号链接C0000000$REPARSE_POINT重解析点D0000000$EA_INFORMATION扩充属性信息E0000000$EA扩充属性F0000000$PROPERTY_SET早期NTFSv1.2中才有00100000$LOGGED_UTILITY_STREAMEFS加密属性,该属性用于存储实现EFS加密的有关加密信息,如合法用户列表、解码密钥等3.2.1
文件系统
每个属性都可以分为属性头和属性体两部分。如果一个文件很小,其所有属性都可以存放在MFT的文件记录中,那么该属性就称为常驻属性(ResidentAttribute);如果一个属性的属性体太大而不能存放在1KB大小的MFT文件记录中,那么文件系统将从MFT之外为其分配区域,这些区域称为数据流(DataRun),这样的属性就称为非常驻属性(NonresidentAttribute)。一个属性根据其是否常驻和是否有属性名,可以出现四种不同的情况,即常驻没有属性名的属性头、常驻有属性名的属性头、非常驻没有属性名的属性头、非常驻有属性名的属性头,这四种属性头的结构有一定差别,由于篇幅限制,这里就不做分别介绍了。3.2.1
文件系统3.exFAT
exFAT全称为ExtendedFileAllocationTableFileSystem,即扩展文件分配表,是微软在WindowsEmbeded6.0(包括WindowsCE5.0、6.0,WindowsMobile5、6、6.1)中引入的一种适合于闪存(如U盘、存储卡等)的文件系统,是基于FAT文件系统能够管理的空间有限、NTFS文件系统对闪存介质芯片损耗较大的原因而推出的。(1)exFAT文件系统的特点与FAT文件系统对比,exFAT主要有如下特点:3.2.1
文件系统◆支持的单文件大小理论上最大可达16EB(16×1024×1024TB);◆支持的簇最大为32MB;◆支持访问控制列表(AccessControlLists);◆采用了剩余空间分配表,剩余空间分配性能改进;◆同一目录下最大文件数可达65536个;◆支持Transaction-SafeFAT文件系统(TFAT),即安全FAT文件系统;◆提供给OEM的可定义参数可以使这个文件系统适应有不同特点的设备;◆时间戳能够使用通用协调时间UTC;◆增强了台式计算机与移动设备的互相兼容性;◆降低了硬盘空间文件系统的开销。测试发现,4GB的闪存驱动器格式化为NTFS,文件系统开销为47.2MB,而使用exFAT仅为96KB。3.2.1
文件系统(2)exFAT文件系统结构exFAT文件系统由DBR及保留扇区、FAT、簇位图文件、大写字符文件、用户数据区等5部分组成,其结构如下图所示。①DBR及其保留扇区:操作系统引导记录,与FAT文件系统相似。在DBR之后往往有一些保留扇区,其中12号扇区为DBR的备份;②FAT:文件分配表,与FAT文件系统相同;③簇位图文件:exFAT文件系统中的一个元文件,类似于NTFS文件系统中的元文件$Bitmap,用来管理分区中簇的使用情况;④大写字符文件:exFAT文件系统中的第二个元文件,类似于NTFS文件系统中的元文件$UpCase,Unicode字母表中每一个字符在这个文件中都有一个对应的条目,用于比较、排序、计算Hash等方面,该文件大小固定为5836字节。⑤用户数据区:exFAT文件系统的主要区域,用来存放用户的文件及目录。3.2.1
文件系统4.HFS/HFS+
苹果操作系统主要采用的文件系统包括HFS/HFS+两种格式。早期的Apple计算机使用MFS文件系统。1985年,苹果公司发布了HFS文件系统,取代了MFS文件系统,但是HFS文件系统的结构和数据管理方式存在很多不足,1998年,苹果公司又发布了HFS+文件系统,针对HFS文件系统的一些不足做出了改进。因此,HFS+文件系统是目前苹果操作系统默认最常用的文件系统。本部分主要讲解HFS+文件系统的结构、特点以及文件删除原理。
HFS+文件系统的结构
HFS+文件系统把“卷”称为“宗卷”,HFS+卷有5种特殊的文件,被称为“元文件”,用来保存文件系统结构的数据性数据和属性,它们分别是编录文件(CatalogFile)、盘区溢出文件(ExtentsOverflowFile)、分配文件(AllocationFile)、属性文件(AttributesFile)和启动文件(StartupFile),这些特殊文件只有数据分支,没有资源分支,起始地址和大小都在卷头中加以描述,HFS+文件系统的结构如下图所示:3.2.1
文件系统(1)卷头
HFS+宗卷的前两个扇区是保留不用的,一般为空扇区,没有任何数据,但这两个保留不用的扇区所在的块在分配文件内会被标记为“已使用”。每个HFS+都必须有一个卷头,卷头通常位于第三个扇区,也就是2号扇区,卷头内存储着各种与宗卷相关的信息,如建立的时间、大小等,在宗卷的倒数第二个扇区有一个卷头的备份。宗卷的前两个扇区和最后一个扇区都保留不用。(2)编录文件(CatalogFile)
编录文件存储着宗卷内所有文件和目录的重要信息,采用B-树结构对数据进行组织。HFS+文件系统利用编录文件中的信息来维系宗卷内的文件和目录的层次关系。(3)盘区溢出文件(ExtentsOverflowFile)
HFS+存储数据的基本单位为“块”,“盘区”是一系列连续的分配块,如果文件不是连续存放的,就会有多个盘区。对于一个用户文件,前8个盘区的信息保存在宗卷的编录文件中,如果多于8个,那么从第9个盘区开始往后的盘区信息需要保存在盘区溢出文件中。3.2.1
文件系统(4)分配文件(AllocationFile)
分配文件用来描述一个分配块是否已经分配给文件系统使用。相当于一个位图文件,每个位都与宗卷内的一个块相对应。(5)属性文件(AttributesFile)
属性文件是用来保存文件或目录的信息的文件,结构和编录文件一样,采用B-tree结构。另外,属性文件的节点大小最小为4KB。(6)启动文件(StartupFile)
启动文件是一个特殊文件,作用是从HFS+卷上启动非MacOS。(7)坏块文件
坏块文件是用来记录硬盘上有缺陷或不能正常存储数据的块的重要文件,可以避免文件系统对硬盘缺陷块进行分配。坏块文件既不属于用户文件,也不属于元文件,在文件系统的卷头中没有对其进行描述,卷头和编录文件中都找不到坏块文件的信息。3.2.1
文件系统HFS+文件系统的特点
HFS+文件系统的特点主要体现在以下几个方面:
(1)Mac系统把硬盘空间划分为一个个大小为512字节的逻辑块(LogicBlock),逻辑块其实就是扇区。所有扇区从0开始编号,直到硬盘的最大扇区数减1。
(2)文件系统中文件的分配单元不是扇区,而是“分配块”(AllocationBlock),一个分配块占用一组连续的扇区。分配块就相当于FAT、NTFS文件系统中的簇,只是工作环境与名称不同而已。每个分配块的大小为2N扇区。因为HFS+用32位记录分配块的数量,所以一个宗卷中最多可以管理232个分配块。一般情况下,分配块的大小为4KB,这是最优化的分配块大小。
(3)所有的文件结构,包括卷头,都包含在一个或者几个分配块中。用每分配块的大小字节数除以512字节所得到的每分配块大小扇区数,直接乘以分配块号就能得到一个分配块的第一个扇区所在位置。3.2.1
文件系统HFS+文件系统的特点HFS+文件系统的特点主要体现在以下几个方面:(1)Mac系统把硬盘空间划分为一个个大小为512字节的逻辑块(LogicBlock),逻辑块其实就是扇区。所有扇区从0开始编号,直到硬盘的最大扇区数减1。(2)文件系统中文件的分配单元不是扇区,而是“分配块”(AllocationBlock),一个分配块占用一组连续的扇区。分配块就相当于FAT、NTFS文件系统中的簇,只是工作环境与名称不同而已。每个分配块的大小为2N扇区。因为HFS+用32位记录分配块的数量,所以一个宗卷中最多可以管理232个分配块。一般情况下,分配块的大小为4KB,这是最优化的分配块大小。
3.2.1
文件系统(3)所有的文件结构,包括卷头,都包含在一个或者几个分配块中。用每分配块的大小字节数除以512字节所得到的每分配块大小扇区数,直接乘以分配块号就能得到一个分配块的第一个扇区所在位置。(4)为了减少文件碎片的产生,HFS+在为文件分配存储空间的时候,会尽可能地为其分配一组连续的分配块或块组。块组的大小通常为分配块大小的整数倍,这个值在卷头中说明。(5)对于非连续存储的文件,Mac采用“下一可用分配策略”为其分配存储空间。即当Mac系统接收到文件空间分配请求时,如果首先找到的空闲空间无法满足请求的空间大小,则继续从下一个找到的空闲块开始继续分配,如果这次找到的连续空闲空间足够大,则根据请求空间的大小分配“块组”大小的整倍数空间给这个文件。HFS+文件系统的文件删除与恢复原理3.2.1
文件系统HFS+文件系统文件管理方式HFS+文件系统对文件的管理结构如下图所示。3.2.1
文件系统HFS+文件系统中的卷头描述了编录文件的存放地址,编录文件管理着用户数据的大部分信息。编录文件采用B-树结构组织数据,B-树的第一个节点称为头节点,头节点中会描述节点的大小及根节点的节点号等信息,通过头节点就可以定位到根节点。根节点一般是索引节点,用指针记录的形式描述B-树中各个关键词的分布情况,利用这种描述关系可以找到需要的关键词所在的节点号,这个节点属于叶节点,由数据记录组成,包括文件夹记录、文件记录、文件夹链接记录、文件链接记录,文件夹记录及文件记录描述文件夹和文件的具体信息,链接记录描述文件与文件夹之间的上下级关系。在目标文件所在的叶节点中对关键词做顺序遍历,能够快速找到目标文件的文件记录,根据文件记录的分支信息中描述的盘区地址,就可以最终定位到文件的存储地址了,这些盘区中存储的就是文件的数据。3.2.1
文件系统5.Ext随着Linux的不断发展,大多数发行版主要应用于x86平台,支持MBR硬盘分区和GPT硬盘分区,它所支持的文件系统也在迅速扩充,Linux系统内核可以支持包括Ext、Ext2、Ext3、Ext4、NTFS等在内的十多种文件系统,其中以Ext3、Ext4最为常用。本部分主要介绍最常用的Ext3文件系统,并简要介绍Ext4文件系统。Ext3文件系统结构Ext3文件系统的全部空间被划分为若干个块组,每个块组内的结构都大致相同,Ext3文件系统的整体结构及第一个块组的具体结构如下图所示:3.2.1
文件系统
Ext3文件系统的前两个扇区用来存放引导程序,被称为引导扇区,如果没有引导程序则保留不用,一般为空扇区,没有任何数据。Ext3文件系统的第三个扇区(即2号扇区)是“超级块”,超级块占用两个扇区,用于存储文件系统的配置参数(如块大小、总块数和i-节点数)和动态信息(如当前空闲块数和i-节点数)。块组描述符表用于存储块组描述符,占用一个或者多个块,每个块组描述符主要描述块位图、i-节点位图及i-节点表的地址等信息。为了系统的健壮性,在块组号是3、5、7的幂的块组(如1、3、5、7、9、25、49等)内对超级块和块组描述符表做备份。通常情况下,只有0号块组的超级块信息被文件系统使用,其他备份只有在主超级块被破坏的情况下才使用。块位图用于描述本块组所管理的块的分配状态,块位图中的每一位映射本块组中的一个块,如果某个块对应的位没有设置,那么代表该块未分配,可以用于存储数据,否则代表该块已经存放了数据或者该块不能使用。i-节点位图用于描述本块组所管理的i-节点的分配状态,i-节点位图中的每一位映射本块组中的一个i-节点,如果i-节点已经使用,i-节点位图中相应的位被置为1。i-节点用于描述文件的元数据,每个i-节点对应文件系统中唯一的节点号。3.2.1
文件系统(1)文件管理方式
Ext3文件系统对文件的管理结构如下图所示:Ext3文件系统被分为若干个块组,并通过块组描述符描述这些块组,所有块组描述符组成块组描述符表,块组描述符表位于超级块的下一个块中。文件以块为单位进行分配,每个文件都有自己的一个i-节点和目录项,i-节点中记录文件的大小、时间信息、分配地址(块指针)等信息,目录项中则记录文件的i-节点号、文件名等信息。将目录项和i-节点结合起来分析,就能获得某个文件的所有信息并通过块指针定位到其数据存放的地址,块指针所指向的块内就是文件的数据。3.2.1
文件系统(2)Ext4文件系统简介Ext4是Linux文件系统的一次革命。Ext3相对于Ext2的改进主要在于日志方面,而Ext4相对于Ext3的改进是更深层次的,是文件系统数据结构方面的优化。Ext4在性能、伸缩性和可靠性方面进行了大量改进,引入了大量新功能。主要有以下特点:(1)兼容性强任何Ext3文件系统都可以轻松迁移到Ext4文件系统,由于Ext4仅会在新的数据上使用,而基本不会改动原有数据,因此这种升级不会损害到硬盘上的数据和资料。(2)支持更大的文件系统和更大的文件Ext3文件系统最多只能支持32TB的文件系统,2TB的文件。Ext4将支持最大1EB的文件系统,16TB的文件大小。(1EB=1024PB=1024*1024TB)3.2.1
文件系统(3)支持更多的子目录数量Ext3中,支持的子目录数目最多是32000个,而在Ext4中理论上可以创建无限多个子目录。(4)ExtentsExt3对于超大文件的存储是有缺陷的,特别是当对超大文件进行删除和截断操作时。Ext4引入了一个新的概念,叫“Extents”,一个Extents是一个地址连续的数据块的集合,Extents的实现提高了文件系统的性能,减少了文件碎片。(5)支持多块分配在Ext3中,当数据写入硬盘时,是由块分配器来控制的,Ext3的块分配器一次只能分配一个4KB的数据块。在Ext4中,使用了“多块分配器”,支持一次调用分配多个数据块,提高了系统的性能,并且使得分配器有了充足的优化空间。3.2.1
文件系统(6)支持延迟分配Ext3的数据块分配策略是尽快分配,而Ext4的策略是尽可能的积累更多的数据块再分配出去,这项特性与Extents特性以及多块分配特性相结合,使得硬盘IO性能得到显著提高。(7)支持快速FSCK在Ext3中,FSCK要检查文件系统里的每一个“i-节点”,因此速度很慢。而Ext4给每个块组的i-节点表中都添加了一份未使用i-节点的列表,在进行FSCK操作时,会跳过表中节点,只检查正在使用中的i-节点,从而有效提高了FSCK的效率。(8)支持日志校验功能Ext4给日志数据提供了校验功能,可以很方便地判断日志数据是否损坏。而且,Ext4还将Ext3日志机制中的“两阶段提交”动作合并为一个步骤,在增加安全性的同时又提高了性能。3.2.1
文件系统(9)支持“无日志”模式日志终归会占用一些开销,Ext4允许关闭日志,以便某些有特殊需求的用户可以借此提升性能。(10)在线碎片整理Ext4支持在线碎片整理,可提供更为智能的硬盘碎片整理功能。(11)新的i-节点结构更大的i-节点:Ext4为了在i-节点中容纳更多的扩展属性,将默认大小提升到256字节。增加的空间用来存储更多的节点信息,这样有利于提升硬盘性能。i-节点预留机制:当新建一个目录时,若干i-节点会被预留下来,等新的文件在此目录中创建时,这些预留的i-节点就可以立即被使用。文件的建立和删除将变得更加高效。纳秒级的时间戳:在Ext3中,时间精度是秒。在Ext4中,考虑到未来的发展,时间戳的单位提升到了纳秒。3.2.1
文件系统(12)支持持久性预分配应用程序告知文件系统给预留出一定的空间,文件系统会据此预分配必要的数据块,但是这些数据块将会是空的,直到应用程序向里面写入数据为止。(13)默认启用barrierExt4默认启用barrier,只有当barrier之前的数据全部写入硬盘,才能写barrier之后的数据。3.2.1
文件系统6.光盘文件系统光盘文件系统的作用与我们所熟悉的FAT16、FAT32等硬盘文件系统的作用基本上是一样的,目前最常见的4种光盘文件系统主要是ISO-9660、UDF、Joliet、Romeo。ISO-9660:由国际标准化组织于1985年颁布,是目前唯一通用的光盘文件系统,任何类型的计算机以及所有的刻录软件都提供对它的支持。因此,如果想让刻录好的光盘能被所有的CD-ROM驱动器都顺利读取的话,最好使用ISO-9660或与其兼容的文件系统;其他的文件系统只能在CD-R或CD-RW上读取,限制了光盘的通用性。ISO-9660目前有Level1和Level2两个标准。Level1与DOS兼容,文件名采用传统的8.3格式,所有字符只能是26个大写英文字母、10个阿拉伯数字及下划线。Level2在Level的基础上进行了改进,允许使用长文件名,但不支持DOS。这种光盘文件系统不支持单个大于2GB的文件。3.2.1
文件系统UDF:统一光盘格式(UniversalDiscFormat)的缩写,它采用标准的封装写入技术(PacketWriting,PW)将CD-R当作硬盘来使,允许在CD-R/RW光盘上任意追加数据,用户可以在光盘上修改和删除文件,支持2GB以上的大文件。在使用UDF时,一般都可以使用Windows中的资源管理器就能进行烧录,不会像使用ISO映像文件进行烧录时,每次完毕后都要进行关闭区段(CloseSession)的操作,减少了烧录失败的机率,DOS和Win98系统不支持此格式,Windows2000和XP以上系统和MacOS系统支持。另外,它还有一种派生的格式,即UDF/ISO,用UDF的技术制作ISO标准的光盘。3.2.1
文件系统Joliet:微软公司自行定义的光盘文件系统,也是对ISO-9660文件系统的一种扩展,它支持Windows9x/NT和DOS,在Windows9x/NT下文件名可显示64个字符,可以使用中文。Romeo:著名的Adaptec公司自行定义的文件系统,支持Windows9x/NT,文件名最多可有128个字符,也支持中文,但不支持DOS、OS/2、LINUX、MacOS等操作系统,其应用范围较小。除此之外,还有一些针对特定厂商或系统的光盘文件系统,主要有HFS、CD-RFS、RockRidge等。3.2.1
文件系统HFS:苹果公司(Apple)的Mac机所使用的光盘文件系统,全称为混合文件系统(HybridFileSystem),是ISO-9660的延伸,允许以ISO-9660Level2的方式在CD-ROM上存放长文件名,以及存放数据文件和执行文件之间的关联信息,但是存放在Level2的信息无法被MAC以外的计算机读取。CD-RFS:索尼公司自定义的一种与UDF类似的文件系统,也使用PW技术,其全称为可记录光盘文件系统(CD-RecordableFileSystem)。RockRidge:针对UNIX系统的ISO-9660文件系统,支持文件名字母大小写、符号字符以及长文件名。由于兼容ISO-9660,所以即使操作系统不支持RockRidge,也可以通过ISO-9660查看。3.2.1
文件系统7.分布式文件系统
单纯通过增加硬盘容量和个数来扩展文件系统的存储容量的方式,已经不能适应大数据时代的需求。单机版的文件系统在容量大小、存储速度、数据备份、数据安全等方面的表现都差强人意。分布式文件系统可以有效解决数据的存储和管理难题。
分布式文件系统(DistributedFileSystem)是指文件系统管理的物理存储资源不仅直接连接在本地节点上,而是通过计算机网络与节点相连,各节点拥有相同的存储权限,按照需求应对不同的存储需求的文件系统。分布式文件系统的设计基于客户机/服务器模式,将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统,众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。3.2.1
文件系统
典型的分布式文件系统为Hadoop。Hadoop是一个由Apache基金会所开发的分布式系统基础架构。Hadoop实现了一个分布式文件系统(HadoopDistributedFileSystem),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上;提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序,以以流的形式访问件系统中的数据。Hadoop的框架最核心的设计就是HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。3.2.2
编码与解码相对于难懂的二进制代码,编码可以通过统一的定义数据格式,来加快数据执行效率。同时编码也可以隐藏数据结构,有利于保护版权。电子数据取证实际上是一个“黑盒”的探索过程,很多时候,取证就是分析数据采取什么方式的编码,以及使用正确解码方式以使数据可视化。因此了解编码原理和解码方法是电子数据取证的至关重要的基础。1.编码与解码的概念如同一个大厦的建设从一砖一瓦开始,编码体系也是由最基本的概念建立起来。从最小的单位——“字符”到整个编码体系,每一部分都起到重要作用,也有着确定的概念。在大多数资料中,字符集和编码过程经常被混淆,但是实际上二者是不同的概念。(1)字符(Character)字符是文字与符号的总称,包括文字、图形符号、数学符号等。一个字符是用二进制编码表示的,但具体是什么字符,是根据字符集决定的。3.2.2
编码与解码(2)字符集(Charset)
字符集是一组抽象字符进行规律排序的集合。字符集实际上就是个映射表。字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。一组有共同特征的字符也可以组成字符集,比如繁体汉字字符集、日文汉字字符集。
计算机科学引用了传统定义上用于教育用的生字表、通讯用的电报码表(莫尔斯电码)等领域的字符集的概念。在计算机科学中,字符集特指ASCII、Unicode、GB2312、GBK、BIG5等用于计算机编码的字符集合。3.2.2
编码与解码(3)字符编码(Encoding)
字符编码是计算机处理各种字符时,将字符和二进制内码对应(Encode)起来而形成的映射集合。它是个名词。需要注意的是,映射的动作是动词的编码(Encode),而映射出的编码(Encoding)是二进制的。制定编码(Encoding)的前提是确定字符集,要将字符集内的字符排序,然后和二进制数字对应起来。根据字符集内字符的多少,会确定用几个字节来编码(Encode)。如果编码(Encoding)已经限定了一个明确的字符集合,就叫做被编码过的字符集(CodedCharacterSet)。3.2.2
编码与解码2.字符集和编码(Encoding)区别制定编码的同时往往也制定了字符集,所以经常把字符集和编码(Encoding)混为一谈,但是从本质上,二者是截然不同的概念。字符集作为字符的集合,是作为一个标准使用的,如果需要在系统中使用或者网络上传输处理,就需要对其进行编码(Encode)/解码(Decode)。例如Unicode可依不同需要以UTF-8、UTF-16、UTF-32等方法编码,GB2312和CNS11643可以使用ISO/IEC2022、EUC等标准编码。Unicode可依不同需要以UTF-8、UTF-16、UTF-32等方法编码。有些字符集如Big5通常不需编码(Encode)即可使用,所以Big5既是字符集又是编码(Encoding)。(1)解码解码,是编码的逆过程。(2)字体(Font)计算机字体是一个电子数据文件,是某种文字的美术字形的集合。比如英文的Aial,中文的宋体、楷体。在Windows环境中,为用户提供了两类字体,一类是点阵字体,另一类是TrueType字体。3.2.2
编码与解码3.编码
字符必须编码后才能被计算机处理。计算机使用的缺省编码方式称为计算机的内码。早期的计算机使用7位的ASCII编码作为系统内码,ASCII字符编码标准主要是为英语语系国家制定的,无法处理亚洲国家的文字体系。亚洲各国根据本国实际情况设计了相应的字符编码标准,在ANSI码的基础上设计了符合本国实际情况的字符编码集,以能够处理大数量的象形字符,这些编码使用单字节来表示ANSI的英文字符(即兼容ANSI码),使用双字节来表示汉字字符。例如用于简体中文的GB2312和用于繁体中文的BIG5。3.2.2
编码与解码(1)ASCII字符集
ASCII(AmericanStandardCodeforInformationInterchange,美国信息互换标准代码)是基于拉丁字母的字符编码,简称为“美标”。它主要用于显示现代英语和其他西欧语言。ASCII是现今最通用的单字节编码系统,大部分计算机都支持ASCII编码,等同于国际标准ISO646。ASCII字符编码标准规定了用从0-127的128个数字来代表信息的规范编码,其中包括33个控制字符(0x00-0x20和0x7F共33个)、一个空格和94个可显示字符。ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。ASCII码是7位编码,只支持ASCII码的系统会忽略每个字节的最高位,只认为低7位是有效位。3.2.2
编码与解码
7位编码的字符集只能支持128个字符,为了表示更多的欧洲常用字符对ASCII进行了扩展,这就是ASCII扩展字符集。ASCII扩展字符集使用8位(bits)表示一个字符,共256字符。ASCII扩展字符集比ASCII字符集扩充出来的符号包括表格符号、计算符号、希腊字母和特殊的拉丁符号。(2)GB2312-80字符集
GB2312-80简称为GB2312。是“中华人民共和国国家标准信息交换用汉字编码”(简称国标)标准中的“信息交换用汉字编码字符集·基本集”,由中国国家标准总局1981年5月1日发布实施。3.2.2
编码与解码
GB2312是中国国家标准的简体中文字符集。它所收录的汉字已经覆盖99.75%的使用频率,基本满足了汉字的计算机处理需要。在中国大陆和新加坡获广泛使用。GB2312收录简体汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共7445个图形字符。其中包括6763个汉字,其中一级汉字3755个,二级汉字3008个;包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。
GB2312将这些字符排成一个94行、94列的方阵。方阵中每一横行叫一个“区”,每个区有九十四个“位”。一个汉字在方阵中的坐标,称为该字的“区位码”。例如“中”字在方阵中处于第54区第48位,它的区位码就是5448。在大多数计算机程序中,高字节和低字节分别加0xA0得到程序的汉字处理编码0xB0A1。计算公式是:0xF4=0xA0+54,0xE8=0xA0+48。3.2.2
编码与解码(3)GBK字符集:GBK全称“汉字内码扩展规范”(ChineseInternalCodeSpecification),1995年颁布。GB是国标,K是汉字“扩展”的汉语拼音第一个字母。GBK码是GB码的扩展字符编码,GBK向下与GB-2312编码兼容,向上支持ISO10646.1国际标准。GBK中的简体汉字的编码与GB2312中简体汉字的相同。另外,GBK中还包含繁体字的编码。它基本包含了所有中文汉字编码。GBK规范收录了ISO10646.1中的全部CJK汉字和符号,并有所补充。总计23940个码位,共收入21886个汉字和图形符号,其中汉字(包括部首和构件)21003个,图形符号883个。3.2.2
编码与解码(4)BIG5字符集
BIG5字符编码又称大五码或五大码,1984年由台湾财团法人信息工业策进会和五间软件公司宏碁(Acer)、神通(MiTAC)、佳佳、零壹(ZeroOne)、大众(FIC)创立,故称大五码。
Big5码的产生,是因为当时台湾不同厂商各自推出不同的编码,如倚天码、IBMPS55、王安码等,彼此不能兼容;另一方面,台湾政府当时尚未推出官方的汉字编码,而中国大陆的GB2312编码也未有收录繁体中文字。为了能够统一标准,上述公司联合起来制定了这一标准并一直沿用下来。Big5字符集共收录13,053个中文字,该字符集在中国台湾使用。3.2.2
编码与解码
Big5码使用了双字节储存方法,以两个字节来编码一个字。第一个字节称为“高位字节”,第二个字节称为“低位字节”。高位字节的编码范围0xA1-0xF9,低位字节的编码范围0x40-0x7E及0xA1-0xFE。
Windows系统上使用的代码页CP950也可以理解为是对Big5的扩展,在Big5的基础上增加了7个汉字和一些符号。Big5编码对应的字符集是GBK字符集的子集,也就是说Big5收录的字符是GBK收录字符的一部分,但相同字符的编码不同。在网络赌博案件中经常可以遇到Big5编码。3.2.2
编码与解码(6)Unicode、UCS和UTF1)定义国际标准化组织(ISO)开发了ISO10646项目,Unicode协会[]开发了Unicode项目。二者的工作殊途同归,在合并了双方的工作成果后,创建了单一的字符编码标准。只不过名称不同,UNICODE协会称为Unicode编码,Unicode的学名是“UniversalMultiple-OctetCodedCharacterSet”,ISO则称为UCS(UnicodeCharacterSet)编码(ISO10646-1的一部分)。目前,Unicode得到广泛应用。2)编码原理Unicode只是规定如何编码,并没有规定如何传输、保存这个编码,例如“爱”字的UCS编码是0x7231,可以用4个ASCII字符来传输、保存这个编码,也可以用UTF(UCSTransformationFormat)编码传输,UTF-8、UTF-7、UTF-16都是被广泛接受的方案。使用UTF-8编码,“爱”是3个连续的字节E788B1来表示。关键在于通信双方都要认可。UTF-8的一个特别的好处是它与ISO-8859-1完全兼容。3.2.2
编码与解码UTF-8编码UTF-8便于不同的计算机之间使用网络传输不同语言和编码的文字,使得双字节的Unicode能够在现存的处理单字节的系统上正确传输。UTF-8使用可变长度字节来储存Unicode字符,例如ASCII字母继续使用1字节储存,重音文字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理应急预案与处理流程考核试卷
- 2025年会计政策更新试题及答案
- 适应新趋势的证券从业资格证考试试题及答案
- 项目经理的沟通能力评估试题及答案
- 2025年【机修钳工(初级)】考试试题及答案
- 河堤高边坡施工方案
- 染整废水处理设施的运行管理与维护策略考核试卷
- 项目管理学习与应用题目试题及答案
- 纸板容器设备性能优化考核试卷
- 细菌培养技术与实践试题及答案
- 国药茶色素讲稿30课件
- 鲁科版五年级英语下How many ducks do you have?课件2
- 《罗织经》全文及翻译
- 医院药品信息管理系统(DOC)
- isa-381g站用变接地保护测控装置技术使用说明书南网版v3
- 计算机应用基础(中等职业学校校本教材)
- 完整版健康管理师
- 沈阳终止解除劳动合同范文证明书(三联)
- 广东省中型灌区续建配套与节水改造工程初步设计报告编制指南17
- 2022年教师资格《初中道德与法治学科知识与教学能力》真题卷
- SOP标准作业指导书1
评论
0/150
提交评论