Libusb


libusb is a library that provides applications with access for controlling data transfer to and from USB devices on Unix and non-Unix systems, without the need for kernel-mode drivers.

Rationale

Because the Linux kernel is a monolithic type of kernel, device drivers are part of it.

Availability

libusb is currently available for Linux, the BSDs, Solaris, OS X, Windows, Android, and Haiku. It is written in C.
Amongst other applications, the library is used by SANE, the Linux scanner project, in preference to the kernel scanner module, which is restricted to Linux kernel 2.4.