内核修炼二: 块设备驱动实战
孙昊
毕业并工作于中科院计算所长期从事集群存储系统研发专注于linux内核技术现任用友集团PAAS中心技术专家qq:184214206微博http://weibo.com/u/3247230564邮箱john.hao.sungmail.com工作室www.talk-edu.com
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
浅谈切入内核学习的方法 - 从块设备驱动入手
接着“内核修炼一”我们开始真正的内核技术实战学习,个人觉得内核学习从实战入手,直接参与内核代码开发,实战是最好的,否则会长期停留在理论学习的抽象边界上,最近也持续思考,并与北邮的部分学生进行交流,根据这么多年积累的项目经验总结了一下,我们从块设备驱动入手进行内核学习,这里我们从此会反复强调IO的概念,这也是存储技术的核心概念。 我们再看一下操作系统应用层/内核层的架构图原创 2013-06-14 10:43:54 · 1444 阅读 · 0 评论 -
块设备驱动实战基础篇二 (继续完善170行过滤驱动代码至200行)
1.3块设备驱动关键数据结构及函数API详细剖析经过上节四个步骤我们已经熟悉并实战了一个最基本的过滤块设备驱动的设计技巧,我们这一节先不继续实战,我们本节把上节170行代码中接触到的块设备核心数据结构和API接口剖析一下,把这部分掌握和理解一下。 我们把上节涉及的六个数据结构和相关API接口罗列一下: 块设备核心数据结构gendisk块设备仓库原创 2013-06-14 11:08:48 · 2060 阅读 · 0 评论 -
块设备驱动实战进阶篇二 (调试基础二:ftrace)
待续。。。原创 2013-06-14 11:28:01 · 1044 阅读 · 0 评论 -
块设备驱动实战进阶篇一 (调试基础一:串口,kdump,panic分析)
待续。。。原创 2013-06-14 11:27:22 · 988 阅读 · 0 评论 -
块设备驱动实战基础篇四 (逐渐成型,加入ioctl通信机制)
1.6介绍一种内核与用户空间通信的方法-misc设备ioctl机制块设备驱动开发中往往需要配合用户态的管理程序工具,管理我们的块设备,此时我们需要涉及用户空间程序与块设备通信的方法,ioctl机制就是接下来需要学习和实战的,通过ioctl机制,用户态负责发送各种命令给内核驱动;内核态接收用户态发送的命令,并根据命令执行相应的动作,如下图所示。 ioctl提供用户态程序使用内核态函数原创 2013-06-14 11:19:26 · 1859 阅读 · 1 评论 -
块设备驱动实战基础篇三 (BIO请求回调机制)
1.5 块设备请求返回处理回调机制 本节我们继续完善1.4节中的代码,在上节我们完成了请求的过滤转发,那么请求被磁盘处理完成后返回回来的路径处理是怎样的,本节我们继续带着这样的问题再一次完善我们的驱动程序,通过本节的学习,我们能够真正掌握请求处理,转发过滤,请求完成后回调处理机制的完整学习。 先给出完善后的IO架构图,我们对比一下1.4节最后给出的图有何区别:相比1.4节,原创 2013-06-14 11:16:41 · 2310 阅读 · 0 评论 -
块设备驱动实战高级篇二(在内核块设备中运用进程)
待续。。。原创 2013-06-14 11:23:22 · 703 阅读 · 0 评论 -
块设备驱动实战基础篇一 (170行代码构建一个逻辑块设备驱动)
1 内核块设备驱动基础学习与实战1.1 设备驱动IO架构初探 操作系统是如何将数据读到缓冲区的,发生了什么?我们带着这样的问题,粗略走一下read调用系统过程,希望这个初探,可以唤起大家研究操作系统内核的好奇心和兴趣,并以此为例,让我们先初步对请求在过滤块设备驱动中的处理过程有个大概印象和了解。 块设备在整个Linux中应用的总体结构图如下: 从上图可以看出,块原创 2013-06-14 10:54:00 · 2572 阅读 · 1 评论 -
块设备驱动实战高级篇三(在内核块设备中实战内存管理)
待续。。。原创 2013-06-14 11:24:40 · 770 阅读 · 0 评论 -
块设备驱动实战高级篇一 (在内核块设备中运用链表/信号量/自旋锁/原子变量)
待续。。。原创 2013-06-14 11:21:47 · 1261 阅读 · 2 评论 -
块设备驱动实战高级篇四(在内核块设备中实战workqueue/waitqueue)
待续。。。原创 2013-06-14 11:25:48 · 807 阅读 · 0 评论
分享