【tips】flash,字符设备与块设备 I/O 操作的不同

 http://blog.chinaunix.net/uid-9525959-id-2980833.html

Flash 的编程原理都是只能将 1 写为 0,而不能将 0 写为 1。所以在 Flash 编程之

前,必须将对应的块擦除,而擦除的过程就是把所有位都写为 1 的过程,块内的所有
字节变为 0xFF。



   字符设备与块设备 I/O 操作的不同如下。
  (1)块设备只能以块为单位接受输入和返回输出,而字符设备则以字节为单位。
大多数设备是字符设备,因为它们不需要缓冲而且不以固定块大小进行操作。
  (2)块设备对于 I/O 请求有对应的缓冲区,因此它们可以选择以什么顺序进行响
应,字符设备无须缓冲且被直接读写。对于存储设备而言调整读写的顺序作用巨大,
因为在读写连续的扇区比分离的扇区更快。
  (3)字符设备只能被顺序读写,而块设备可以随机访问。虽然块设备可随机访问,
但是对于磁盘这类机械设备而言,顺序地组织块设备的访问可以提高性能,如图 13.1
所示,对扇区 1、10、3、2 的请求被调整为对扇区 1、2、3、10 的请求。而对 SD 卡、
RamDisk 等块设备而言,不存在机械上的原因,进行这样的调整没有必要。

你可能感兴趣的:(【tips】flash,字符设备与块设备 I/O 操作的不同)