块设备是Linux三大设备之一,其驱动模型主要针对磁盘,Flash等存储类设备,本文以3.14为蓝本,探讨内核中的块设备驱动模型

框架

下图是Linux中的块设备模型示意图,应用层程序有两种方式访问一个块设备:/dev和文件系统挂载点,前者和字符设备一样,通常用于配置,后者就是我们mount之后通过文件系统直接访问一个块设备了。

电脑培训,计算机培训,平面设计培训,网页设计培训,美工培训,Web培训,Web前端开发培训

块设备(blockdevice)是一种具有一定结构的随机存取设备,对这种设备的读写是按(所以叫块设备)进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或者从设备一次性读到缓冲区。作为存储设备,块设备驱动的核心问题就是哪些page->segment->block与哪些sector有数据交互
作为一种存储设备,和字符设备相比,块设备有以下几种不同:

字符设备块设备
1byte块,硬件块各有不同,但是内核都使用512byte描述
顺序访问随机访问
没有缓存,实时操作有缓存,不是实时操作
一般提供接口给应用层块设备一般提供接口

网友评论