挖个坑,通过一个bug学习scsi~

编程技术  /  houtizong 发布于 3年前   120

 

开始来点前期准备的知识,主要关于Linux的I/O 路线,然后就是scsi的整体结构说明。
1,Linux I/O路
http://www.thomas-krenn.com/en/oss/linux-io-stack-diagram/linux-io-stack-diagram_v0.1.png
通过这张图应该可以很顺利的理解整体的IO流向。在这张图里面可以看出,主要分为两层——用户层和内核层,用户层当然就是一些上层的应用
至于内核层就是这里面主要需要讲的,由上至下依次是vfs,具体的文件系统(ext2,ext3,ext4等,文件系统针对不同的实现有着不同的逻辑,
但是都是需要与下面的驱动程序交互),块I/O层,I/O调度,接下来属于SCSI的三个层次,最后是底层物理设备。找到这张图还是非常幸运的,
对于理解整个执行过程会事半功倍的。
2,Linux SCSI子系统
http://www.ibm.com/developerworks/cn/linux/l-scsi-subsystem/
M. Tim Jones先生已经做了很多的介绍,我就不再多说了,重复造轮子没意思。这里我查找发现的结果是,SCSI本身有自己的RFC定义,并且
有多个版本,分别是SCSA(SCSI Architecture)-1,-2,-3,-4,-5,但是主题上的层次结果基本不变,通过上面的link,阅读一下里面的内容
应该就有个深入的认识了。
3,SCSA深入分析
http://blog.csdn.net/yunsongice/article/details/6171286
http://blog.csdn.net/yunsongice/article/details/6171290
这两篇文章中整体介绍了初始化阶段以及scsi设备驱动体系架构,讲的还是比较详细了。

我主要需要修改的是SCSI结构的low level层的iscsi驱动,但是是需要有上层的scsi结构进行调用,因此需要对整体的理解
顺便学习下整体的结构。由于做的是Unix上面的修改,具体实现还是有些差别,尽量两个都有理解,然后对比的说明下。
刚刚开始入手,找了些网上的资源加以说明,并非原创,不断完善~

 

 

http://www.dalei.org/scsi-introduction-userful-links/

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客