In 1997. there were over 100 commercially supported embedded operating systems, none of which had more than a minority share of the overall embedded OS market, not to mention countless thousands of others developed for specific projects (cell phones, radar arrays, networking equipment, etc.) that had no application developer base beyond that specific project. In short, the embedded operating systems market was highly fragmented, and the cost of this fragmentation was beginning to seriously limit the viability of many embedded software projects and the OEMs who funded those software projects.
While it was clear to many that the major embedded software companies needed to change their business models in radical ways, each company believed that it could somehow outlast its competition, and that it could consolidate the market through a strategy of attrition rather than a strategy of innovation. At Cygnus Solutions, we couldn't wait for 90 percent of the market to give up: moreover, we weren't sure we wanted to serve a market that was 90-percent dead. Therefore, we took up our own challenge to create an embedded operating system that could address the incredible variety of possible embedded system designs, from the very small to the highly complex, using a single source base.
In our market research, we found two primary reasons why people wrote their own RTOSes: first, they didn't want to pay per-unit royalties to a third party, and second, they didn't want to suffer the indirect cost of code that they didn't write/control/understand using up resources within their systems. The fact that writing and debugging an RTOS is expensive (in time and money), and the fact that most custom RTOSes required a complete understanding of the entire system in order to make the smallest manual changes, often resulted in systems that were both more expensive to maintain and inferior in functionality to commercial alternatives, but such were the compromises required to avoid direct and indirect per-unit costs.