As for the detection on Linux, as example I have just plugged a SATA-to-USB dock on my Linux computer, and in 'dmesg' log I can see the following:
[ 7390.296667] usb 3-1: new high-speed USB device number 2 using ehci-pci
[ 7390.429976] usb 3-1: New USB device found, idVendor=152d, idProduct=2329
[ 7390.429989] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[ 7390.429996] usb 3-1: Product: USB to ATA/ATAPI bridge
[ 7390.430001] usb 3-1: Manufacturer: JMicron
[ 7390.430006] usb 3-1: SerialNumber: 20910BA83FFF
[ 7390.467713] usb-storage 3-1:1.0: USB Mass Storage device detected
[ 7390.467764] usb-storage 3-1:1.0: Quirks match for vid 152d pid 2329: 8020
[ 7390.467788] scsi6 : usb-storage 3-1:1.0
[ 7390.467845] usbcore: registered new interface driver usb-storage
(continues with ids about the hard disk that is plugged to the dock)
also, with 'lsmod' command I can see a usb-storage kernel module has been effectively loaded.
If I check the linux sources (v3.13), the file drivers/usb/storage/unusual_devs.h lists among others this JMicron device:
UNUSUAL_DEV( 0x152d, 0x2329, 0x0100, 0x0100,
"JMicron",
"USB to ATA/ATAPI Bridge",
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
US_FL_IGNORE_RESIDUE | US_FL_SANE_SENSE ),
So the chain is: udevd (or in older systems hotplugd) process detects a new device has been plugged to USB port, it collects the VID-PID for the device, and as it is a 'well-known' device it knows what do do with it and it triggers the usb-storage functionality for that device.
Basically as far as you use a recent kernel, the list of VID-PID should be updated with any device that has been reported been working with Linux, without the need to install additional drivers.