关于OS内核scsi IO流程,到底scsi cmd是由谁来发出的?
最近我在学习OS内核的IO流程,但是我死活想不通一个问题,即,现代操作系统,还需要在内核scsi middle level生成scsi command的cdb么?现在scsi卡上的scsi控制器或者其他类型的比如fiber channel卡上的芯片难道不够强大到自己就可以生成scsi command cdb么?如果后者是真实情况的话,那么是不是os内的scsi host驱动会大大简化呢?只需要将读写的io起始地址和io的扇区长度告诉给这些scsi控制器芯片,剩下的全交给它们来做不就完事了么? 但是我在网上搜索过很多文章,都是说scsi command是在os内核就生成的,然后dispatch到scsi host控制器,scsi控制器只控制scsi底层的操作而不管scsi上层逻辑。我对这一点很是不明白,望赐教一二,非常感谢!