文件系统结构分析

合集下载

文件系统简要

文件系统简要

一.物理磁盘结构:1.磁道:当磁盘的盘面旋转时。

磁头保持在一个位置上。

当盘面旋转一圈时。

划过的一个圆就为磁道。

一条磁道的储存量:一磁道= 63个扇区。

(通常情况)。

2.扇区:磁道上被逻辑划分弧段相等的就为扇区,它的编号从1开始,一扇区大小为512个字节。

3.柱面:由一组重叠的盘面组成,每个盘面上都划分为相等的磁道,并从0 开始编号。

具有相同编号组成的一个圆柱为柱面,柱面数=于一个盘面上的磁道数,对于每个盘面都有自己的磁头所以有CHS :(Clinder(柱面) Head(磁头)Sector(扇区)),这就是一个寻址方式。

物理磁盘结构图以下引用的函数均在WIN32下二.分区表1.主引导扇区(MBR)分区表的基本信息放在主引导扇区,主引导扇区的地址CHS=柱面0 , 磁头0, 扇区1.其大小为一扇区大小512个字节。

这里我把这512个字节总结为下得一个结构体:#pragma pack(1)typedef struct InFoDisk{UCHAR BootID; //80h表示可启动分区,否则为0;对主分区有用;UCHAR SartHead ; //分区的起始磁头号;USHORT SartSectorTrack ;//分区的起始扇区和磁道号UCHAR FileSystemID; //05H或0FH为扩展分区,06H或0EH为FA T16,0BH或0CH为FA T32 ,07为NTFS;UCHAR EndHead; //分区结束磁头号;USHORT EndSectorTrack; // 分区结束扇区和磁道号ULONG HeadSecor; //分区前的扇区;ULONG AllSector; //分区的总扇区;}InFoDisk,*PInFoDisk;/*位于磁盘的0磁头0拄面1扇区;*/#pragma pack(1)typedef struct _System_Boot_Sector{UCHAR BootCode[0x1be]; //引导代码;InFoDisk InFoC; //C分区的基本信息;InFoDisk InFoD; //D分区的基本信息InFoDisk InFoE; //E分区的基本信息一般不用为0;InFoDisk InFoF; //E分区的基本信息一般不用为0;USHORT LoGo; //"AA55";}System_Boot_Sector,*PSystem_Boot_Sector;从结构体可以看出偏移0x1be个字节就得到分区表的基本信息,在WINDOWS编程下这么找到:DWORD cbRead;System_Boot_Sector BootSectorData;HANDLE hFile=CreateFile("\\\\.\\PhysicalDrive0", GENERIC_WRITE|GENERIC_READ,FILE_SHARE_WRITE|1, 0, OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN, 0);ReadFile(hFile, & BootSectorData,0x200 , &cbRead, NULL);//读的主引导扇区的数据。

了解计算机文件系统NTFSFAT和HFS的区别

了解计算机文件系统NTFSFAT和HFS的区别

了解计算机文件系统NTFSFAT和HFS的区别计算机文件系统是操作系统用来组织和管理计算机存储设备上的文件和目录的一种机制。

在不同的操作系统中,常见的文件系统有NTFS、FAT和HFS。

本文将就NTFS、FAT和HFS三种文件系统进行比较,以帮助大家更好地了解它们之间的区别。

一、NTFSNTFS(New Technology File System)是微软公司开发的一种高性能、可靠性和安全性较强的文件系统。

NTFS首次被引入Windows NT操作系统,并一直沿用至今。

1.1 文件系统结构NTFS采用了一种分层次的文件系统结构。

它包含了主引导记录(MBR)、分区表、文件记录、文件分配表等重要的组成部分。

而数据存储则是通过将文件分割成不同的簇来管理。

1.2 特点和功能NTFS具有许多先进的特点和功能,例如:- 安全性:NTFS支持访问控制列表(ACL)和文件加密,可以对文件和目录进行更细粒度的权限控制。

- 可靠性:NTFS采用了日志和冗余技术,使得文件系统更加稳定和可靠。

- 容量:NTFS最大支持16EB(1EB=1024PB)的存储容量,能够满足大容量存储的需求。

- 文件压缩和加密:NTFS支持文件压缩和加密,可以提高存储效率并保护敏感数据的安全性。

二、FATFAT(File Allocation Table)是一种较早的文件系统,最初是由微软开发的。

FAT文件系统广泛应用于早期的Windows操作系统和一些移动存储设备中。

2.1 文件系统结构FAT文件系统采用了一种比较简单的存储结构,它通过FAT表来管理文件和目录。

FAT表是一个记录簇号和下一个簇号之间对应关系的查找表。

2.2 特点和功能FAT文件系统具有以下特点和功能:- 简单易用:FAT文件系统结构简单,易于实现和维护。

- 兼容性好:FAT文件系统具有较好的兼容性,可以在不同操作系统之间进行文件共享和传输。

- 存储限制:FAT文件系统的文件大小限制为4GB,对于大容量存储设备来说可能不够满足需求。

Ext4文件系统架构分析(一)

Ext4文件系统架构分析(一)

Ext4⽂件系统架构分析(⼀)本⽂描述Ext4⽂件系统磁盘布局和元数据的⼀些分析,同样适⽤于Ext3和Ext2⽂件系统,除了它们不⽀持的Ext4的特性外。

整个分析分两篇博⽂,分别概述布局和详细介绍各个布局的数据结构及组织寻址⽅式等。

感兴趣的看官敬请留意和指导!1. Ext4⽂件系统布局综述⼀个Ext4⽂件系统被分成⼀系列块组。

为减少磁盘碎⽚产⽣的性能瓶颈,块分配器尽量保持每个⽂件的数据块都在同⼀个块组中,从⽽减少寻道时间。

以4KB的数据块为例,⼀个块组可以包含32768个数据块,也就是128MB。

1.1 磁盘布局Ext4⽂件系统的标准磁盘布局如下:Ext4⽂件系统主要使⽤块组0中的超级块和块组描述符表,在其他⼀些特定块组中有超级块和块组描述符表的冗余备份。

如果块组中不含冗余备份,那么块组就以数据块位图开始。

当格式化磁盘成为Ext4⽂件系统的时候,mkfs将在块组描述符表后⾯分配预留GDT表数据块(“Reserve GDT blocks”)以⽤于将来扩展⽂件系统。

紧接在预留GDT表数据块后的是数据块位图与inode表位图,这两个位图分别表⽰本块组内的数据块与inode表的使⽤,inode表数据块之后就是存储⽂件的数据块了。

在这些各种各样的块中,超级块、GDT、块位图、Inode位图都是整个⽂件系统的元数据,当然inode表也是⽂件系统的元数据,但是inode表是与⽂件⼀⼀对应的,我更倾向于将inode当做⽂件的元数据,因为在实际格式化⽂件系统的时候,除了已经使⽤的⼗来个外,其他inode表中实际上是没有任何数据的,直到创建了相应的⽂件才会分配inode表,⽂件系统才会在inode表中写⼊与⽂件相关的inode信息。

1.2 Flexible 块组(flex_bg)Flexible 块组(flex_bg)是从Ext4开始引⼊的新特性。

在⼀个flex_bg中,⼏个块组在⼀起组成⼀个逻辑块组flex_bg。

请简述 linux 中的文件系统层次结构

请简述 linux 中的文件系统层次结构

请简述 linux 中的文件系统层次结构
Linux系统的文件系统层次结构是非常复杂的,通常可以分成如下几个层次:
1. 根目录:根目录是 Linux 文件系统中最顶层的根目录,它可以看做是 Linux 系统整个文件系统的根,其它所有的子目录都在它之下,一般用 '/' 表示。

2. 二级目录:包括 '/etc'、'/usr'、'/bin'、'/sbin'、'/lib' 等,这些目录又可以看做是四级目录的父目录,下面可以放置用户自定义的文件和文件夹。

3. 四级目录:这里可以放置用户自定义的应用程序,一般都是以某个子目录名开头,比如 '/usr/local','/usr/bin'、'/usr/sbin'等。

4. 程序文件:可以放置各种程序文件,包括可执行文件、库文件、配置文件等。

5. 日志文件:记录系统的运行日志,以及用户行为日志,用于排查故障。

6. 数据文件:用户可以将各种数据文件存放在用户指定的目录下。

总之,Linux系统的文件系统层次结构比较复杂,它们可以根据用户需求和功能进行多层次的划分,以满足用户的不同需求。

Linux文件系统结构分析

Linux文件系统结构分析
下 内容 : 文 件 所 有 者 标 识 号 : 拥 有 该 文 件 的 文 件 主 或 同组 的 标 识 符 。 指
区大小 。
E T2文 件 系 统 用 一 个 io e 据 结 构 描 述 系 统 中 的 每 一 个 文 件 , 义 系 统 的 拓 扑 结 构 。 一 个 io e X nd 数 定 n d 描 述 了一 个 文 件 中 的 数 据 占用 了 哪 些 块 以 及 文 件 的 访 问 权 限 、 件 的 修 改 时 间 和 文 件 的 类 型 。 E T2文 文 X 件 系 统 中 的 每 一 个 文 件 都 用 一 个 io e描 述 , 每 一 个 io e都 用 一 个 独 一 无 二 的 数 字 标 识 。 文 件 系 统 的 nd 而 nd

பைடு நூலகம்
潍 坊 学 院 学报
21 0 1年 4月
E T X 2块组 中组 描述符 中的项称为 组 描述 符 , 于描 述某 个 块 组 的整 体 信 息 。每 个块 组 都 有 一个 相 用
应 的组 描 述 符 来 描 述 它 , 有 的 组 描 述 符 形 成 一 个 组 描 述 符 表 , 在 使 用 时 被 调 入 块 高 速 缓 存 。 所 并
2 EXT2索 引 结 点
E T2文件 系统 中的 数 据 是 以数 据块 的 方 式 存储 在 文 件 中 的 。这 些 数 据 块 的 大 小 相 同 , 大 小 在 X 其 E T2 建 时设 定 。磁盘 上存 储 : 的 基本单 位 是簇 。一 个 簇也 称 为一 个 磁 盘块 , X 创 件 它通 常 是 2 n个 磁盘 扇
io e 放在 一起 , io e 引表 中。 nd 都 在 nd 索
* 收 稿 日 期 : o 0 1 2 2 1— 2 6

详解NTFS文件系统

详解NTFS文件系统

详解NTFS⽂件系统⼀、分析NTFS⽂件系统的结构当⽤户将硬盘的⼀个分区格式化为NTFS分区时,就建⽴了⼀个NTFS⽂件系统。

NTFS⽂件系统同FAT32⽂件系统⼀样,也是⽤“簇”为存储单位,⼀个⽂件总是占⽤⼀个或多个簇。

NTFS⽂件系统使⽤逻辑簇号(LCN)和虚拟簇号(VCN)对分区进⾏管理。

逻辑簇号:既对分区内的第⼀个簇到最后⼀个簇进⾏编号,NTFS使⽤逻辑簇号对簇进⾏定位。

虚拟簇号:既将⽂件所占⽤的簇从开头到尾进⾏编号的,虚拟簇号不要求在物理上是连续的。

NTFS⽂件系统⼀共由16个“元⽂件”构成,它们是在分区格式化时写⼊到硬盘的隐藏⽂件(以”$”开头),也是NTFS⽂件系统的系统信息。

NTFS的16个元⽂件介绍:⾸先找到该分区的起始扇区,具体可以参考这篇⽂章。

⼆、分析$Boot⽂件$Boot元⽂件由分区的第⼀个扇区(既DBR)和后⾯的15个扇区(既NTLDR区域)组成,其中DBR由“跳转指令”、“OEM代号”、“BPB”、“引导程序”和“结束标志”组成,这⾥和FAT32⽂件系统的DBR⼀样。

下图是⼀个NTFS⽂件系统完整的DBR。

下⾯我们分析⼀下DBR中的各参数EB 58 90:(跳转指令)本⾝占2字节它将程序执⾏流程跳转到引导程序处。

“EB 58 90″清楚地指明了OS引导代码的偏移位置。

jump 52H加上跳转指令所需的位移量,即开始于0×55。

4E 54 46 53 20 20 20 20:(OEM代号)这部分占8字节,其内容由创建该⽂件系统的OEM⼚商具体安排。

为“NTFS”。

BPB:NTFS⽂件系统的BPB从DBR的第12个字节开始,占⽤73字节,记录了有关该⽂件系统的重要信息,下表中的内容包含了“跳转指令”、“OEM代号”以及“BPB”的参数。

对照上⾯的BPB分析如下:02 00:每个扇区512个字节08:每个簇8个扇区00 00:保留扇区为000 00 00:为000:不使⽤F8:为硬盘00 00:为000 3F:每磁道63个扇区00 FF:每柱⾯255个磁头00 00 00 3F:隐藏扇区数(MBR到DBR)00 00 00 00:不使⽤80 00 80 00:不使⽤00 00 00 00 0C 80 33 FF:扇区总数20972851100 00 00 00 00 00 00 03:$MFT的开始簇号00 00 00 00 00 85 57 80:$MFTmirr的开始簇号00 00 00 F6:每个MFT记录的簇数00 00 00 01:每索引的簇数B8 11 2A 0C B8 11 2A 0C:分区的逻辑序列号引导程序:DBR的引导程序占⽤426字节,其负责完成将系统⽂件NTLDR装⼊,对于没有安装系统的分区是⽆效的。

文件系统:探讨文件系统的基本原理、结构和实现

文件系统:探讨文件系统的基本原理、结构和实现

文件系统:探讨文件系统的基本原理、结构和实现作为我们日常计算机使用的一部分,文件系统是一项非常重要的技术。

它提供了存储和管理文件的功能,是操作系统的核心组成部分。

在本文中,我们将深入探讨文件系统的基本原理、结构和实现方法。

导言在我们使用计算机时,我们经常会处理各种类型的文件,如文档、图片、音频和视频。

这些文件在计算机中存储和组织的方式由文件系统决定。

文件系统是一种管理存储介质上数据的方法,它为我们提供了对文件的读取、写入和管理功能。

文件系统的基本原理文件系统的基本原理是将存储介质划分为固定大小的块,并管理这些块的分配和使用。

它将文件存储为连续的块或散布在存储介质的不同位置。

文件系统还包括对文件的命名、目录结构、权限管理和文件元数据的管理。

存储块和磁盘的使用文件系统使用存储块作为最小单位来管理数据的存储和访问。

存储介质(如硬盘)被划分成固定大小的存储块,通常为4KB或8KB。

文件数据存储在这些块中,并按照一定的方式分配和组织。

连续分配和链接分配文件系统可以使用连续分配或链接分配来组织文件的存储空间。

在连续分配中,文件被存储在存储介质上连续的块中。

这样可以提高文件的读取和写入性能,但会导致碎片问题。

在链接分配中,文件的数据块可以散布在存储介质的不同位置,通过文件的元数据进行链接。

这样可以更有效地利用存储空间,但会导致访问性能下降。

文件的命名和目录结构文件系统使用文件名来唯一标识文件。

文件名通常由字母、数字和一些特殊字符组成。

目录结构则用于组织和管理文件。

目录是一个包含其他文件和目录的特殊文件,通过目录的嵌套结构可以形成层次化的文件组织。

这样我们就可以通过路径来访问文件,例如/usr/share/doc/example.txt。

权限管理和文件元数据文件系统通过权限管理来控制对文件的访问权限。

权限可以被分为所有者权限、组权限和其他用户权限。

文件还包含一些元数据,如文件大小、创建时间、修改时间和访问时间。

文件系统数据结构

文件系统数据结构

文件系统数据结构文件系统是计算机操作系统中用于管理计算机文件的一种机制,它使用特定的数据结构来组织和存储文件及其相关信息。

文件系统的设计和实现涉及到多种数据结构,包括目录结构、索引结构和文件分配表等。

在本文中,我们将详细介绍文件系统中常用的数据结构及其功能。

一、目录结构目录结构是文件系统中组织文件和文件夹的一种方式。

它使用树状结构来表示文件和文件夹之间的层次关系,使得用户可以方便地浏览和管理文件。

在目录结构中,每个文件夹表示为一个目录项,该目录项包含了文件夹的名称、创建时间、访问权限等信息。

而文件夹中的文件则以文件项的形式存在,文件项包含了文件的名称、大小、创建时间等属性。

目录结构的实现可以使用树结构或者图结构。

其中,树结构是最常见的一种实现方式。

在树结构中,每个目录项都可以作为树的一个节点,根节点代表根目录,每个子节点代表一个子目录或者文件。

通过遍历树的节点,用户可以逐层查找和访问文件。

二、索引结构索引结构是一种基于关键字的数据结构,用于快速定位文件的相关信息。

在文件系统中,文件的内容通常分散存储在磁盘上的不同位置,为了提高文件的访问速度,可以使用索引结构建立文件与存储位置的映射关系。

常见的索引结构包括位图索引、哈希索引和B树索引等。

位图索引用一个位图来表示文件的存储位置,每个位对应一个存储块,通过位图可以迅速定位到文件所在的位置。

哈希索引使用哈希函数将文件的关键字映射到存储位置,从而实现快速定位。

而B树索引是一种多路搜索树,用于支持范围查询和高效的插入和删除操作。

索引结构的选择依赖于文件系统的需求和性能要求。

不同的索引结构具有不同的特点和适用范围,需要根据具体情况进行选择和优化。

三、文件分配表文件分配表是文件系统中用于管理文件存储空间的一种数据结构。

它记录了文件在磁盘上分配的存储块,以及存储块之间的关系。

文件的存储块可以是连续的,也可以是离散的。

文件分配表采用表格的形式来表示文件在磁盘上的分布情况。

FAT16文件系统结构分析

FAT16文件系统结构分析

今天来介绍FAT16的文件系统,用WINHEX打开硬盘。

第一个分区为FAT16、FAT16系统由5部分组成,跳转指令、OEM厂商、BPB参数、引导程序及结束标志。

跳转指令占用3字节,开始为0H~02H,为绿色部分。

OEM厂商占用8字节,开始为03H~0AH。

为红色部分。

BPB (BIOS Parameter Block) BIOS参数块,开始为0BH~3DH,共占用51字节。

为蓝色部分、引导程序开始为3EH~1FDH,共占用448字节。

为灰色部分、结束标志为最后两个字节,55AA。

这里两个字节和MBR结构中是一样的、1.跳转指令实际暂用2字节,图片中EB 3C 代表汇报语言的JMP 3C。

紧接着是跳转指令后面的是一条空指令NOP 902.OEM厂商这里分别占用8字节,4D 53 44 4F 53 35 2E 30,这里是由格式化程式在分区时所创建的。

或者说格式化时创建的,图片中MSDOS5.0。

说明该分区是由微软Windows 2000以上的系统格式化所创建的,我使用的是第三方格式化软“pqmagic”并非Windows 系统。

这里可以随意更改OEM厂商代号,并不会有太大的影响。

3.BPB (BIOS Parameter Block) BISO参数块,记录了有关当前的系统文件信息。

以下是WINHEX所提供的模块,其含义为以下图片中所描述。

4.引导程序引导程序如果被破坏后,系统将不能引导。

使用FDISK /MBR后,将重新写入引导程序。

5.结束标志之前分析过MBR的解构,结束标志也为55AA。

如果改写或者出现其他字节,那么磁盘将不能正常引导。

移动性质的硬盘将会在系统内显示未指派或没有初始化。

对数据恢复有兴趣的朋友可以一起讨论,Q 498948689。

FAT32文件系统结构

FAT32文件系统结构

浅析FAT32文件系统结构【摘要】fat32文件系统是windows系列操作系统中最常用的文件系统之一。

为了彻底了解fat32文件系统,本文将对fat32文件系统的存储结构进行分析,让大家对fat32的存储原理及数据恢复有所了解。

【关键词】存储结构;mbr;dbr;fat;fdt数据恢复技术是指将硬盘上由于病毒、误删除、以及其它各种原因导致数据丢失的数据还原的技术,恢复它本来的“面目”。

这需要对存储结构有一定了解才能操作。

1、 fat32存储结构硬盘在fat32文件系统管理下,其数据信息由磁盘主引导记录mbr、dos引导记录dbr、文件分配表fat、文件目录表fdt及用户数据区五部分组成。

磁盘的排列如图所示:其中,mbr占用63个扇区(实际只使用一个扇区),dbr占用了32个扇区(实际只使用第1扇区和第6扇区,第6扇区是第1扇区的备份),fat的长度是可以改变的,其随着分区大小,每簇扇区数的变化而变化,dir属于data区的一部分,采用和子目录一样的方式来管理。

1.1 mbr(masterbootrecord)mbr即硬盘主引导记录,位于整个硬盘的0柱面0磁头1扇区,一共占用63个扇区,实际它只使用一个扇区。

其主要作用是:检查硬盘分区表是否完好;在分区表中寻找可引导的活动分区;并将活动分区的第一逻辑扇区(dbr)装入内存中加以运行,mbr由主引导程序、硬盘分区表dpt、有效结束标志(55aa)三部分组成。

(1)引导程序:引导程序占用第一扇区446个字节。

它的功能是检查分区表是否正确以及确定引导分区,并将引导分区上的操作系统引导扇区调入内存中执行,即执行ntldr(操作系统加载器)文件。

(2)分区表:分区表dpt(diskpartitiontable)共占用第一扇区64个字节,在mbr中,从地址be开始到fd结束的64个字节就是分区表。

分为4个分区表项,每个分区表项占用16字节。

一个硬盘最多只能分成四个主分区,其中扩展分区也是一个主分区。

FAT文件系统结构分析

FAT文件系统结构分析

17、文件恢复注意事项
• 如果某文件被删除,而该分区又被写入了新文件,则误删文 件的目录项和簇位置可能被覆盖,导致文件无法被恢复。因 此在文件被误删除后是禁止往该分区写入任何信息的。 • 恢复文件时,为了避免恢复错误带来的影响,应当将恢复的 数据写入到其他盘的新文件中,即尽量不对原数据造成影响。 • 有的情况下数据是不可能恢复的,如数据被覆盖、低级格式 化、磁盘该位置物理损坏等。
2、簇
• 在FAT文件系统中,存储文件的基本单位是簇。一个簇由 1~128个扇区组成,但必须是2的n次方倍。 • 软盘的一个簇由一个扇区组成,硬盘分区的簇通常由8个扇 区组成,计4KB。 • 在一个分区中的簇大小是固定的,其大小在引导扇区的BPB (BIOS参数块)中给出。
3、簇大小
• 操作系统以簇为单位给文件分配空间,通常每个文件会浪费 掉0.5簇空间。 • 如果把簇空间设置的大些,则会造成浪费空间较多,如果簇 空间过小,则会造成FAT表增大,使得链表加长,同样会浪 费空间,而且使访问速度降低。 • 簇大小一般由格式化程序自动指定,在32位系统中一般为 4KB~16KB。
FAT32的BPB参数描述-1
偏移 0H 3H 0BH 0DH 0EH 10H 11H 长度 3B 8B 2B 1B 2B 1B 2B 跳转指令,跳至后面引导记录开始处(FAT32从5AH处开始) 文件系统和版本的OEM标志(MSDOS 5.0或MSWIN4.1) 每扇区字节数(通常为200H) 每簇扇区数(值为2的N次方,通常小于64) 保留扇区数(本分区中FAT表之前的扇区总数,通常FAT16为1,FAT32为20H或24H) FAT表个数(通常为2) FAT16系统为根目录最大项,FAT32系统为0 描 述
FAT系统簇号标记说明

简述linux的文件系统结构

简述linux的文件系统结构

简述linux的文件系统结构
Linux的文件系统结构是一个层次结构,从根目录(/)开始,每个目录都可以包含文件和子目录。

下面是主要目录的简要说明:
·/bin - 包含系统中最基本的命令(例如cp、ls、mv、rm等)。

·/boot - 包含用于启动系统的文件,如内核、引导装载程序等。

·/dev - 包含设备文件,如磁盘、键盘、鼠标等硬件设备。

·/etc - 包含系统的配置文件。

·/home - 包含所有用户的主目录。

·/lib - 包含与系统运行有关的库文件,如动态链接库。

·/media - 包含可插入媒体(如CD-ROM、DVD、USB驱动器等)的挂载点。

·/mnt - 包含临时挂载的文件系统。

·/opt - 用于安装附加软件包。

·/proc - 动态映射到正在运行的进程,系统信息等。

·/root - 管理员的主目录。

·/sbin - 包含系统管理员使用的系统命令和实用程序。

·/tmp - 用于存储临时文件。

·/usr - 包含用户安装的应用程序和文件。

·/var - 用于存储程序数据和日志文件。

NTFS文件系统结构分析

NTFS文件系统结构分析

NTFS文件系统结构分析在NTFS文件系统中,文件存取是按簇进行分配,一个簇必需是物理扇区的整数倍,而且总是2的整数次方。

NTFS文件系统并不去关心什么是扇区,也不会去关心扇区到底有多大(如是不是512字节),而簇大小在使用格式化程序时则会由格式化程序根据卷大小自动的进行分配。

文件通过主文件表(MFT)来确定其在磁盘上的存储位置。

主文件表是一个对应的数据库,由一系列的文件记录组成--卷中每一个文件都有一个文件记录(对于大型文件还可能有多个记录与之相对应)。

主文件表本身也有它自己的文件记录。

NTFS卷上的每个文件都有一个64位(bit)称为文件引用号(File Reference Number,也称文件索引号)的唯一标识。

文件引用号由两部分组成:一是文件号,二是文件顺序号。

文件号为48位,对应于该文件在MFT中的位置。

文件顺序号随着每次文件记录的重用而增加,这是为NTFS进行内部一致性检查而设计的。

NTFS使用逻辑簇号(Logical Cluster Number,LCN)和虚拟簇号(Virtual Cluster Number,VCN)来进行簇的定位。

LCN是对整个卷中所有的簇从头到尾所进行的简单编号。

卷因子乘以LCN,NTFS就能够得到卷上的物理字节偏移量,从而得到物理磁盘地址。

VCN则是对属于特定文件的簇从头到尾进行编号,以便于引用文件中的数据。

VCN可以映射成LCN,而不必要求在物理上连续。

NTFS的目录只是一个简单的文件名和文件引用号的索引,如果目录的属性列表小于一个记录的长度,那么该目录的所有信息都存储在主文件表的记录中,对于大于记录的目录则使用B+树进行管理。

主文件表中的基本文件记录中有一个指针指向一个存储非常驻索引缓冲--包括该目录下所有下一级子目录和文件的外部簇,而B+树结构便于大型目录中文件和子目录的快速查找。

主文件表中的基本文件记录中有一个指针指向一个存储非常驻索引缓冲--包括该目录下所有下一级子目录和文件的外部簇,而B+树结构便于大型目录中文件和子目录的快速查找。

Android的文件系统结构

Android的文件系统结构

Android的⽂件系统结构1、Android⽂件系统的结构官⽅android源码编译后得到的⽂件如下:其中有system.img,ramdisk.img,userdata.img三个映像⽂件。

其中,ramdisk.img是⽂件系统,system.img包括了主要的包、库等⽂件,userdata.img包括了⼀些⽤户数据,当emulator加载这3个映像⽂件后,会把system.img和userdata.img分别加载到ramdisk⽂件系统中的system和userdata⽬录下。

2、分离组建Android⽂件系统system.img,ramdisk.img,userdata.img映像⽂件是采⽤cpio打包、gzip压缩的,可以通过file命令验证:filer amdisk.img,输出:[plain]1. ramdisk.img:gzip compressed data, from Unix, last modified:其中ramdisk.img是⼀个分区映像⽂件,即是⼀个⽂件系统(root file system),,kernel启动时,ramdisk负责init,system.img包括了主要系统,系统app等,挂载于⽂件系统下的system⽂件夹, userdata.img包括了⼀些⽤户数据,被挂载到⽂件系统下的data⽂件夹下。

另外Android源码编译后还有root、system、data三个⽂件夹,其实就是上述三个img解压之后的内容⽽已,root⽂件夹⾥⾯的内容就是ramdisk.img解压后的内容,即是⼀个⽂件系统,包括system、data、bin、dev等⽬录。

⽽system与data则对应着system.img与userdata.img 的解压后的内容。

验证⼀下就⾏了,将ramdisk.img复制⼀份到任何其他⽬录下,将其名称改为ramdisk.img.gz,并使⽤命令[java]1. gunzip ramdisk.img.gz然后新建⼀个名为ramdisk的⽂件夹,转到ramdisk⽬录,输⼊命令[html]1. <pre name="code" class="java">cpio-i -F ../ramdisk.img这下,就能看见ramdisk⾥⾯的内容与root⽂件夹⼀样的了。

linux文件系统的组织结构

linux文件系统的组织结构

linux文件系统的组织结构Linux文件系统的组织结构采用树型结构,类似于Windows文件系统。

其主要的目录如下:1. 根目录(/): Linux文件系统的根目录,所有目录都是从根目录开始的。

2. bin目录(/bin): 存放系统的核心程序,包括各种系统命令和工具。

3. boot目录(/boot): 存放系统启动需要的文件,包括引导程序和内核。

4. dev目录(/dev): 存放设备文件,在Linux中一切设备都是文件,包括硬件设备、外部设备等。

5. etc目录(/etc): 存放系统的配置文件,包括密码文件、主机名等。

6. home目录(/home): 存放所有用户的home目录,包括个人设置、数据等。

7. lib目录(/lib): 存放系统的共享库文件,包括各种动态链接库。

8. media目录(/media): 用于挂载外部设备的目录,如U盘、CD/DVD等。

9. mnt目录(/mnt): 用于挂载文件系统的目录。

10. opt目录(/opt): 存放可选软件的安装目录。

11. proc目录(/proc): 存放系统内核信息和运行信息,如进程和内存使用情况。

12. root目录(/root): 默认的root用户的home目录。

13. sbin目录(/sbin): 存放系统管理员使用的系统命令。

14. srv目录(/srv): 存放服务器的数据文件。

15. sys目录(/sys): 存放设备驱动相关的信息。

16. tmp目录(/tmp): 存放各种临时文件,如进程间通信使用的文件、临时下载文件等。

17. usr目录(/usr): 存放系统软件和用户共享的文件。

18. var目录(/var): 存放系统的可变文件,如日志文件、邮件等。

以上是Linux文件系统的主要目录,其中一些目录又包含了更多子目录。

了解Linux文件系统的组织结构有助于用户更好地管理文件和文件夹。

文件系统结构分析

文件系统结构分析

文件系统结构分析1 嵌入式文件系统1.1嵌入式文件系统体系结构在嵌入式系统中,文件系统是嵌入式系统的一个组成模块,它是作为系统的一个可加载选项提供给用户,由用户决定是否需要加载它。

同时,它还需要满足结构紧凑、代码量小、支持多种存储设备、可伸缩、可剪裁、可移植等特点。

基于上面的要求,嵌入式文件系统在设计和实现时就要把它作为一个独立的模块来整体考虑。

特别是对文件系统内部资源的管理要做到独立性。

由于嵌入式文件系统是作为嵌入式系统的一个可选加载项提供给用户的,当用户针对其应用的特殊要求对嵌入式系统进行配置时没有选择加载文件系统,但是用户还是需要使用到系统I/O。

由于这种情况的出现就决定了嵌入式系统中的文件系统不再具有I/O设备的管理功能。

系统I/O的管理和使用接口的提供将由I/O管理模块完成,文件系统作为一个独立的自包含模块存在。

基于以上考虑,嵌入式文件系统的体系结构如图1所示。

图1 嵌入式文件系统体系结构在嵌入式文件系统的最上层是文件系统API。

文件系统的一切功能都是通过这一层提供给用户的。

同时,在整个文件系统中也只有这一层对用户是可见的。

在这一层中所提供的所有功能接口都将严格的遵循POSIX标准。

文件系统核心层是实现文件系统主要功能的模块。

在这一层中,文件系统要把用户的功能操作转化成对文件系统的抽象对象的操作。

这些操作将通过下面的功能模块最终落实到物理介质上面。

如果文件系统需要支持多种具体的文件系统格式的话,这一层还可以进一步细分成虚拟文件系统和逻辑文件系统。

块高速缓存的存在是为了提高文件系统的性能。

在这一层中缓存着以前访问过的块设备数据。

文件系统通过一定的算法来高效的管理这些数据,以提高缓冲的性能。

同时,它的存在使下层的数据操作对上层的文件操作透明,提高了文件系统的模块性。

1.2嵌入式文件系统体系的功能与特点文件系统是操作系统的重要组成部分,用于控制对存储设备的存取。

它提供对文件和目录的分层组织形式、数据缓冲(对于实时系统,允许绕过缓冲)以及对文件存取权限的控制。

简述分布式文件系统的物理结构组成

简述分布式文件系统的物理结构组成

简述分布式文件系统的物理结构组成分布式文件系统是一种将文件存储在多个计算机节点上的文件系统,它的物理结构由多个组成部分组成。

这些组成部分共同协作,提供分布式存储、访问和管理文件的功能。

下面将逐一介绍分布式文件系统的物理结构组成。

1. 文件系统客户端文件系统客户端是用户与分布式文件系统交互的接口。

它提供了文件系统的访问、读写、复制、删除等操作,使得用户可以方便地访问和管理分布式文件系统中的文件。

客户端通过网络连接到文件系统服务器,并向服务器发送请求,服务器响应后返回结果。

通常,客户端会将请求和响应的数据进行缓存,以减少网络传输的开销。

2. 文件系统服务器文件系统服务器是分布式文件系统中最核心的组成部分,它负责存储和管理文件。

服务器通常由多个节点组成,每个节点都有自己的存储设备和处理器。

文件系统服务器之间通过网络连接,形成一个分布式存储系统。

服务器通过数据复制和冗余备份等机制,保证文件在分布式系统中的可靠性和可用性。

文件系统服务器还负责处理客户端发送的请求,并返回响应结果。

3. 存储设备存储设备是分布式文件系统的物理存储介质,它包括硬盘、SSD、网络存储设备等。

存储设备通过网络连接到文件系统服务器,并提供存储服务。

分布式文件系统通常采用多副本存储策略,即将同一份文件存储在不同的存储设备上,以提高文件的可用性和可靠性。

因此,存储设备在分布式文件系统中起着至关重要的作用。

4. 数据复制机制数据复制机制是分布式文件系统保证数据可用性和可靠性的重要机制。

数据复制机制将同一份文件复制到多个存储设备上,以提高文件的可用性和可靠性。

当某个存储设备失效时,系统可以自动从其他存储设备中获取数据。

数据复制机制还可以提高系统的读写性能,因为它可以将读请求分散到多个存储设备上,从而提高并发度。

5. 元数据管理元数据是描述文件和目录的数据,包括文件名、大小、创建时间、修改时间、权限等信息。

元数据管理是分布式文件系统的重要组成部分,它负责管理元数据的存储和访问。

分布式文件系统体系结构

分布式文件系统体系结构

分布式文件系统体系结构一、前言随着互联网的发展,数据量的不断增加,传统的文件系统已经无法满足大规模数据存储和管理的需求。

因此,分布式文件系统应运而生。

分布式文件系统是指将数据分散存储在多个物理节点上,通过网络连接实现数据共享和管理的一种文件系统。

本文将详细介绍分布式文件系统体系结构,包括其概念、特点、组成部分以及工作原理等方面。

二、概念分布式文件系统是指将一个逻辑上统一的文件系统分散存储在多个物理节点上,并通过网络连接实现数据共享和管理的一种文件系统。

它可以提供高可用性、高扩展性、高性能和容错能力等优点。

三、特点1. 可扩展性:由于数据可以被拆分到多个节点上进行存储,因此可以轻松地扩展存储容量。

2. 高可用性:由于数据被复制到多个节点上进行存储,即使某个节点出现故障也不会影响整个系统的正常运行。

3. 高性能:由于数据可以并行读写,在大规模并发访问时具有较好的性能表现。

4. 容错能力:由于数据被复制到多个节点上进行存储,即使某个节点出现故障也不会导致数据丢失。

四、组成部分1. 元数据服务器:用于存储文件系统的元数据,包括文件名、文件大小、访问权限等信息。

2. 数据节点:用于存储实际的文件数据。

3. 客户端:用于向分布式文件系统发出读写请求,与元数据服务器和数据节点进行通信。

五、工作原理1. 文件上传:客户端向元数据服务器发送上传请求,元数据服务器记录文件信息并返回一个唯一标识符。

客户端将文件分割为多个块,并将每个块上传到不同的数据节点上。

每个块都会被复制到多个节点上以提高容错能力。

2. 文件下载:客户端向元数据服务器发送下载请求,并提供唯一标识符。

元数据服务器返回相应的块信息和所在的节点地址。

客户端从对应的节点上下载所需块,并将它们组合成完整的文件。

3. 文件删除:客户端向元数据服务器发送删除请求,并提供唯一标识符。

元数据服务器删除相应的块信息并通知相应的节点删除对应的块。

六、总结分布式文件系统是一种可以提供高可用性、高扩展性、高性能和容错能力等优点的文件系统,由元数据服务器、数据节点和客户端组成。

FAT文件系统分析

FAT文件系统分析

FAT文件系统的数据结构中有两个重要的结构:文件分配表和目录项:文件和文件夹内容储存在簇中,如果一个文件或文件夹需要多余1个簇的空间,则用FAT表来秒速如何找到另外的簇。

FAT结构用于指出文件的下一个簇,同时也说明了簇的分配状态。

FAT12、FAT16、FAT32这三种文件系统的主要区别在于FAT项的大小不同。

FAT文件系统的每一个文件和文件夹都被分配到一个目录项,目录项中记录着文件名、大小、文件内容起始地址以及其他一些元数据。

在FAT文件系统中,文件系统的数据记录在“引导扇区DBR”中。

引导扇区位于整个文件系统的0扇区,是文件系统隐藏区域的一部分,我们称其为DBR(DOS Boot Recorder ——DOS引导记录)扇区,DBR中记录着文件系统的起始位置、大小、FAT表个数及大小等相关信息。

在FAT文件系统中,同时使用“扇区地址”和“簇地址”两种地址管理方式。

这是因为只有存储用户数据的数据区使用簇进行管理(FAT12和FAT16的根目录除外),所有簇都位于数据区。

其他文件系统管理数据区域是不以簇进行管理的,这部分区域使用扇区地址进行管理。

文件系统的起始扇区为0号扇区。

FAT32的保留区FAT32文件系统的开始部分有一个由若干扇区组成的保留区,保留区的信息会记录在DBR扇区中,比较常见的为32、34或38个扇区。

引导扇区:引导扇区是FAT32文件系统的第一个扇区,也称DBR扇区。

包含以下基本信息:·每扇区字节数·每簇扇区数·保留扇区数·FAT表个数·文件系统大小(扇区数)·每个FAT表大小(扇区数)·根目录起始簇号·其他附加信息说明:我们可以通过每个FAT表的大小扇区数乘以FAT的个数得到FAT区域的大小;通过保留扇区数和FAT区域的大小就可以得知数据区的起始位置,也即文件系统第一簇的位置。

由根目录的簇号和第一簇的位置就可以得到根目录的位置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文件系统结构分析1嵌入式文件系统1.1嵌入式文件系统体系结构在嵌入式系统中,文件系统是嵌入式系统的一个组成模块,它是作为系统的一个可加载选项提供给用户,由用户决定是否需要加载它。

同时,它还需要满足结构紧凑、代码量小、支持多种存储设备、可伸缩、可剪裁、可移植等特点。

基于上面的要求,嵌入式文件系统在设计和实现时就要把它作为一个独立的模块来整体考虑。

特别是对文件系统内部资源的管理要做到独立性。

由于嵌入式文件系统是作为嵌入式系统的一个可选加载项提供给用户的,当用户针对其应用的特殊要求对嵌入式系统进行配置时没有选择加载文件系统,但是用户还是需要使用到系统I/O。

由于这种情况的出现就决定了嵌入式系统中的文件系统不再具有I/O设备的管理功能。

系统I/O的管理和使用接口的提供将由 I/O管理模块完成,文件系统作为一个独立的自包含模块存在。

基于以上考虑,嵌入式文件系统的体系结构如图1所示。

1卩硬件图1嵌入式文件系统体系结构在嵌入式文件系统的最上层是文件系统 API。

文件系统的一切功能都是通过这一层提供给用户的。

同时,在整个文件系统中也只有这一层对用户是可见的。

在这一层中所提供的所有功能接口都将严格的遵循 POSIX标准。

文件系统核心层是实现文件系统主要功能的模块。

在这一层中,文件系统要把用户的功能操作转化成对文件系统的抽象对象的操作。

这些操作将通过下面的功能模块最终落实到物理介质上面。

如果文件系统需要支持多种具体的文件系统格式的话,这一层还可以进一步细分成虚拟文件系统和逻辑文件系统。

块高速缓存的存在是为了提高文件系统的性能。

在这一层中缓存着以前访问过的块设备数据。

文件系统通过一定的算法来高效的管理这些数据,以提高缓冲的性能。

同时,它的存在使下层的数据操作对上层的文件操作透明,提高了文件系统的模块性。

1.2 嵌入式文件系统体系的功能与特点文件系统是操作系统的重要组成部分,用于控制对存储设备的存取。

它提供对文件和目录的分层组织形式、数据缓冲(对于实时系统,允许绕过缓冲)以及对文件存取权限的控制。

嵌入式系统所使用的文件系统除了要提供通用文件系统的功能外,还由于嵌入式操作系统的特殊性而具有其自身的一些特点。

嵌入式文件系统的设计应该满足如下目标:1.实现按名存取。

和桌面操作系统类似,用户对文件的操作是通过其“文件名”来完成的。

因此,用户只需知道待操作文件的文件名,就可以方便的访问数据,而不必关心文件在物理设备上是如何存放的,以及如何对文件的打开、关闭操作进行处理等细节。

所有与文件相关的管理工作都由文件系统组件隐式完成。

2.与实时系统相适应。

嵌入式应用大多数都具有实时性需求。

实时系统不仅要求计算结果地准确无误,而且要求特定的指令要在限定的时间内完成,这就对文件系统提出了很高的要求。

在通用操作系统中,往往采取分页和虚拟存储器管理的机制来满足规定的指令时间。

然而嵌入式实时操作系统一般都不具有虚拟存储器管理机制,且各种外部设备的性能差异较大,控制文件系统的实时性变得非常困难。

为了尽可能提高文件系统的实时性,除了选取高速存储介质作为嵌入式系统的外设外,还应该根据设备的特点设置一定大小的高速缓冲,以提高数据存取的相应速度。

3.支持多任务环境。

面对日益复杂的计算环境,应用常常采取“分而治之” 的方法,将解决方案划分为多个任务,每个任务完成相对单一的功能。

实时操作系统的设计目标之一就是对多任务的支持。

从应用的层面上看,多任务可以对文件进行并发读操作,在实时内核进程间同步与通信机制支持下进行写操作。

此外,文件系统内部实现也应该具备较好的可重入性,即利用同步机制对全局数据结构进行必要的保护。

4.支持多种逻辑文件系统标准。

随着操作系统技术的发展,出现了多种成熟的桌面文件系统标准,如 Windows下的FAT系列,Linux中的ext系列等。

将这些成熟标准引入嵌入式领域的同时,如何在各种不同标准的存储介质中互通数据,也是文件系统设计的考虑因素。

应用程序应该使用同一套系统调用操作文件,而无需考虑面对的文件系统标准和存储介质。

因此,文件系统的设计时应该引入文件操作抽象层,通过虚拟接口访问文件系统,才能使得这种协作性和通用性成为可能。

5.接口标准的开放性和可移植性。

文件系统对外提供的系统调用是应用与系统的交互接口。

为了增加接口的开放性和可移植性,嵌入式文件系统的系统调用必须符合一定的标准和规范。

可移植操作系统接口( Portable Operat ing System In terface , POSIX 是一种由IEEE指定的信息标准,它为程序员提供了一种严格定义的固定框架,以获得源码级的软件可移植性;换言之,为一个POSIX标准兼容的操作系统编写的程序,可以很容易的移植到其它 POSIX标准的操作系统上编译执行。

2 FatFs文件系统体系结构ApplicationFatFs moduleDisk I/O module RTC图2 FatFs文件系文件结统的一切功能都是通过这一层提供给用户的。

同时,在整个FatFs文件系统中也只有这一层对用户是可见的。

在这一层中所提供的所有功能接口都将遵循 POSIX标准。

文件系统核心层是实现文件系统主要功能的模块。

在这一层中,文件系统要把用户的功能操作转化成对物理介质的抽象对象的操作。

这些操作将通过下面的功能模块最终落实到物理介质上面。

如果文件系统需要支持多种具体的文件系统 格式的话,这一层还可以进一步细分成虚拟文件系统和逻辑文件系统。

DISK I/O 模块的存在是为了提高文件系统的性能,通过缓存提高数据读写 速度,文件系统通过一定的管理算法来高效的管理这些数据,以提高缓冲的性能。

而RTC 提供了整个系统时间的标尺,是实时操作系统的必要组成部分。

3 FatFs 文件系统标准3.1 FatFs 文件系统组成FatFs 源自Microsoft 所推出的WinCe 文件系统,因其具有Fat 文件系统的 高度兼容性,能广泛应用于嵌入式系统尤其是移动性要求高的设备中。

本课题 FatFs 选择FAT16系统,故拥有相同的FAT16吉构FAT16是Microsoft 较早推出的文件系统,具有高度兼容性,目前仍然广泛应 用于个人电脑尤其是移动存储设备中,FAT16简单来讲由图3所示的6部分组成 (主要是前5部分)。

图3 FatFs 的组成引导扇区DBR 区(DOS BOOT RECORD 操作系统引导记录区的意思,也称为 启动扇区。

它记录了存储卡的所有重要信息,一共512个字节,其结构如表1 所示:跳转指令JUMP区 区大小 簇 保留扇区表1引导扇片区结构引导扇区各个字段的定义和说明如表 2:FAT16在DBF之后没有留有任何保留扇区,其后紧随的便是FAT表。

FAT表是FAT16用来记录磁盘数据区簇链结构的。

FAT表实际上是一个数据表,以2个字节为单位,我们暂将这个单位称为FAT 记录项,通常情况其第1、2个记录项(前4个字节)用作介质描述。

从第三个记录项开始记录除根目录外的其他文件及文件夹的簇链情况。

根据簇的表现情况 FAT用相应的取值来描述,如表 3:表表FAT表记录了磁盘数据文件的存储链表,对于数据的读取而言是极其重要的,以至于Microsoft为其开发的FAT文件系统中的FAT表创建了一份备份,就是我们看到的FAT2 FAT2与FAT1的内容通常是即时同步的,也就是说如果通过正常的系统读写对FAT1做了更改,那么FAT2也同样被更新。

如果从这个角度来看,系统的这个功能在数据恢复时是个天灾。

FAT将磁盘空间按一定数目的扇区为单位进行划分,这样的单位称为簇。

通常情况下,每扇区512字节的原则是不变的。

簇的大小一般是2n (n为整数)个扇区的大小,像 512B,1K,2K,4K,8K,16K,32K,64K。

实际中通常不超过 32K。

分区的大小和簇的取值是有关系的,如表 4:表4分区大小和簇取值关系FAT16 DBR参数的偏移0x11处记录了根目录所占扇区的数目。

偏移 0x16记录了FAT表所占扇区的数据。

偏移0x10记录了 FAT表的副本数目。

系统在得到这几项参数以后,就可以确定数据区的开始扇区偏移了。

FAT16文件系统从根目录所占的32个扇区之后的第一个扇区开始以簇为单位进行数据的处理,这之前仍以扇区为单位。

对于根目录之后的第一个簇,系统并不编号为第0簇或第1簇(可能是留作关键字的原因吧),而是编号为第2簇, 也就是说数据区顺序上的第1个簇也是编号上的第2簇。

3.2 FAT的目录结构FAT文件系统的目录结构其实是一颗有向的从根到叶的树,这里提到的有向是指对于FAT分区内的任一文件(包括文件夹),均需从根目录寻址来找到。

可以这样认为:目录存储结构的入口就是根目录。

FAT文件系统根据根目录来寻址其他文件(包括文件夹),故而根目录的位置必须在磁盘存取数据之前得以确定。

FAT文件系统就是根据分区的相关 DBR参数与DBR中存放的已经计算好的FAT表(2份)的大小来确定的。

格式化以后,跟目录的大小和位置其实都已经确定下来了:位置紧随FAT2之后,大小通常为32个扇区。

根目录之后便是数据区第 2簇。

FAT 文件系统的一个重要思想是把目录(文件夹)当作一个特殊的文件来处理,FAT32甚至将根目录当作文件处理,在 FAT16中,虽然根目录地位并不等同于普通的文件或者说是目录,但其组织形式和普通的目录(文件夹)并没有不同。

FAT分区中所有的文件夹(目录)文件,实际上可以看作是一个存放其他文件(文件夹)入口参数的数据表。

所以目录的占用空间的大小并不等同于其下所有数据的大小,但也不等同于0。

通常是占很小的空间的,可以看作目录文件是一个简单的二维表文件。

其具体存储原理是:不管目录文件所占空间为多少簇,一簇为多少字节。

系统都会以32个字节为单位进行目录文件所占簇的分配。

这 32个字节以确定的偏移来定义本目录下的一个文件(或文件夹)的属性,实际上是一个简单的二维表。

这32个字节的各字节偏移定义如表 5:表目录项个字节的含义对上表中的一些取值进行说明:(1)、对于短文件名,系统将文件名分成两部分进行存储,即主文件名+扩展名。

0x0~0x7字节记录文件的主文件名,0x8~0xA记录文件的扩展名,取文件名中的ASCII码值。

不记录主文件名与扩展名之间的"." 主文件名不足8个字符以空白符(20H)填充,扩展名不足3个字符同样以空白符(20H)填充。

0x0偏移处的取值若为00H,表明目录项为空;若为 E5H表明目录项曾被使用,但对应的文件或文件夹已被删除。

(这也是误删除后恢复的理论依据)。

文件名中的第一个字符若为“ . ”或“.. ”表示这个簇记录的是一个子目录的目录项。

“. ”代表当前目录;“.. 代表上级目录(和我们在dos或windows中的使用意思是一样的,如果磁盘数据被破坏,就可以通过这两个目录项的具体参数推算磁盘的数据区的起始位置,猜测簇的大小等等,故而是比较重要的 )(2)、OxB的属性字段:可以看作系统将 OxB的一个字节分成8位,用其中的一位代表某种属性的有或无。

相关文档
最新文档