Почему мои SATA-устройства отображаются в / proc / scsi / scsi?

10

В моей системе 3 устройства SATA. Они отображаются под /proc/scsi/scsi, хотя это не устройства SCSI. Почему мои SATA-устройства отображаются в каталоге SCSI?

$ cat /proc/scsi/scsi 
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: WDC WD2500AAJS-6 Rev: 01.0
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: TSSTcorp Model: CDDVDW TS-H653Z  Rev: 4303
  Type:   CD-ROM                           ANSI  SCSI revision: 05
Host: scsi4 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST3320620AS      Rev: 3.AA
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Стефан Ласевский
источник

Ответы:

18

Они отображаются как устройства SCSI, потому что драйверы передают SCSI на следующий уровень ядра (общий драйвер диска). На самом деле это не так для всех драйверов SATA во всех версиях ядра со всеми конфигурациями ядра во время компиляции, но это распространено. Даже устройства PATA могут отображаться как SCSI на этом уровне (опять же, это зависит от версии ядра и конфигурации времени компиляции ядра, а также от того, используется ли ide-scsiмодуль).

Неважно, говорит ли драйвер SCSI физическому устройству. Часто это так. ATAPI , используемый для связи с оптическими дисками PATA / SATA и другими устройствами, представляет собой инкапсуляцию протокола на основе SCSI. Однако диски PATA / SATA не используют ATAPI. Libata набор драйверов также включает в себя транслятор между набором команд ATA и SCSI , так что вы можете поместить диски PATA / SATA под зонтиком подсистемы SCSI. Отдельный интерфейс ide внутри ядра - это скорее историческое выживание.

Вы заметите, что USB-диски также отображаются как SCSI по той же причине (и они также говорят по SCSI на шине USB). То же самое касается Firewire .

Жиль "ТАК - перестань быть злым"
источник
Много ли IDE-устройств говорят на SCSI, и они отображаются под /proc/scsi? В другой системе у меня есть IDE DVD-привод, который указан в разделе /proc/ide/hdb/model.
Стефан Ласевский
@Stefan: Все не древние аппаратные устройства IDE говорят SCSI с контроллером. Все (я думаю) драйверы IDE могут передавать SCSI (или, может быть, я должен сказать, смотрите SCSI) на общий уровень диска, если они скомпилированы соответствующим образом, но они (и несколько драйверов SATA) также могут выглядеть как IDE.
Жиль "ТАК - перестань быть злым"
Жиль, не могли бы вы уточнить слои (от hw до верхних уровней Linux)? Я думаю, у нас есть что-то вроде: устройство (физический диск), хост-контроллер SATA (PHY HBA), драйвер низкого уровня (получение команд SCSI, общение с PHY HBA), средний уровень ядра SCSI (scsi_mod.ko), libata ИЛИ scsi-диск -драйвер (sd_mod.ko), блок (доступен через / dev / sdX). Вы согласны?
Тотор
Я имел в виду "не могли бы вы уточнить " ...
Totor