The selection of an operating system is one of the most important decisions facing development teams, one that ultimately defines product capabilities. The architecture and features of the chosen operating system have far-reaching implications throughout the definition, development, and deployment of the end product. This is particularly true of embedded systems, which typically have extended product life cycles and availability requirements.