主要内容:
- 块设备简介
- 内核访问块设备的方法
- 内核I/O调度程序
1. 块设备简介
I/O设备主要有2类:
- 字符设备:只能顺序读写设备中的内容,比如 串口设备,键盘
- 块设备:能够随机读写设备中的内容,比如 硬盘,U盘
字符设备由于只能顺序访问,所以应用场景也不多,这篇文章主要讨论块设备。
块设备是随机访问的,所以块设备在不同的应用场景中存在很大的优化空间。
块设备中最重要的一个概念就是块设备的最小寻址单元。
块设备的最小寻址单元就是扇区,扇区的大小是2的整数倍,一般是 512字节。
扇区是物理上的最小寻址单元,而逻辑上的最小寻址单元是块。
为了便于文件系统管理,块的大小一般是扇区的整数倍,并且小于等于页的大小。
查看扇区和I/O块的方法:
[wangyubin@localhost]$ sudo fdisk -l WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/sda: 500.1 GB, 500107862016 bytes, 976773168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x00000000