Difference between IDE and SCSI ??

Lamar Owen lowen at pari.edu
Tue Feb 5 21:45:19 UTC 2008

On Tuesday 05 February 2008, William Case wrote:
> Where and how does this emulation take place?  Or, I assume Libata is a
> driver in the kernel.  No matter how it might be compiled, it would be
> in a machine language (binary) format.  Is it written in assembly and
> run by the CPU, or does SCSI code have its own set of machine code that
> can be used for emulation?  By the controller?  My understanding is that
> assembly code only applies to the CPU and the GPU.

The libata code sits between the kernel's internal SCSI subsystem and the 
actual ATA hardware and translates the kernel's SCSI API (not the same as 
actual SCSI commands, just the kernel's API that is normally used to 
interface to SCSI host adapters to send the SCSI command) into commands for 
the various ATA controllers.  At least that is my high-level understanding of 
the mechanism.

Alan Cox can comment much better on exactly how libata does its job and 
exactly what that job is.
Lamar Owen

More information about the fedora-list mailing list