Linux块I/O
Linux下有两种基本的设备类型,一种是字符设备,另外一种是块设备。如果一个硬件设备是以字符流的方式被访问的话,则属于字符设备;反之,如果一个设备是随机(无序)访问的话,则属于块设备。比如键盘属于字符设备,硬盘属于块设备。字符设备仅仅需要控制一个位置--当前位置,而块设备访问的位置必须能够在截至的不同区间前后移动。 扇区是块设备最小寻址单元,一般为512字节。块是文件系统的一种抽象--只能基于块来访问文件系统。虽然物理磁盘寻址是按照扇区级进行的,但是内核执行的所有磁盘操作都是按块进行的。内核还要求块大小是2的整数倍,而且不能超过一个页的长度。总结来说,扇区是设备的最小寻址单元,而块是文件系统的最小寻址单元。 1.缓冲区和缓冲区头 当一个块被调入内存时,它要存储在一个缓冲区中,每一个缓冲区与一个块对于,它相当于是磁盘块在…