USB Design by Example: A Practical Guide to Building I/O Devices, Second Edition

The examples that have appeared throughout this book have used the Windows Driver Model and Win32 API system calls. This, of course, binds them to a Windows 98 or Windows 2000 PC host platform. I received many emails from readers of the first edition requesting that I include examples for other operating systems.
The two most requested operating systems were Linux and a real-time operating system for the latter, I chose VxWorks from Wind River Systems. This chapter looks inside each of these operating systems with a special focus on their USB capabilities. The buttons-and-lights example that we worked in Chapter 7 is used as a design target, so that you can compare the solutions. I must thank Vojtech Pavlik of SuSE Labs, and Ted Hartnell and Srinagesh Mondreti of Wind River Systems for their contributions to this chapter.
Linux was the brainchild of Linus Torvalds who, while an undergraduate at the University of Helsinki in 1991, motivated a group of talented programmers to create a new version of UNIX for an Intel 386 PC platform. One of the most distinguishing features that Linus insisted upon was that all of the kernel source code should be freely distributable. Linus, and other contributors, still hold the copyright and to this day, the kernel sources are still freely distributable under the terms of the GNU General Public License (GPL), a copy of which is on the CD-ROM in the Chapter_16/Linux directory.
Linux, per se, is only the kernel of the...