Warum werden meine SATA-Geräte unter / proc / scsi / scsi angezeigt?

10

Ich habe 3 SATA-Geräte auf meinem System. Sie werden unter /proc/scsi/scsiangezeigt, obwohl dies keine SCSI-Geräte sind. Warum werden meine SATA-Geräte im SCSI-Verzeichnis angezeigt?

$ 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
Stefan Lasiewski
quelle

Antworten:

18

Sie werden als SCSI-Geräte angezeigt, da die Treiber SCSI mit der nächsten Kernelschicht (dem generischen Festplattentreiber) sprechen . Dies gilt nicht für alle SATA- Treiber in allen Kernelversionen mit allen Kernel-Konfigurationen zur Kompilierungszeit, ist jedoch üblich. Sogar PATA- Geräte können auf dieser Ebene als SCSI angezeigt werden (dies hängt wiederum von der Kernel-Version und der Konfiguration der Kernel-Kompilierungszeit sowie davon ab, ob das ide-scsiModul verwendet wird).

Es spielt keine Rolle, ob der Treiber SCSI mit dem physischen Gerät spricht. Oft schon. ATAPI , das für die Kommunikation mit optischen PATA / SATA-Laufwerken und anderen Geräten verwendet wird, ist eine SCSI-basierte Protokollkapselung. PATA / SATA-Festplatten verwenden jedoch kein ATAPI. Der libata-Treibersatz enthält auch einen Übersetzer zwischen dem ATA-Befehlssatz und SCSI, sodass Sie PATA / SATA-Festplatten unter dem Dach des SCSI-Subsystems platzieren können. Die separate Ide-Schnittstelle im Kernel ist eher ein historisches Überleben.

Sie werden feststellen, dass USB-Festplatten aus demselben Grund auch als SCSI angezeigt werden (und sie sprechen auch SCSI auf dem USB-Bus). Gleiches gilt für Firewire .

Gilles 'SO - hör auf böse zu sein'
quelle
Sprechen viele IDE-Geräte SCSI und werden sie unter /proc/scsiangezeigt? Auf einem anderen System habe ich ein IDE-DVD-Laufwerk, das unter aufgeführt ist /proc/ide/hdb/model.
Stefan Lasiewski
@Stefan: Alle nicht alten IDE-Hardwaregeräte sprechen SCSI mit dem Controller. Alle (ich denke) IDE-Treiber können SCSI (oder vielleicht sollte ich sagen SCSI) mit der generischen Festplattenschicht sprechen, wenn sie entsprechend kompiliert werden, aber sie (und einige SATA-Treiber) können auch wie IDE aussehen.
Gilles 'SO - hör auf böse zu sein'
Gilles, können Sie bitte die Ebenen präzisieren (von hw bis zu den oberen Linux-Ebenen)? Ich denke, wir haben so etwas wie: Gerät (physisches Laufwerk), SATA-Host-Controller (PHY HBA), Low-Level-Treiber (SCSI-Befehle empfangen, mit PHY HBA sprechen), SCSI-Core-Midlayer (scsi_mod.ko), libata ODER scsi-disk -Treiber (sd_mod.ko), Block (verfügbar über / dev / sdX). Sind Sie einverstanden?
Totor
Ich meinte "können Sie bitte spezifizieren " ...
Totor