Linux内核块IO学习笔记
1.基本设备类型
基本的设备类型有字符设备和块设备两种:
字符设备按照字符流的方式被有序访问;
系统中能够随机而不需要按顺序访问固定大小数据片的设备称为块设备。这些数据片称为块。
2.扇区是硬件单元
块设备中最小的可寻址单元是扇区。
扇区的大小是设备的物理属性,扇区是所有块设备的基本单元,块设备无法对比它还小的单元进行寻址和操作,许多块设备能够一次传输多个扇区。
3.扇区的大小
扇区大小一般是2的整数倍,最常见的大小是512字节。
4.块是软件单元
各种软件都会用到自己的最小逻辑可寻址单元——块。块是文件系统的一种抽象,只能基于块来访问文件系统。虽然物理磁盘寻址是按照扇区级进行的,但是内核执行的所有磁盘操作都是按照块进行的。
5.块的大小
由于扇区是设备的最小可寻址单元,所以块不能比扇区还小,只能是扇区的整数倍。
另外,内核还要求块大小是2的整数倍,而且不能超过一个页的长度,
所以,块的大小必须是扇区大小的2的整数倍,并且要小于页面大小。通常块大小是512字节、1K或4K。
6.别名
扇区——设备的最小寻址单元,有时会被称作“硬扇区”或“设备块”;
块——文件系统的最小寻址单元,有时会被称作“文件块”或“I/O块”。
7.缓冲区
当一个块被调入内存时,也就是说,在读入后或等待写出时,它要存储在一个缓冲区中。
每个缓冲区与一个块对应,它相当于是磁盘块在内存中的表示。
块包含一个或多个扇区,但大小不能超过一个页面,所以一个页可以容纳一个或多个内存中的块。
阅读(1202) | 评论(0) | 转发(0) |