Documentation/translations/zh_CN/scsi/scsi_mid_low_api.rst

Source file repositories/reference/linux-study-clean/Documentation/translations/zh_CN/scsi/scsi_mid_low_api.rst

File Facts

System
Linux kernel
Corpus path
Documentation/translations/zh_CN/scsi/scsi_mid_low_api.rst
Extension
.rst
Size
49721 bytes
Lines
1175
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

.. SPDX-License-Identifier: GPL-2.0
.. include:: ../disclaimer-zh_CN.rst

:Original: Documentation/scsi/scsi_mid_low_api.rst

:翻译:

 郝栋栋 doubled <doubled@leap-io-kernel.com>

:校译:



=========================
SCSI中间层 — 底层驱动接口
=========================

简介
====
本文档概述了Linux SCSI中间层与SCSI底层驱动之间的接口。底层
驱动(LLD)通常被称为主机总线适配器(HBA)驱动或主机驱动
(HD)。在该上下文中,“主机”指的是计算机IO总线(例如:PCI总
线或ISA总线)与SCSI传输层中单个SCSI启动器端口之间的桥梁。
“启动器”端口(SCSI术语,参考SAM-3:http://www.t10.org)向
“目标”SCSI端口(例如:磁盘)发送SCSI命令。在一个运行的系统
中存在多种底层驱动(LLDs),但每种硬件类型仅对应一种底层驱动
(LLD)。大多数底层驱动可以控制一个或多个SCSI HBA。部分HBA
内部集成多个主机控制器。

在某些情况下,SCSI传输层本身是已存在于Linux中的外部总线子系
统(例如:USB和ieee1394)。在此类场景下,SCSI子系统的底层驱
动将作为与其他驱动子系统的软件桥接层。典型示例包括
usb-storage驱动(位于drivers/usb/storage目录)以
及ieee1394/sbp2驱动(位于 drivers/ieee1394 目录)。

例如,aic7xxx底层驱动负责控制基于Adaptec公司7xxx芯片系列的
SCSI并行接口(SPI)控制器。aic7xxx底层驱动可以内建到内核中
或作为模块加载。一个Linux系统中只能运行一个aic7xxx底层驱动
程序,但他可能控制多个主机总线适配器(HBA)。这些HBA可能位于
PCI扩展卡或内置于主板中(或两者兼有)。某些基于aic7xxx的HBA
采用双控制器设计,因此会呈现为两个SCSI主机适配器。与大多数现
代HBA相同,每个aic7xxx控制器都拥有其独立的PCI设备地址。[SCSI
主机与PCI设备之间一一对应虽然常见,但并非强制要求(例如ISA适
配器就不适用此规则)。]

SCSI中间层将SCSI底层驱动(LLD)与其他层(例如SCSI上层驱动以
及块层)隔离开来。

本文档的版本大致与Linux内核2.6.8相匹配。

文档
====
内核源码树中设有专用的SCSI文档目录,通常位于
Documentation/scsi目录下。大多数文档采用
reStructuredText格式。本文档名为
scsi_mid_low_api.rst,可在该目录中找到。该文档的最新版本可
以访问 https://docs.kernel.org/scsi/scsi_mid_low_api.html
查阅。许多底层驱动(LLD)的文档也位于Documentation/scsi目录
下(例如aic7xxx.rst)。SCSI中间层的简要说明见scsi.rst文件,
该文档包含指向Linux Kernel 2.4系列SCSI子系统的文档链接。此
外还收录了两份SCSI上层驱动文档:st.rst(SCSI磁带驱动)与
scsi-generic.rst(用通用SCSI(sg)驱动)。

部分底层驱动的文档(或相关URL)可能嵌在C源代码文件或与其
源码同位于同一目录下。例如,USB大容量存储驱动的文档链接可以在
目录/usr/src/linux/drivers/usb/storage下找到。

驱动程序结构
============
传统上,SCSI子系统的底层驱动(LLD)至少包含drivers/scsi

Annotation

Implementation Notes