文件系统块大小

发布于 2024-12-21 09:24:04 字数 159 浏览 0 评论 0原文

文件系统块大小有何意义?如果我的文件系统块大小设置为 8K,这是否意味着所有读/写 I/O 都将发生在 8K 大小?因此,如果我的应用程序想要读取偏移量 4097 处的 16 个字节,那么将从偏移量 4096 开始的 4K 块将被读取?

在这种情况下写入如何工作?假设我想写 64 个字节。

What is the significance of the file system block size? If my filesystem block size is set at, say 8K, does that mean that all read/write I/O will happen at size 8K? So if my application wants to read say 16 bytes at offset 4097 then a 4K block starting from offset 4096 will be read?

How do writes work in this case? Suppose I want to write say 64 bytes.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

滥情哥ㄟ 2024-12-28 09:24:04

你是对的。块大小是文件系统的工作单元。每次读取和写入都是以块大小的整倍数完成的。

块大小也是文件在磁盘上可以拥有的最小大小。如果块大小为 16 字节,则 16 字节大小的文件会占用磁盘上的整个块。

“实用文件系统设计”一书指出:

块:磁盘或文件系统可写入的最小单位。一切都一个
文件系统由对块进行的操作组成。一个文件系统
块的大小始终等于或大于(整数倍)
磁盘块大小。

You are right. The block size is the unit of work for the file system. Every read and write is done in full multiples of the block size.

The block size is also the smallest size on disk a file can have. If you have a 16 byte Block size,then a file with 16 bytes size occupies a full block on disk.

The book "Practical file system design" states:

Block: The smallest unit writable by a disk or file system. Everything a
file system does is composed of operations done on blocks. A file system
block is always the same size as or larger (in integer multiples) than the
disk block size.

笑,眼淚并存 2024-12-28 09:24:04

通常,当您必须在编程中处理文件时,您应该使用 Stream 抽象。
通过代码进行的 I/O 操作通常是对流的读取和写入;从流中读取和写入,可以进行缓冲,以便可以读取或写入文件块。

fs上的块大小是指映射磁盘表面;次要的是单个块的大小,主要是块的数量(以及表中保存文件分配信息的元素)。

因此,操作系统可以根据块大小离散地映射磁盘上的文件,并具有较小的“文件映射”。
据我所知,这不会影响编程语言 API 中的流抽象。

Normally when you have to deal with files in programming you should use Stream abstraction.
I/O operations through code are often reads and writes to streams; reading and writing from and to streams, can be buffered so that chunks of file can be read or written.

Block size on fs refers to mapping disk surface; minor the size of the single block major the number of blocks (and so the elements in the table that keeps information on allocation of files).

So OS's so can map file on disk discretely based on block size and have a smaller "map of files".
As I know this doesn't affect stream abstraction in API's of programming language.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文