linux文件历史,Linux文件系统的历史透视

与维基百科页面一样,Block(数据存储)虽然在链接所有关键字方面过于旺盛,但仍具有丰富的信息量。

在计算(特别是数据传输和数据存储)中,块是具有标称长度(块大小)的字节或比特序列。据说这样构建的数据被阻止。将数据放入块的过程称为阻塞。阻塞用于促进接收数据的计算机程序对数据流的处理。阻塞的数据通常一次读取整个块。当将数据存储到9轨磁带,旋转介质(例如软盘,硬盘,光盘和NAND闪存)时,几乎普遍采用阻塞。

大多数文件系统都基于块设备,块设备是负责存储和检索指定数据块的硬件的抽象级别,尽管文件系统中的块大小可能是物理块大小的倍数。在传统文件系统中,单个块可能只包含单个文件的一部分。由于内部碎片导致空间效率低下,因为文件长度通常不是块大小的倍数,因此最后一个文件块将保持部分为空。这将创建松弛空间,平均每个文件半个块。一些较新的文件系统试图通过称为块子分配和尾部合并的技术来解决这个问题。

还有一个经典的Unix文件系统的合理概述。

传统上,硬盘几何(磁盘本身的块布局)是CHS。

头部:每个(一侧)盘片上的磁性读写器;可以移入和移出以访问不同的圆柱体

圆柱体:当盘片旋转时,在轨道下方通过的轨道

扇区:在圆柱体的一部分上连续存储的恒定大小的数据量;驱动器可以处理的最小数据单元

如今,CHS使用不多

硬盘不再使用每个气缸的恒定扇区数。通过使用每个扇区的恒定弧长而不是恒定的旋转角度将更多数据挤压到盘片上,因此外圆柱上的扇区比内圆柱上的扇区多。

根据ATA规范,驱动器每个喷头可以具有不超过216个汽缸,每个汽缸可以具有24个喷头和28个扇区; 512B扇区,这是128GB的限制。通过BIOS INT13,无论如何都无法通过CHS访问超过7.88GB的任何内容。

为了向后兼容,较大的驱动器仍然声称具有CHS几何(否则DOS将无法启动),但是获取任何更高的数据需要使用LBA寻址。

CHS在RAID或非旋转媒体上甚至没有意义。

但由于历史原因,这会影响块大小:因为扇区大小几乎总是512B,所以文件系统块大小始终是512B的倍数。 (有一个运动正在推出1kB和4kB扇区尺寸的驱动器,但兼容性看起来相当痛苦。)

一般来说,较小的文件系统块大小可以在存储许多小文件时减​​少浪费的空间(除非使用尾部合并等高级技术),而较大的块大小减少了外部碎片并且在大磁盘上具有较低的开销。文件系统块大小通常为2的幂,受块设备扇区大小的限制,并且通常受操作系统页面大小的限制。

页面大小因操作系统和平台而异(在Linux的情况下,也可能因配置而异)。与块大小一样,较小的块大小减少了内部碎片,但需要更多的管理开销。 32位平台上的4kB页面大小很常见。

现在,来描述间接块。在UFS设计中,

inode描述文件。

在UFS设计中,指向inode可容纳的数据块的指针数量非常有限(小于16)。特定数字在派生实现中似乎有所不同。

对于小文件,指针可以直接指向组成文件的数据块。

对于较大的文件,必须有间接指针,指向仅包含更多指向块的指针的块。这些可能是属于文件的数据块的直接指针,或者如果文件非常大,它们可能是更间接的指针。

因此,当使用间接指针时,文件所需的存储量可能大于包含其数据的块。

并非所有文件系统都使用此方法来跟踪属于文件的数据块。 FAT只使用单个文件分配表,它实际上是一系列巨大的链表,许多现代文件系统都使用扩展区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值