文件管理系统是什么,第1张

文件系统是操作系统用来指定存储设备(磁盘、NAND闪存固态磁盘)或分区上的文件的方法和数据结构;即一种在存储设备上组织文件的方法。在操作系统中负责管理和存储文件信息的软件组织称为文件管理系统

文件系统是操作系统用来指定存储设备(通用磁盘和基于NAND闪存的固态磁盘)或分区上的文件的方法和数据结构;即一种在存储设备上组织文件的方法。在操作系统中负责管理和存储文件信息的软件组织称为文件管理系统。文件系统由三部分组成:文件系统的接口、用于操作和管理对象、对象和属性的软件集。从系统的角度来看,文件系统是组织和分发空个文件存储设备,负责文件存储,保护和检索存储的文件的系统。具体来说,它负责为用户创建文件、存储、读取、修改和转储文件、控制文件访问以及在用户不再使用文件时撤销文件。

文件管理系统是什么,文件管理系统是什么,第2张

简介

在计算机中,文件系统是用于命名和放置文件的逻辑存储和恢复系统。DOS、Windows、OS/2、Macintosh和基于UNIX的操作系统都有文件系统,其中文件以分层(树)结构放置在某处。文件放在目录(窗口中的文件夹)或子目录中,在树结构中的所需位置。

文件系统指定命名文件的规则。这些规则包括文件名中的最大字符数、可以使用的字符以及在某些系统中文件名后缀的长度。文件系统还包括通过目录结构查找文件的指定路径的格式。

文件系统是软件系统的一部分,它的存在方便了应用程序使用抽象命名的数据对象和可变大小的空。

功能

文件系统是操作系统用来指定磁盘或分区上的文件的方法和数据结构;在磁盘上组织文件的方法。它还指用于存储文件的磁盘或分区,或者文件系统的类型。所以,可以说& # 8221;我有两个文件系统。这意味着他有两个分区,一个用于存储文件,或者用于其他目的& # 8220;扩展文件系统& # 8221;,这意味着文件系统的类型。

磁盘或分区与其包含的文件系统不同很重要。少数程序(包括最合理的生成文件系统的程序)直接操作磁盘或分区的原始扇区;这可能会破坏现有的文件系统。大多数程序基于文件系统运行,不能在不同的文件系统上工作。

在将分区或磁盘用作文件系统之前,需要对其进行初始化,并将记录数据结构写入磁盘。这个过程叫做构建文件系统。

大多数UNIX文件系统类型都有类似的一般结构,即使细节有所变化。它的核心概念是超级块、I节点索引节点、数据块、目录块和间接块。超级块包括文件系统的一般信息,如大小(其确切信息取决于文件系统)。I-nodes包含文件除名称以外的所有信息,与I-nodes个数一起存储在目录中,目录条目包含文件的文件名和I-nodes个数。I节点包括若干数据块,用于存储文件的数据。I节点只有少量空数据块。如果需要更多的数据块,指针空数据块将被动态分配。这些动态分配的块是间接块;为了找到数据块,这个名字表示它必须首先找到间接块的编号。

UNIX文件系统通常允许文件中有漏洞,这意味着文件系统以只有0个字节来假装文件中有一个特殊位置,但并没有为文件的这个位置保留实际的磁盘空。这种情况经常发生在小型二进制文件、Linux共享库、一些数据库等特殊情况下。

孔有一定的用途。在我的系统中,一个简单的测量工具显示在200MB使用的磁盘空中,由于有孔,节省了大约4MB。在这个系统中,程序相对较少,没有数据库文件。

文件系统的功能包括:管理和调度文件存储空,提供文件的逻辑结构、物理结构和存储方式;实现文件从标识到实际地址的映射,控制和访问文件的操作,共享文件信息,提供可靠的文件安全和保护措施,提供文件安全措施。

文件的逻辑结构是根据文件内容的逻辑关系来组织文件结构。文件的逻辑结构可以分为流文件和记录文件。

流文件:文件中的数据是一串没有结构的字符串流。

记录文件:由几条逻辑记录组成,每条记录由同一数据项组成。数据项的长度可以是固定的,也可以是不确定的。

主要缺陷:数据关联性差,数据不一致,冗余。

密码

以下是文件系统的代码,根据这些代码我们可以更好地理解文件系统的工作流程

main . CPP
# include & # 8221;blockinode super block . h & # 8221;
//& # 8212;——————–
int main()
{
control . open(& # 8220;control.txt & # 8221,IOs::in | IOs::out | IOs::no create);
inti;
控制>>。I;
control . close();
if(i!= 0)//initialize
{
initial()如果不是0;
}
control . open(& # 8220;control.txt & # 8221,IOs::in | IOs::out | IOs::no create);
control . seekp(0);
控制<。& lt0;//默认是在上次的基础上继续,不初始化
control . close();
strcpy(curname,& # 8221;根& # 8221;);//当前目录文件名为root
road[0]= 0;//当前目录路径(存储从根目录到这里的节点号)
num = 1;//最后一位路[num-1]是当前目录文件I节点号
cout

block inode super block . h
intialloc()//Apply为I节点返回节点号,否则返回-1
{
if(super block . FIP tr >:0)
{
int temp = super block . fist ack[80-super block . FIP tr];//当前可用
super block . fist ack[80-super block . fiptr]=-1;
super block . fiptr & # 8211;;
return temp;
}
return-1;
}
//& # 8212;——————-
voidifree(intindex)//指定一个节点号,回收一个I节点
{
磁盘. open(& # 8220;disk.txt & # 8221,IOs::in | IOs::out | IOs::no create);//clear空node
disk . seekp(514+64 * index+2 *(index/8));
磁盘<。& ltsetw(64)lt。& lt”;
disk . close();
for(inti = 80-super block . fiptr;i<。80;I++)//找到合适的节点号位置插入空空闲节点号栈
{
if(super block . fistack;;是记录盘块
{
//是最后一个记录盘块的最后一个数字0(预留为栈底分配不成功)
If(temp = = 0)
{
Return-1;
}
supr block . fbstack[10-super block . fbptr]=-1;
super block . FBP tr = 0;
//将磁盘块的内容读入堆栈
(inti = 0;i<。10;i++)
{
intid,num = 0;
disk . open(& # 8220;disk.txt & # 8221,IOs::in | IOs::out | IOs::no create);
//首先计算磁盘块数num(最多10个),最后可能少于10个磁盘块数
disk . seekg(514 * temp);
for(inti = 0;i<。10;i++)
{
磁盘& gt>。id;
num++;
if(id = = 0)break;
}
disk . seekg(514 * temp);//将磁盘块的内容读入栈
for(intj = 10-num;j<。10;j++)
{
disk & gt;>。id;
super block . fbstack[j]= id;
}
super block . fbptr = num;
disk . close();
}
disk . open(& # 8220;disk.txt & # 8221,IOs::in | IOs::out | IOs::no create);//clear 空回收磁盘块
disk . seekp(514 * temp);
磁盘<。& ltsetw(512)lt。& lt”;
disk . close();
//磁盘块用完
return temp;
}
else//不是录制磁盘块= = >;;
{
super block . fbstack[10-super block . fbptr]=-1用于磁盘块;
super block . fbptr & # 8211;;
return temp;
}
}
//& # 8212;——————-

文件分配表(file allocation table)

在Win 9X下,FAT16支持的最大分区是2GB。我们知道计算机将信息存储在硬盘上一个叫做“集群”的区域。使用的集群越小,保存信息的效率越高。FAT16中,分区越大,簇越大,存储效率越低,必然导致存储的浪费空。随着计算机硬件和应用的不断完善,FAT16文件系统已经不能满足系统的要求。在这种情况下,引入了增强的文件系统FAT32。与FAT16相比,FAT32具有以下特点:

与FAT16相比,FAT32最大的优势是可以支持32GB磁盘,但不能支持小于512MB的分区。

基于FAT32的Win 2000可以支持分区高达32GB;而基于FAT16的Win 2000支持最大4GB的分区。

由于集群较小,FAT32文件系统可以更高效地保存信息。如果两个分区的大小为2GB,一个分区采用FAT16文件系统,另一个分区采用FAT32文件系统。FAT16分区的簇大小是32KB,而FAT32分区的簇大小只有4KB。这样FAT32的存储效率比FAT16高很多,正常情况下可以提高15%。

FAT32文件系统可以重新定位根目录,并使用FAT的备份副本。此外,FAT32分区的引导记录包含在一个包含关键数据的结构中,降低了计算机系统崩溃的可能性。

Windows NT文件系统(NT File System)

NTFS文件系统是一种基于安全的文件系统,是Windows NT采用的一种独特的文件系统结构。它是一种基于保护文件和目录数据、节省存储资源和减少磁盘占用的高级文件系统。应用广泛的Windows NT 4.0,采用NTFS 4.0文件系统。相信它带来的强大的系统安全性会给用户留下深刻的印象。Win 2000采用了NTFS文件系统NTFS 5.0的更新版本,使用户不仅能像Win 9X一样方便快捷地操作和管理计算机,还能享受到NTFS带来的系统安全性。

NTFS 5.0的特性主要体现在以下几个方面:

NTFS支持的MBR分区(如果采用动态磁盘则称为卷)可以达到2TB,而GPT分区是无限制的。而Win 2000中的FAT32支持单个文件的最大大小为2GB。

NTFS是一个可恢复的文件系统。用户很少需要在NTFS分区上运行磁盘修复程序。NTFS通过使用标准事务日志和恢复技术来确保分区一致性。当系统发生故障时,NTFS使用日志文件和检查点信息来自动恢复文件系统的一致性。

NTFS支持分区、文件夹和文件的压缩。当任何基于Windows的应用程序在NTFS分区上读写压缩文件时,都不需要先被其他程序解压缩。读取文件时,文件会自动解压缩。文件在关闭或保存时会自动压缩。

NTFS使用较小的集群,可以更高效地管理磁盘空。在Win 2000 FAT32文件系统中,集群大小为4KB当分区大小为2GB~8GB时。当分区大小在8 GB和16 GB之间时,群集大小为8 KB。当分区大小在16 GB和32 GB之间时,群集大小达到16KB。在Win 2000 NTFS文件系统中,当分区大小低于2GB时,集群大小小于对应的FAT32集群。当分区大小在2GB以上(2GB~2TB)时,集群大小为4KB。相比之下,NTFS可以比FAT32更有效地管理磁盘空之间的空间,最大限度地避免磁盘空之间的浪费。

在NTFS分区上,您可以设置共享资源、文件夹和文件的访问权限。权限设置包括两个方面:一是允许哪些组或用户访问文件夹、文件和共享资源;第二,获得访问权限的组或用户可以进行什么级别的访问。访问权限的设置不仅适用于本地计算机的用户,也适用于通过网络共享文件夹访问文件的网络用户。与FAT32文件系统下访问文件夹或文件相比,安全性高得多。此外,在NTFS格式的Win 2000中,可以应用审计策略对文件夹、文件和活动目录对象进行审计,审计结果记录在安全日志中。通过安全日志,可以查看哪些组或用户对文件夹、文件或active directory对象进行了什么级别的操作,从而发现系统可能面临的非法访问,并采取相应的措施将这种安全隐患降到最低。这些在FAT32文件系统下是无法实现的。

在Win 2000的NTFS文件系统下,可以进行磁盘配额管理。磁盘配额是指管理员可以限制用户可以使用的磁盘数量空,每个用户只能使用最大配额范围内的磁盘数量空。设置磁盘配额后,可以跟踪和控制每个用户的磁盘使用情况,并通过监控识别超过配额报警阈值和配额限制的用户,从而采取相应的措施。通过提供磁盘配额管理功能,管理员可以方便合理地为用户分配存储资源,避免因磁盘空使用失控而导致系统崩溃,提高系统安全性。

NTFS使用“更改”日志来跟踪记录文件的更改。

文件系统

CDFS是大多数光盘的文件系统,只有少数光盘使用其他文件系统。这些文件系统只能在光盘上读取。

格式化

(扩展文件分配表文件系统,或扩展文件分配表)是微软在Windows Embeded 5.0或更高版本(包括Windows CE 5.0、6.0、Windows Mobile5、6、6.1)中推出的适合闪存的文件系统。它的引入是为了解决FAT32和其他文件不支持4G和更大的文件的问题。对于闪存,NTFS文件系统不适合,exFAT更适合。与FAT文件系统相比,exFAT具有以下优点:

1.增强台式计算机和移动设备之间的互操作性

2.单个文件最大可以达到16EB(即理论值,16×1024×1024TB,1TB=1024G)

3.集群大小可以高达32MB

4.采用盈余空之间的分配表,提高了盈余空之间的分配性能

5.同一目录中文件的最大数量可以达到65,536个

6.支持访问控制

7.支持TFAT

使用此文件系统的闪存驱动器不支持Windows Vista ReadyBoost。SP1支持这个文件系统。

请注意:exFAT只是一种妥协,只针对u盘。

大小大于4GB的u盘默认格式化为NTFS分区,但这种格式对u盘的危害很大,因为NTFS分区采用的是“日志式”文件系统,需要记录详细的读写操作,因为需要不断读写,肯定会对闪存盘芯片造成伤害。

请参见下面的exFAT、NTFS和FAT分区的比较:

文件系统
操作系统最小扇区最大扇区
最大单个文件

最大格式化容量

文件数
95 OSR2 fat 32后512字节64KB 2字节-4GB2TB(但NT内核系统限制为32GB)4194304 ntfswin 2000 512字节64kb受制于最大分区容量2TB~256TB(受MBR影响)。没有exFATWin CE 6/ Vista SP1/Win 8512字节32768 KB 16EB(理论值)16EB(理论值)(目前支持256TB)可以至少大于1000

生的

原始文件系统是由未处理或未格式化的磁盘生成的文件系统。一般来说,有几种文件系统可能会导致普通文件系统变成原始文件系统:

●无格式。

●格式化中途取消操作。

低硬盘出现问题。

●硬盘出现不可预测的错误。

●病毒引起的。

解决RAW文件系统最快的方法就是立即格式化,用杀毒软件彻底杀毒。当然,如果文件很重要,可以考虑先用磁盘数据恢复软件把数据抢救出来,然后格式化消毒,或者在网上找一些关于“原始文件系统恢复”的东西。

外面的(exterior的简写)

Ext2

Ext是GNU/Linux系统中的标准文件系统,其特点是访问文件性能优异,尤其是对于中小型文件,这主要得益于其集群缓存层的优秀设计。

单个文件大小与文件系统自身的容量上限和文件系统自身的群集大小相关。在常见的x86计算机系统中,最大集群大小为4KB,因此单个文件的大小限制为2048GB,而文件系统的容量上限为16384GB。

但是目前Core 2.4可以使用的最大单分区只有2048GB,实际上可以使用的最大文件系统容量也只有2048GB。

至于Ext3文件系统,属于日志文件系统,是ext2系统的扩展。与ext2兼容,从ext2转换到ext3并不复杂。

Btrfs

Btrfs(通常发音为Butter FS)是一种写时复制文件系统,由Oracle在2007年宣布并正在开发中。目的是取代目前Linux的ext3文件系统,改善ext3的局限性,尤其是单个文件的大小、总文件系统大小或文件检查,增加ext3目前不支持的功能,如可写快照、快照的快照、内置磁盘阵列(RAID)支持、子卷等。Btrfs还声称专注于“容错、修复和易于管理”。

ZFS

ZFS源于太阳微系统公司为Solaris操作系统开发的文件系统。ZFS是一个轻量级文件系统,具有高存储容量、文件系统和卷管理概念的集成以及全新的磁盘逻辑结构。也是一个方便的存储池管理系统。ZFS是CDDL授权的开源项目。

超精结构(hyperfine structure)

HFS文件系统概念

分层文件系统(HFS)是苹果电脑开发的文件系统,用于苹果操作系统。最初是为软盘和硬盘设计的,也可以在只读媒体上看到,如光盘。

HFS文件系统的开发过程

HFS于1985年9月17日首次作为一个新的文件系统出现在麦金塔电脑上。它取代了Macintosh文件系统(MFS),这是一种仅由早期的Mac型号使用的平面文件系统。因为麦金塔电脑产生的数据比其他常见的文件系统要多,比如DOS使用的FAT或者最初的Unix文件系统。苹果电脑开发了一个新的更适用的文件系统,而不是使用现有的规范。例如,HFS允许文件名最长为31个字符,并支持元数据和双分支(每个文件的数据和资源分支分别存储)文件。

尽管像大多数其他文件系统一样,HFS被认为是一种专有格式,但只有它为大多数最新操作系统访问HFS格式磁盘提供了一个良好的通用解决方案。

HFS+

1998年,苹果电脑发布了HFS+,改进了HFS在磁盘间定位地址的低效率空,并增加了其他改进。

与HFS文件系统1相比,HFS+文件系统的特点。使用32位记录分配块数HFS和HFS+文件系统以块为单位分配磁盘卷,并将一个卷分成相等的分配块。HFS文件系统使用16位来记录分配块的数量,最多只能描述216个分配块。对于HFS+文件系统,32位用来记录分配块的数量,最多可以描述232个分配块。对于Mac系统上的非空数据,必须占用整数个分配块,也就是说,即使一个数据只有一个字节,也必须占用一个分配块。但是,HFS+文件系统增加了每个卷的分配块数量,这可以使分配块的单位空更小,从而减少存储的浪费空。2.目录树节点大小增加到4KB。HFS文件系统的目录树节点大小为512字节。因为HFS+文件系统的目录树索引节点需要存储两个键值:附加指针和节点描述符,所以HFS+文件系统的目录树节点大小增加到4 KB。3.提高了单个文件的大小。HFS文件系统的最大单个文件大小是2^31bit,而HFS+文件系统的最大单个文件大小可以达到2^63bit.4.支持长文件名HFS文件系统支持最多31个字符的文件名,而HFS+文件系统对最多255个字符的文件名采用Unicode编码。

ReiserFS

ReiserFS,一种文件系统格式,是由Hans Reiser和他的团队Namesys编写的。1997年7月23日,他在网上发布了ReiserFS文件系统。Linux内核支持2.4.1版的ReiserFS。

ReiserFS是以作者Hans Reiser的名字命名的。这个日志文件系统的开发比ext2/3晚得多。技术上采用基于B *-树的文件系统,特点是高效处理大文件到很多小文件;实际上,当处理小于1k的文件时,ReiserFS甚至可以比ext3快10倍。

ReiserFS最初是Novell公司的SuSE Linux企业采用的默认文件系统。直到2006年10月12日,它宣布在未来版本中将把ext3改为默认。Novell否认与汉斯·赖泽涉嫌杀妻有关。

JFS

JFS日志文件系统是一种字节级的日志文件系统,它借鉴了数据库保护系统的技术,以日志的形式记录文件的变化。JFS通过记录文件结构而不是数据本身的变化来确保数据的完整性。这种方法可以确保数据的可访问性可以随时维护。

文件系统主要是为了满足服务器(从单处理器系统到高级多处理器和集群系统)的高吞吐量和可靠性要求而设计和开发的。JFS文件系统是为面向事务的高性能系统开发的。在IBM AIX系统上,JFS已经测试了很长时间,结果表明它可靠、快速、易用。2000年2月,IBM宣布将在开放资源许可下移植Linux版本的JFS文件系统。JFS也是一个由大量用户安装和使用的企业文件系统,具有可扩展性和健壮性。与非日志文件系统相比,它的突出优势是能够快速重启,JFS可以在几秒钟或几分钟内将文件系统恢复到一致状态。虽然JFS的设计主要是为了满足服务器的高吞吐量和可靠性要求(从单处理器系统到高级多处理器和集群系统),但它也可以用于高性能和高可靠性的客户端配置。JFS是互联网文件服务器的关键技术,因为它可以在系统崩溃时提供快速的文件系统重启时间。使用数据库日志处理技术,JFS可以在几秒钟或几分钟内将文件系统恢复到一致状态。在非日志文件系统中,文件恢复可能需要几小时或几天时间。

JFS的缺点是,JFS日志文件系统的性能会受到一定的损失,系统资源会占用很高的比率,因为当它保存一个日志时,系统需要写入大量的数据。

文件系统

VMware虚拟机文件系统(VMFS)是一个高性能的集群文件系统,这使得虚拟化技术的应用超越了单一系统的限制。VMFS专为虚拟服务器环境设计、构建和优化,该环境允许多个虚拟机访问整合的群集存储池,从而显著提高资源利用率。VMFS是跨多台服务器虚拟化的基础。它可以启用各种服务,如VMware VmotionTM、分布式资源调度器和VMware高可用性。VMFS还可以显著降低管理开销,并且它提供了高效的虚拟化管理层,特别适合大型企业数据中心。借助VMFS,资源可以共享,这使得管理员可以轻松地直接受益于更高的效率和存储利用率。

XFS

XFS是硅图形公司在20世纪90年代早期开发的文件系统。它仍然被用作基于SGI IRIX的产品(从工作站到超级计算机)的底层文件系统。XFS现在也可以用于Linux了。Linux版XFS的到来令人兴奋。首先,它为Linux社区提供了一个健壮、优秀、功能强大的文件系统,这个文件系统的可扩展性可以满足最严格的存储要求。

国际金融服务集团

UFS文件系统:基于BSD高速文件系统的传统UNIX文件系统,是Solaris的默认文件系统。默认情况下,启用UFS日志记录。在早期的Solaris版本中,只能手动启用UFS日志记录。Solaris 10在运行64位Solaris内核的系统上支持多TB UFS文件系统。以前,64位系统和32位系统上的UFS文件系统的大小限制在1 TB左右。现在,所有UFS文件系统命令和实用程序都已更新,以支持多TB UFS文件系统。

UFS1文件系统是OpenBSD和Solaris的默认文件系统。UFS1曾经是NetBSD和FreeBSD的默认文件系统,但是UFS2在NetBSD2.0和FreeBSD5.0之后被用作默认文件系统,UFS2增加了对大文件和大容量磁盘的支持以及一些高级特性。目前看来只有FreeBSD和NetBSD支持UFS2。UFS1也是苹果OS X和Linux支持的,但是不是他们默认的文件系统。

文件系统

维尔软件文件系统(VxFS)是第一个商业日志文件系统。使用日志记录,元数据更改首先写入日志,然后写入磁盘。因为不需要在多个地方写变化,元数据是异步写的,所以吞吐量更快。VxFS也是一个基于扩展区域的意图日志文件系统。VxFS是为要求高性能和高可用性并能处理大量数据的操作环境而设计的。

参考文献

ReFS(弹性文件系统)是Windows 8.1和Server 2012中引入的新文件系统。ReFS大部分与NTFS兼容,其主要目的是保持较高的稳定性,自动验证数据是否损坏,并尽力恢复数据。

参考文献的主要功能如下:

带校验和的元数据完整性

提供可选用户数据完整性的完整性流。

通过写入时分配事务模型实现可靠的磁盘更新(也称为写入时复制)

支持非常大规模的卷、文件和目录

存储池和虚拟化使文件系统能够轻松构建和管理

通过数据条带化提高性能(可以管理带宽),并通过备份提高容错能力

通过磁盘扫描防止潜在的磁盘错误

通过“数据补救”的方式恢复损坏,以便在任何情况下尽可能提高卷的可用性

跨计算机共享存储池,以提供额外的容错和负载平衡

K歌软件
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 文件管理系统是什么

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情