每个概念是对不同的对象而言的,但它们有一定的联系
这些概念的分析背景是Linux下的内存页和磁盘结构
-
扇区
是硬盘等存储设备传送单位,大小一般为512B
-
块
是VFS和文件系统的传送单位(所以相关设备也成为块设备),大小必须是2的幂,不能超过页的大小。
-
段
是一个内存页或内存页的一部分,它包含磁盘上物理相邻的几个数据块的内容,是块驱动的传送单位,大小不定(取决于通用块层,因为它把传送的数据下发给块驱动,而通用块还可以把几个段合并成物理段、硬件段(专门总线电路);同时也取决于用户所访问的大小。注意这里所指的段与内存中的段也有些联系,因为内存的段可能是一个对象/变量的大小;而用户程序也可能以变量/对象作为单位来访问设备。
-
页
在这里仅仅是把4096B的连续数据称为一个页。也可以指内存的数据组织单位(有些体系还在使用段,但是多数已经将段屏蔽了,即内部使用,而外部“看不见"),大小通常为4096B。但内存本身的访问/传送单位并不是页,这是取决于内存的编址方法,现在内存通常是按字节编址的,而甚至部分可以按位编址,所以内存的访问单位可以更小。
todo:
- 补充图片示例、
参考资料:《深入理解Linux内核》