2008年12月10日星期三

Linux SCSI子系统

scsi历史

scsi-1::1979年由SHugart Associates创建,它定义了一种具有5MHz数据时钟的8-bit并行接口。

scsi-2::1985年,10MHz,16位总线。

scsi-3::1993年,已经成为了一种标准集,它包含一种命名为Ultra的并行scsi标准和基于 串行scsi和基于串行scsi的协议,这些标准通过引入存储网络技术将数据速率拓展到了 1Gb/s。

scsi架构基础

如果你是一位设计师,那么需要从scsi spec下手。而对于软件开发人员来说,你只需要关 注scsi的架构。在深入之前,将scsi架构图牢记于心,对于理解代码是非常重要的。linux scsi位于系统的底层 —

linux scsi本身是一种三层架构,upper, mid, lower,upper层最为接近内核,包括一组驱 动器(比如块设备SCSI 磁盘和字符设备SCSI generic);mid实现了common services layer, 接受upper的请求并将其转化为scsi请求,scsi lower层则是紧附硬件之上的硬件驱动。

索引

从ibm developerworks大致了解三层架构:

从这里获得scsi标准的细节:

我们的目标在于linux的实现(pdf, 321KB):

出发


本着记录和总结的目的,深入求实的精神,我开始在日志上记录scsi的看书笔记。scsi的设 备是典型的层次架构,经历过风雨变迁的scsi标准也散发着蓬勃的活力,因此看懂这段代码 很有意义。

笔记目标将会从sd_mod.o起步,清晰中间层(mid),上层(upper)和底层(lower)的大 致架构,最后深入到公司最近正在移植的sata_sil驱动。

没有评论:

发表评论