Can someone please explain the concept of a device controller (hard disc controller, NEC PD765 compatible controller etc.).
Here are some definition of key terms which might be needed for the explanation. Just to maintain the term sync :)
Kernel - The software which provides abstraction for accessing hardware devices
Drivers - low level programs written by hardware manufacturers which are loaded as kernel modules and provide the kernel with the knowledge on how to control the devices
Firmware - hardware specific programs which define the internal logics on the hardware. The kernel usually has nothing to do with them except for the cases when the the firmware is uploaded to the device upon each start in which case the kernel does the uploading
Where does the device controller fit in and is it located on the device itself of on the motherboard?
Do drivers provide the kernel with the interface towards the controller and not directly to the device itself?
Was the idea behind the controller to be able to control devices from a different manufacturers with the same driver?