Linux内核设计与实现ch14 块IO层
Linux内核设计与实现第十四章—块I/O层
块设备是系统中能够随机访问固定大小数据片的硬件设备,所以这些固定大小的数据片就称为块。最常见的块设备是硬盘,其余闪存,光驱等也均为块设备。在内核中,这些块设备都是以安装文件系统的方式使用的。
与块设备相对应的设备类型是字符设备。字符设备会按照字节流的方式被有序访问(例如串口或者键盘这样的设备)。也就是说字符设备和块设备之间的最主要区别就是——数据是否可以被随机访问。
对于内核来讲,对于块设备的管理要比对于字符设备的管理细致的多。因为块设备中要考虑的问题比字符设备更多。字符设备只需要控制当前位置的数据,而块设备上的位置需要在介质的区间中不停移动。更重要的是,块设备普遍来说对执行性能的要求很高。对硬盘的每多一份利用都会对整个系统带来性能上的提升。所以内核给块设备提供了专门提供服务的子系统。而这一章讲述的就是内核如何对块设备和块设备的请求进行管理。