Filesystems 文件系统如何跟踪可用空间

Filesystems 文件系统如何跟踪可用空间,filesystems,Filesystems,我正在编写一个程序,需要以随机顺序读写大量数据,由于我不想使用数百个小文件,我正在尝试开发一种虚拟文件系统,它可以写入一个大文件,跟踪“文件”在“磁盘”文件中的位置 因此,我一直试图找到有关文件系统实现的详细信息,但有一件事似乎从未以我能理解的方式解释过:文件系统如何跟踪空闲/删除的扇区以创建新文件?例如,FAT在开始时有一个所有扇区的索引,这似乎是保存此信息的唯一位置,但以线性O(n)方式搜索索引以查找新的可用空间区域似乎效率很低,特别是如果没有删除的扇区,并且必须在列表末尾插入某些内容。我是

我正在编写一个程序,需要以随机顺序读写大量数据,由于我不想使用数百个小文件,我正在尝试开发一种虚拟文件系统,它可以写入一个大文件,跟踪“文件”在“磁盘”文件中的位置


因此,我一直试图找到有关文件系统实现的详细信息,但有一件事似乎从未以我能理解的方式解释过:文件系统如何跟踪空闲/删除的扇区以创建新文件?例如,FAT在开始时有一个所有扇区的索引,这似乎是保存此信息的唯一位置,但以线性O(n)方式搜索索引以查找新的可用空间区域似乎效率很低,特别是如果没有删除的扇区,并且必须在列表末尾插入某些内容。我是否遗漏了一些东西,或者这就是文件系统检测未使用扇区以进行写入的方式?谢谢

它就像一个链接列表:每个文件可以被分成多个分区,在分区的末尾,每个分区都是指下一个分区的开始,对于自由空间也是如此。把可用空间想象成一个大文件,其中包含了不在另一个文件中的每个字节

它就像一个链接列表:每个文件可以被分成多个分区,在分区的末尾,每个分区都是指下一个分区的开始,对于自由空间也是如此。把可用空间想象成一个大文件,其中包含了不在另一个文件中的每个字节

答案取决于整个文件系统体系结构。它可以是一个自由页面的线性列表,也可以用与其他文件(例如链接列表)相同的方式计算自由空间


实际上,开发一个高效的文件系统对于您的一项次要任务来说是相当严肃的任务。因此,使用一些已经创建的虚拟文件系统是有意义的,例如CodeBase提供的或我们的。

答案取决于整个文件系统体系结构。它可以是一个自由页面的线性列表,也可以用与其他文件(例如链接列表)相同的方式计算自由空间


实际上,开发一个高效的文件系统对于您的一项次要任务来说是相当严肃的任务。因此,使用一些已经创建的虚拟文件系统是有意义的,例如CodeBase提供的或我们的。

我发现了一个有用的PDF,解释了linux文件系统中如何映射空闲空间。这更符合我所寻找的


我发现了一个有用的PDF文件,解释了linux文件系统中如何映射空闲空间。这更符合我所寻找的


我可以问一下为什么要投否决票吗?这是我回答这个问题的参考资料。这是一个对特定的、高度不推荐的文件系统有效的答案:我可以问一下为什么要投否决票吗?是这个答案的参考资料。它对特定的、高度不推荐使用的文件系统FAT有效