The Linux kernel makes use of a technique that emulates SCSI devices for handling hardware such as CD burners, USB and firewire IDE HD enclosures and flash memory devices.
The implementation of the emulation layer is somewhat buggy and perilous. Here I hope to be able to explain some of it's dangers and offer solutions that will result in improved stability of some use models.