1#
发表于 2008-1-2 11:20 只看该作者
块设备输入输出解读(二)—块设备的剖析
块设备中最小的可寻址单元是扇区。扇区大小一般是2的整数倍,而最常见的大小是512个字节。扇区的大小是设备的物理属性,扇区是所有块设备的基本单元—块设备无法对比它还小的单元进行寻址和操作,不过许多块设备能够一次就传输多个扇区。虽然大多数块设备的扇区大小都是512字节,不过其他大小的扇区也很常见(比如,很多CD-ROM盘的扇区都是2K大小)。
虽然各种软件的用途不同,但是它们都会用到自己的最小逻辑可寻址单元—块。块是文件系统的一种抽象—只能基于块来访问文件系统。虽然物理磁盘寻址是按照扇区级进行的,但是内核执行的所有磁盘操作都是按照块进行的。由于扇区是设备的最小可寻址单元,所以块不能比扇区还小,只能数倍于扇区大小。另外内核(对有扇区的硬件设备)还要求块大小是2的整数倍,而且不能超过一个页的长[1]。所以,对块大小的最终要求是,必须是扇区大小的2的整数倍,并且要小于页面大小。所以通常块大小是512字节,1K或4K。
扇区和块还有一些不同的叫法,为了不引起混淆,我们在这里简要介绍一下它们的其他名称。扇区—设备的最小寻址单元,有时会被称作“硬扇区”或“设备块”;同样地,块—文件系统的最小寻址单元,有时会被称作“文件块”或“I/O块”。在这里,会一直使用“扇区”和“块”这两个术语,但你还是应该记住它们的这些别名。
和硬盘相关的其他常见术语还有—簇,柱面,磁头等。这些术语都和具体的块设备相关,一般情况下,用户空间的软件用不到这些概念。扇区对内核的重要性在于所有设备的I/O操作都必须基于扇区来进行;反过来,块是内核使用的较高层概念,它是比扇区高一层的抽象。
[1] 这个认为的限制可能会遗留到以后,但是强制块的大小等于或小于页大小无疑简化了内核。
[ 本帖最后由 陈莉君 于 2008-1-2 11:23 编辑 ]
透析真谛,似拨云穿雾;共享智慧,如春风沐浴
http://www.kerneltravel.net
|