Overview

The Universal Serial Bus (USB) is an expansion bus that's designed for robust physical connectors and cheap/simple implementation. It supports hubs so that a single port on a computer can support multiple devices (and hubs can be plugged in to other hubs). There are several standards for USB devices that are commonly used including keyboard, mouse, and mass-storage (for hard drives, flash drives, and digital cameras).

Here is a brief FAQ about USB. In summary USB 1.1 does 1.5MB/s (12Mb/s) and USB 2.0 (AKA Hi-Speed USB does 60MB/s (480Mb/s). Due to some overhead and inefficiencies you won't expect to see such speeds, better than 30MB/s is a good speed for USB mass storage with USB 2.0, and you are shouldn't expect more than 1MB/s with USB 1.1.

According to the everythingusb.com site USB flash devices can deliver up to 30MB/s read speed and 24MB/s write speed. Note that the good thing about flash devices is that there is almost no seek time which makes the fastest ones give better performance than the fastest hard drives in some situations, the down-side to them is that there is a limit to the number of writes to flash memory.

Compatability

The USB hardware has two different interfaces for USB 1.1 and USB 2.0 which are seen by the OS. It is possible for an outdated or misconfigured OS to talk to a USB 2.0 device at USB 1.1 speed even though it's in a USB 2.0 socket. Any combination of USB 2.0 and USB 1.1, but if anything in the chain (PC, OS, hub, or device) is USB 1.1 then you get USB 1.1 speed.

USB was originally designed as a replacement for PS/2 keyboard and mouse ports. Some USB mouses come with an adapter so that they can be used in a PS/2 port. However the adapters aren't fully compatable, my KVM switches won't accept them (I'm not sure how prevalent this problem is).

Other Uses of USB

Windows Vista used a USB 2.0 flash storage device as a read cache for the hard drive. If your hard drive has an average access time of 10ms then a request for less than 300KB of data could be satisfied by a USB flash device faster than the hard drive could read the data (assuming that the 8M cache which is common on modern hard drives doesn't have the data, IDE and SCSI interfaces transfer data faster than the USB interface can). Another possible benefit of this is for the situation where the hard drive is very busy, having part of the work offloaded to another device can improve overall system performance (this is one of the benefits that a RAID system can offer). For servers this is of no use as hardware RAID devices do such caching already. For machines with a decent amount of RAM it's not of much use either as RAM is much faster than a USB device. For machines with RAM that's significantly smaller than a USB device (not a common situation given that the maximum size of a flash is 1G) that might give some benefits. Also given that a 120G hard drive is the same price as a hi-speed 1G flash device software RAID might be a better option. For a machine with a small amount of RAM and no ability to install more than one hard drive or a caching drive controller this might offer some benefits. The only machines which don't have much option for upgrading RAM and no option for adding a second hard drive are laptops, however the older laptops which can't be upgraded to 1G of RAM tend to not support USB 2.0...