06 linux011块设备管理

Posted 资质平庸的程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了06 linux011块设备管理相关的知识,希望对你有一定的参考价值。

1 与块设备交互的大体流程(如硬盘)

IO 端口指令
   |[0]
   V
 +---+ [1] 命令 +------------+
 |   |--------->|块设备控制器|[2] 命令接收与执行 
 |CPU|          |            |
 |   | [3] 中断 |块设备存储器|
 +---+<---------+------------+
   |[4]
   V
中断处理程序

2 与块设备交互涉及到的抽象层次

linux 0.11 没有直接跟块设备的交互流程进行交互,而是将交互抽象到了文件层面。大体过程如下

(1) 文件操作

[1] 打开文件。

根据根/当前目录i节点搜索目标文件i节点,将该i节点缓存在缓冲区中。

[2] 读写文件

文件读写的核心是打开文件时所获取到的i节点信息。由该i节点可得到文件所属设备类型及设备编号,从而调用相应的读写函数读写文件,如此处的块设备读写函数。

(2) 块设备读写区域换算

由在文件层面获取到的i节点,还可以换算出欲读写数据在设备上的位置(逻辑块号)。

(3) 申请缓冲区缓存数据

根据设备号和逻辑块,依据缓冲区管理算法申请缓冲区。

(4) 申请块设备访问

将块设备请求提交给块设备管理逻辑(如linux 0.11中为电梯算法)。

(5) 与块设备进行交互

根据块设备交互流程,将块设备上与文件层面相对应的数据读到缓冲区中(对于写设备,则在写缓冲区后再将缓冲区写回块设备)。

所以与块设备交互涉及的抽象层次由上到下有

  +------------+
  |文件操作管理|
  +------------+
        |
        V
   +----------+
   |缓冲区管理|
   +----------+
        |
        V
 +--------------+
 |块设备操作管理|
 +--------------+
        |
        V
+--------------+
|块设备交互流程|
+--------------+

以上是关于06 linux011块设备管理的主要内容,如果未能解决你的问题,请参考以下文章

07 linux011字符设备管理

07 linux011字符设备管理

02 linux011内存管理

02 linux011内存管理

01 linux011 引导和保护模式的初始设置

01 linux011 引导和保护模式的初始设置