The Linux API is composed out of the System Call Interface of the Linux kernel, the GNU C Library, libcgroup,[3] libdrm, libalsa and libevdev[4] (by freedesktop.org).
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.
Availability
libusb is currently available for Linux, the BSDs, Solaris, OS X, Windows, Android, and Haiku.[5] 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.